/* Instante Zero · frontend estático com orientação guiada e leitura contínua. */
:root {font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  color: #223536;
  background: #f6f7f5;
  line-height: 1.55;
  --ink: #223536;
  --muted: #526765;
  --edge: #dbe4df;
  --edge-strong: #c5d3cc;
  --primary: #176b64;
  --primary-dark: #10534e;
  --primary-soft: #ebf5f0;
  --surface: #fff;
  --radius-card: 20px;
  --radius-control: 12px;
  --focus: #b95d21;}
* {box-sizing: border-box;}
html {scroll-padding-block: 24px 116px;}
body {margin: 0; min-width: 320px;}
button, textarea, select {font: inherit;}
button, select {cursor: pointer;}
:focus-visible {outline: 3px solid var(--focus); outline-offset: 3px;}
.skip-link {position: absolute; z-index: 30; top: -200px; left: 12px; padding: 10px 16px; background: #fff; border-radius: 8px;}
.skip-link:focus {top: 12px;}
.site-header {width: min(1100px, calc(100% - 64px)); margin: 0 auto; min-height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--edge);}
.brand {display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 750; letter-spacing: -.025em;}
.brand-symbol {width: 34px; height: 34px; border-radius: 10px; background: var(--primary); color: #fff; display: grid; place-items: center; font-size: 18px;}
.brand-suffix {color: var(--muted); font-size: 12px; font-weight: 500; letter-spacing: 0;}
.header-meta {color: var(--muted); font-size: 13px;}
.app-shell {width: min(1080px, calc(100% - 64px)); margin: 42px auto 88px; min-height: 58vh; outline: none;}
h1, h2, p {margin-top: 0;}
h1 {line-height: 1.15; letter-spacing: -.04em; font-size: clamp(2.15rem, 4.4vw, 3.5rem); font-weight: 730;}
h2 {line-height: 1.3; font-size: 19px; letter-spacing: -.02em;}
.eyebrow {color: var(--primary); font-size: 12px; font-weight: 760; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 12px;}
.caption, .hint, .muted, .helper {color: var(--muted);}
.button {border-radius: var(--radius-control); border: 1px solid transparent; background: none; color: var(--ink); padding: 13px 20px; font-size: 15px; font-weight: 700; min-height: 48px; transition: background .15s, border-color .15s;}
.button-primary {color: #fff; background: var(--primary);}
.button-primary:hover:not(:disabled) {background: var(--primary-dark);}
.button-secondary {background: #fff; border-color: var(--edge-strong);}
.button-secondary:hover:not(:disabled) {background: #f0f6f3;}
.button:disabled {opacity: .43; cursor: not-allowed;}
.choice-group {padding: 0; margin: 0; border: 0; display: grid; gap: 10px; min-width: 0;}
.choice {display: flex; align-items: center; gap: 16px; min-height: 69px; border: 1px solid var(--edge-strong); background: #fff; border-radius: var(--radius-control); padding: 14px 18px; cursor: pointer; position: relative; transition: background .15s, border-color .15s; scroll-margin-bottom: 120px;}
.choice:hover {border-color: #83aea2; background: #f9fcfa;}
.choice.is-selected {border-color: var(--primary); background: var(--primary-soft); box-shadow: inset 0 0 0 1px var(--primary);}
.choice input {position: absolute; width: 1px; height: 1px; opacity: 0;}
.choice:has(input:focus-visible) {outline: 3px solid var(--focus); outline-offset: 2px;}
.choice-letter {display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #f0f3f0; flex-shrink: 0; color: #49645f; font-size: 14px; font-weight: 780;}
.choice.is-selected .choice-letter {background: var(--primary); color: #fff;}
.choice-label {font-size: 16px; font-weight: 540; line-height: 1.5; overflow-wrap: anywhere;}
.notes-field {margin-top: 34px; border-top: 1px solid var(--edge); padding-top: 28px; scroll-margin-bottom: 120px;}
.field-label {display: block; font-size: 15px; font-weight: 720; margin-bottom: 10px;}
.hint {font-size: 13px; line-height: 1.65; margin-bottom: 12px;}
.notes-field .hint {margin: 10px 0 0;}
.textarea {width: 100%; display: block; min-height: 108px; resize: vertical; border: 1px solid var(--edge-strong); border-radius: var(--radius-control); background: #fff; padding: 15px 16px; font-size: 16px; color: var(--ink); line-height: 1.6;}
.textarea::placeholder {color: #687d77;}
.counter {text-align: right; color: var(--muted); font-size: 12px; margin: 8px 0 0;}
.result-kicker {color: var(--muted); font-size: 13px; font-weight: 720; margin-bottom: 6px;}
.movement-name {font-size: clamp(36px, 6vw, 56px); line-height: 1.14; color: var(--primary); letter-spacing: -.04em; margin: 0 0 12px;}
.result-band {display: inline-block; border-radius: 99px; background: #d4e8dd; color: #1b594e; padding: 6px 13px; font-size: 13px; font-weight: 740; margin: 0 0 17px;}
.result-reason {max-width: 670px; font-size: 16px; line-height: 1.75; margin: 0; white-space: pre-wrap;}
.section-intro {color: var(--muted); font-size: 15px; line-height: 1.7; margin: 0 0 20px; max-width: 700px;}
.score-row {padding: 14px 0 12px; border-bottom: 1px solid var(--edge);}
.score-row:last-child {border-bottom: none;}
.score-heading {display: flex; justify-content: space-between; gap: 16px; align-items: center; font-size: 15px; margin-bottom: 10px;}
.score-title {display: flex; flex-wrap: wrap; align-items: center; gap: 9px; font-weight: 680;}
.score-number {font-size: 17px; font-variant-numeric: tabular-nums;}
.score-tie {font-size: 11px; font-weight: 700; color: var(--muted); padding: 3px 8px; border: 1px solid var(--edge-strong); border-radius: 20px;}
.score-track {height: 9px; border-radius: 30px; background: #e7edea; overflow: hidden;}
.score-fill {height: 100%; background: #91b5aa; border-radius: inherit;}
.score-primary {background: var(--primary);}
.score-breakdown {text-align: right; margin: 6px 0 0; color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums;}
.notice {padding: 13px 16px; background: #fff8e8; border-left: 3px solid #c29242; border-radius: 6px; font-size: 14px; color: #654919; line-height: 1.65; overflow-wrap: anywhere;}
.review-note {margin: 10px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; white-space: pre-wrap;}
.select {padding: 12px 14px; min-height: 48px; border: 1px solid var(--edge-strong); border-radius: var(--radius-control); background: white; color: var(--ink); font-size: 16px; width: min(100%, 360px);}
.movement-chooser {background: #f7faf8; border: 1px solid var(--edge); border-radius: var(--radius-control); padding: 20px; margin-top: 20px;}
.movement-chooser[hidden] {display: none;}
.environment {border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; min-width: 0;}
.environment-option {border: 1px solid var(--edge-strong); border-radius: var(--radius-control); cursor: pointer; display: flex; align-items: flex-start; gap: 13px; padding: 18px; min-height: 92px;}
.environment-option:has(input:checked) {background: var(--primary-soft); border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary);}
.environment-option input {margin-top: 6px; accent-color: var(--primary); width: 17px; height: 17px; flex-shrink: 0;}
.environment-option:has(input:focus-visible) {outline: 3px solid var(--focus); outline-offset: 2px;}
.environment-copy {display: grid; gap: 3px;}
.environment-copy strong {font-size: 16px;}
.environment-copy .muted {font-size: 13px; line-height: 1.55;}
.prompt-preview {background: #f5f8f5; border: 1px solid var(--edge); padding: clamp(15px, 3vw, 24px); font: 13px/1.7 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; border-radius: var(--radius-control); margin: 0;}
.copy-status {color: var(--primary); margin: 12px 0 0; font-size: 14px;}
/* 0005 — Viewport workspace: navigation replaces document and card scrolling. */
html, body { width: 100%; height: 100%; overflow: hidden; overscroll-behavior: none; }
body { display: grid; grid-template-rows: auto minmax(0, 1fr); height: 100vh; height: 100dvh; }
.site-header { min-height: 52px; height: 52px; width: min(1080px, calc(100% - 28px)); }
.brand-symbol { height: 29px; width: 29px; border-radius: 8px; }
.site-footer { display: none; }
.app-shell { width: min(940px, calc(100% - 24px)); margin: 8px auto; min-height: 0; height: calc(100% - 16px); overflow: hidden; }
.viewport-deck { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; min-height: 0; background: white; border: 1px solid var(--edge); border-radius: 18px; overflow: hidden; }
.deck-top, .deck-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 22px; min-width: 0; }
.deck-top { border-bottom: 1px solid var(--edge); background: #fafcfb; }
.deck-location { display: grid; min-width: 0; gap: 1px; }
.deck-location strong { font-size: 14px; font-weight: 750; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; }
.deck-position { font-size: 12px; color: var(--muted); }
.deck-jump { width: min(255px, 46%); min-height: 39px; font-size: 13px; border: 1px solid var(--edge-strong); padding: 6px 10px; border-radius: 9px; background: white; color: var(--ink); }
.deck-content { min-height: 0; min-width: 0; height: 100%; overflow: hidden; display: grid; align-items: center; justify-items: center; padding: 12px 28px; outline: none; }
.pane { width: 100%; max-width: 700px; max-height: 100%; min-width: 0; overflow: hidden; padding: 6px 1px; }
.pane > :last-child { margin-bottom: 0; }
.pane-title { font-size: clamp(23px, 3.6vw, 39px); letter-spacing: -.035em; line-height: 1.22; margin: 0 0 16px; }
.pane-subtitle { font-size: clamp(18px, 2.3vw, 25px); line-height: 1.3; margin-bottom: 12px; }
.pane-description { max-width: 660px; font-size: clamp(15px, 1.7vw, 18px); line-height: 1.55; margin-bottom: 18px; }
.small-text { font-size: 13px; line-height: 1.55; }
.pane .eyebrow { margin-bottom: 8px; font-size: 11px; }
.deck-bottom { border-top: 1px solid var(--edge); background: #fff; min-height: 68px; }
.deck-bottom .button { min-width: 145px; }
.pane .choice-group { gap: 8px; }
.pane .choice { min-height: 54px; padding: 8px 12px; gap: 12px; scroll-margin: 0; }
.pane .choice-letter { width: 30px; height: 30px; flex-shrink: 0; }
.pane .choice-label { font-size: 15px; line-height: 1.36; }
.pane .notes-field { margin-top: 13px; padding-top: 13px; }
.pane .textarea { min-height: 80px; max-height: clamp(80px, 20dvh, 160px); resize: none; overflow-y: auto; scrollbar-width: none; }
.pane .textarea::-webkit-scrollbar { display: none; }
.pane .hint { margin: 7px 0 0; font-size: 12px; line-height: 1.4; }
.pane .counter { margin: 4px 0 0; }
.pane .movement-name { font-size: clamp(30px, 5vw, 58px); margin-bottom: 12px; }
.pane .result-band { margin-bottom: 10px; }
.pane .result-reason { line-height: 1.56; font-size: 15px; white-space: pre-wrap; overflow-wrap: anywhere; }
.pane .score-row { padding: 6px 0 8px; }
.pane .score-heading { margin-bottom: 4px; }
.pane .score-breakdown { margin-top: 4px; }
.pane .section-intro { font-size: 13px; line-height: 1.4; margin-bottom: 10px; }
.pane .review-choice { font-size: 16px; font-weight: 710; margin-bottom: 14px; }
.pane .review-note { font-size: 14px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.pane .notice { font-size: 13px; padding: 9px 12px; }
.pane .environment { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pane .environment-option { min-height: 64px; padding: 11px; }
.pane .environment-copy p { margin: 0; }
.pane .action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pane .action-grid .button { padding: 10px; min-height: 43px; }
.pane .movement-chooser { margin-top: 10px; padding: 8px 12px; }
.pane .movement-chooser .field-label { margin-bottom: 5px; }
.pane .select { padding: 7px 10px; min-height: 38px; }
.pane .benefit { border-top: 1px solid var(--edge); padding: 8px 0; }
.pane .benefit p { margin: 3px 0 0; font-size: 14px; }
.pane .prompt-preview { font-size: 12px; line-height: 1.5; padding: 12px; white-space: pre-wrap; overflow: hidden; word-break: break-word; }
.pane .prompt-note { max-height: clamp(100px, 35dvh, 260px); min-height: 90px; }
.pane .copy-status { margin: 8px 0 0; }
@media (max-width: 760px) {
  .site-header { height: 46px; min-height: 46px; }
  .app-shell { margin: 6px auto; height: calc(100% - 12px); width: calc(100% - 12px); }
  .viewport-deck { border-radius: 12px; }
  .deck-top, .deck-bottom { padding: 8px 11px; gap: 8px; }
  .deck-bottom { min-height: 59px; }
  .deck-bottom .button { min-width: 0; width: 50%; min-height: 42px; padding: 9px 8px; font-size: 13px; }
  .deck-jump { width: 47%; font-size: 12px; min-height: 35px; }
  .deck-content { padding: 8px 13px; }
  .pane-title { font-size: clamp(21px, 6.4vw, 29px); margin-bottom: 12px; }
  .pane .choice { padding: 8px; min-height: 49px; }
  .pane .choice-label { font-size: 14px; line-height: 1.31; }
  .pane .choice-letter { height: 27px; width: 27px; }
  .pane .environment { grid-template-columns: 1fr; gap: 8px; }
  .pane .action-grid { grid-template-columns: 1fr; }
  .pane .review-note { font-size: 13px; }
}
@media (max-height: 550px) {
  .site-header { min-height: 40px; height: 40px; }
  .brand { font-size: 14px; }
  .brand-symbol { height: 25px; width: 25px; }
  .deck-top { padding-block: 4px; }
  .deck-bottom { min-height: 49px; padding-block: 4px; }
  .deck-bottom .button { min-height: 39px; }
  .deck-content { padding-block: 4px; }
  .pane-title { font-size: clamp(19px, 5.2vw, 28px); margin-bottom: 8px; }
  .pane .choice { min-height: 43px; padding: 5px 8px; }
  .pane .choice-label { font-size: 13px; }
  .pane .eyebrow { margin-bottom: 4px; }
  .pane .notes-field { padding-top: 7px; margin-top: 7px; }
  .pane .textarea { min-height: 60px; }
  .pane .environment-option { min-height: 50px; }
}
@media (max-height: 550px) {
  .pane .notes-field .textarea { min-height: 50px; max-height: 60px; padding: 7px 9px; }
  .pane .notes-field .field-label { margin-bottom: 5px; font-size: 13px; }
  .pane .notes-field .hint { font-size: 11px; line-height: 1.25; }
  .pane .counter { font-size: 11px; }
}
/* Chrome dimensions are constant before and after panel measurement. */
.deck-top { height: 58px; min-height: 58px; }
.deck-bottom { height: 68px; min-height: 68px; }
.deck-bottom .button { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 760px) {
  .deck-top { height: 52px; min-height: 52px; }
  .deck-bottom { height: 59px; min-height: 59px; }
}
@media (max-height: 550px) {
  .deck-top { height: 43px; min-height: 43px; }
  .deck-bottom { height: 49px; min-height: 49px; }
}
.pane .copy-status { min-height: 56px; line-height: 1.35; font-size: 12px; margin: 5px 0 0; }
.deck-top { position: relative; }
.deck-progress { position: absolute; bottom: 0; left: 0; right: 0; display: flex; gap: 3px; height: 4px; pointer-events: none; }
.deck-progress span { flex: 1; background: #e7edea; }
.deck-progress .is-done { background: #8ab3a9; }
.deck-progress .is-current { background: var(--primary); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }

/* Mantém a assinatura institucional legível em larguras compactas. */
@media (max-width: 560px) {
  .brand-suffix { display: none; }
  .header-meta { font-size: 12px; white-space: nowrap; }
}

/* 0008 — Pergunta contextual não pontuada, exibida somente por escolha explícita. */
.pane .reflection-question {font-size: clamp(18px, 2.7vw, 25px); line-height: 1.35; font-weight: 650; margin: 0 0 16px; overflow-wrap: anywhere;}

/* 0011 — Entrada de leitura contínua. */
.flow-view {
  height: 100%;
  min-height: 0;
  min-width: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: var(--surface);
  border: 1px solid var(--edge);
  border-radius: 18px;
}
.flow-content {
  width: min(100%, 760px);
  margin-inline: auto;
  padding: clamp(22px, 5vh, 52px) clamp(19px, 5vw, 48px) 40px;
}
.entry-layout {min-width: 0;}
.entry-title {
  font-size: clamp(27px, 4vw, 42px);
  letter-spacing: -.035em;
  line-height: 1.22;
  margin-bottom: 16px;
}
.entry-hero > .pane-description {font-size: clamp(15px, 1.6vw, 17px); line-height: 1.55; margin-bottom: 18px;}
.entry-hero > .button {width: auto; max-width: 100%; white-space: normal; text-align: center;}
.entry-disclaimer {margin: 8px 0 0;}
.entry-benefits {margin-top: clamp(23px, 4vh, 36px);}
.entry-benefits-title {font-size: clamp(20px, 2.4vw, 24px); line-height: 1.3; margin: 0 0 12px;}
.entry-benefit {border-top: 1px solid var(--edge); padding: 11px 0;}
.entry-benefit h3 {font-size: 16px; font-weight: 700; margin: 0 0 3px;}
.entry-benefit p {font-size: 15px; line-height: 1.5; color: var(--muted); margin: 0;}
@media (max-width: 760px) {
  .flow-view {border-radius: 12px;}
  .flow-content {padding: 22px 18px 28px;}
  .entry-benefit {padding: 9px 0;}
}
@media (max-height: 550px) {
  .flow-content {padding-top: 14px; padding-bottom: 22px;}
  .entry-title {margin-bottom: 10px;}
  .entry-hero > .pane-description {margin-bottom: 12px;}
  .entry-benefits {margin-top: 20px;}
}

/* 0012 — Resultado como leitura contínua. Mantém ranking e conteúdo sem corte por viewport. */
.result-layout { min-width: 0; }
.result-section { padding: 22px 0; border-bottom: 1px solid var(--edge); scroll-margin-top: 14px; }
.result-section:first-child { padding-top: 0; }
.result-section:last-child { border-bottom: 0; padding-bottom: 12px; }
.result-main-title { font-size: clamp(29px, 4vw, 41px); margin: 0 0 16px; }
.result-section-title { font-size: clamp(21px, 2.5vw, 26px); line-height: 1.3; margin: 0 0 14px; }
.result-overview .movement-name { font-size: clamp(34px, 5vw, 48px); }
.result-overview .result-reason { margin: 0 0 13px; overflow-wrap: anywhere; }
.result-overview .notice { margin: 15px 0 0; }
.result-shortcut { margin-top: 14px; }
.result-scores .score-row { padding: 9px 0 10px; }
.result-scores .section-intro { margin-bottom: 9px; }
.result-ai .result-readiness-label { font-size: 17px; margin: 0 0 7px; }
.result-ai .result-reason { white-space: pre-wrap; line-height: 1.6; overflow-wrap: anywhere; }
.result-ai .result-subtitle { font-size: 16px; margin: 20px 0 7px; }
.result-ai > .muted { margin-top: 12px; }
.result-details { border-top: 1px solid var(--edge); min-width: 0; }
.result-details:last-child { border-bottom: 1px solid var(--edge); }
.result-details > summary { cursor: pointer; padding: 15px 5px; font-size: 15px; font-weight: 700; line-height: 1.45; }
.result-details > summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
.result-detail-item { border-top: 1px solid var(--edge); padding: 14px 6px; min-width: 0; }
.result-detail-item h3 { margin: 0 0 7px; font-size: 15px; }
.result-detail-item .review-choice { font-size: 15px; font-weight: 650; margin: 0 0 6px; overflow-wrap: anywhere; }
.result-detail-item .review-note { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.result-actions .action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.result-actions .action-grid .button { white-space: normal; text-align: center; min-width: 0; }
.result-movement .movement-chooser { margin: 0 0 12px; padding: 14px 12px; }
.result-movement .movement-chooser .small-text { margin: 0 0 12px; }
.result-movement .movement-chooser .select { display: block; }
.result-movement .movement-chooser .button { margin-top: 12px; }
.result-movement .movement-chooser [role="status"] { margin: 8px 0 0; }
@media (max-width: 560px) {
  .result-section { padding: 18px 0; }
  .result-actions .action-grid { grid-template-columns: 1fr; gap: 8px; }
  .result-actions .action-grid .button { min-height: 46px; }
  .result-shortcut { min-height: 44px; }
}

/* 0013 — One continuous reading region per guided step, without subpanels. */
.guided-step {
  height: 100%; min-height: 0; min-width: 0;
  display: grid; grid-template-rows: auto minmax(0, 1fr) auto;
  border: 1px solid var(--edge); border-radius: 18px;
  background: var(--surface); overflow: hidden;
}
.guided-step-top {
  position: relative; display: grid; gap: 8px; padding: 12px 22px 13px;
  background: #fafcfb; border-bottom: 1px solid var(--edge);
}
.guided-step-location {display: flex; justify-content: space-between; align-items: baseline; gap: 12px;}
.guided-step-location strong {font-size: 15px; font-weight: 750;}
.guided-step-location span {font-size: 13px; color: var(--muted); white-space: nowrap;}
.guided-step-progress {display: flex; gap: 4px; height: 5px;}
.guided-step-progress span {flex: 1; background: #e7edea; border-radius: 5px;}
.guided-step-progress .is-done {background: #8ab3a9;}
.guided-step-progress .is-current {background: var(--primary);}
.guided-step-scroll {
  min-height: 0; min-width: 0; overflow-x: hidden; overflow-y: auto;
  overscroll-behavior: contain; scrollbar-gutter: stable;
}
.guided-step-inner {
  width: min(100%, 760px); margin-inline: auto;
  padding: clamp(18px, 3.5vh, 36px) clamp(16px, 5vw, 42px) 34px;
}
.guided-question {font-size: clamp(23px, 3vw, 30px); line-height: 1.3; margin: 0 0 10px;}
.guided-instruction {color: var(--muted); font-size: 14px; margin: 0 0 20px;}
.guided-stage .choice-group {gap: 9px;}
.guided-stage .choice {min-height: 56px; padding: 10px 13px; gap: 12px; scroll-margin-block: 12px 24px;}
.guided-stage .choice-letter {height: 30px; width: 30px;}
.guided-stage .choice-label {font-size: 16px; line-height: 1.45;}
.guided-step-bottom {
  display: flex; justify-content: space-between; gap: 12px; align-items: center;
  padding: 10px 22px; border-top: 1px solid var(--edge); background: #fff;
}
.guided-step-bottom .button {min-width: 145px;}
@media (max-width: 760px) {
  .guided-step {border-radius: 12px;}
  .guided-step-top {padding: 9px 13px 11px;}
  .guided-step-inner {padding: 17px 16px 26px;}
  .guided-step-bottom {padding: 8px 12px;}
  .guided-step-bottom .button {min-width: 0; width: 50%; min-height: 44px;}
  .guided-question {font-size: clamp(22px, 6vw, 26px);}
  .guided-stage .choice {min-height: 50px; padding: 10px;}
}
@media (max-height: 550px) {
  .guided-step-top {padding-block: 6px 8px; gap: 5px;}
  .guided-step-bottom {padding-block: 5px;}
  .guided-step-inner {padding-block: 14px 20px;}
  .guided-instruction {margin-bottom: 14px;}
}

/* 0014 — Preparação, reflexão e encerramento são leitura contínua, sem deck. */
.flow-title {font-size: clamp(28px, 3.8vw, 40px); line-height: 1.22; margin: 0 0 13px;}
.reflection-layout, .done-layout {max-width: 690px;}
.reflection-layout .reflection-question {font-size: clamp(22px, 3vw, 28px); line-height: 1.35; margin: 20px 0 13px; overflow-wrap: anywhere;}
.reflection-layout .button {margin-top: 10px;}
.flow-actions {display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px;}
.flow-actions .button {white-space: normal;}
.prompt-layout {min-width: 0;}
.prompt-intro {margin-bottom: 27px;}
.prompt-intro .small-text {max-width: 650px;}
.prompt-skip {margin-top: 7px; white-space: normal; text-align: center;}
/* A preparação ocupa mais largura que o card de leitura e usa duas colunas apenas quando há espaço. */
.flow-view:has(.prompt-layout) .flow-content {width: min(100%, 1120px);}
.prompt-columns {display: grid; grid-template-columns: minmax(0, 44fr) minmax(0, 56fr); gap: clamp(20px, 3vw, 38px); align-items: start;}
.prompt-editor, .prompt-preview-section {min-width: 0;}
.prompt-section-title {font-size: clamp(20px, 2.4vw, 24px); line-height: 1.32; margin: 0 0 17px;}
.prompt-subtitle {font-size: 16px; line-height: 1.35; margin: 22px 0 11px;}
.prompt-editor .environment {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;}
.prompt-editor .environment-option {padding: 12px; min-height: 75px; gap: 8px;}
.prompt-editor .environment-copy strong {font-size: 15px;}
.prompt-editor .environment-copy .muted {font-size: 12px;}
.prompt-movement-note {font-size: 13px; line-height: 1.5; color: var(--muted); margin: 14px 0 0;}
.prompt-answers {margin: 0;}
.prompt-answers dt {font-size: 13px; font-weight: 750; margin: 11px 0 2px;}
.prompt-answers dd {font-size: 14px; line-height: 1.5; margin: 0 0 11px; overflow-wrap: anywhere;}
.prompt-note-details {border-top: 1px solid var(--edge); min-width: 0;}
.prompt-note-details:last-child {border-bottom: 1px solid var(--edge);}
.prompt-note-details > summary {padding: 13px 5px; font-size: 14px; font-weight: 650; cursor: pointer;}
.prompt-note-details > summary:focus-visible {outline: 3px solid var(--focus); outline-offset: 1px;}
.prompt-note-details > .field-label {margin: 8px 0;}
.prompt-note-details .textarea {min-height: 95px; max-height: 45dvh; resize: vertical; overflow-y: auto;}
.prompt-note-details .hint {font-size: 12px; margin: 8px 0; line-height: 1.45;}
.prompt-note-details .counter {font-size: 12px; text-align: right; margin: 3px 0 12px;}
.prompt-review-warning {color: var(--muted); font-size: 14px; line-height: 1.55; margin: 0 0 12px;}
.prompt-preview-full {
  white-space: pre-wrap; overflow-wrap: anywhere; word-break: normal;
  font-size: 13px; line-height: 1.65; max-width: 100%;
  min-width: 0; margin: 0; overflow-x: hidden;
}
.prompt-preview-actions {display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px;}
.prompt-preview-actions .button {white-space: normal;}
.prompt-preview-section .copy-status {min-height: 1.5em;}
@media (max-width: 850px) {
  .prompt-columns {grid-template-columns: minmax(0, 1fr); gap: 30px;}
  .prompt-editor .environment {grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (max-width: 420px) {
  .prompt-editor .environment {grid-template-columns: minmax(0, 1fr);}
  .prompt-editor .environment-option {min-height: 58px;}
  .prompt-preview-actions {display: grid; grid-template-columns: minmax(0, 1fr);}
  .flow-actions {display: grid; grid-template-columns: minmax(0, 1fr);}
}

/* 0015 — Identidade institucional SemViés, sem substituir o nome do produto. */
.institution-header {
  display: inline-flex; align-items: center; gap: 9px; min-width: 0;
  text-decoration: none; color: var(--muted); font-size: 12px;
  border-radius: 7px; padding: 4px 2px;
}
.institution-header:hover {text-decoration: underline; text-underline-offset: 3px;}
.institution-wordmark {display: block; width: 114px; height: auto; max-height: 33px; object-fit: contain;}

@media (max-width: 560px) {
  .institution-prefix {display: none;}
  .institution-wordmark {width: 94px;}
}

/* 0015 — Resultado essencial: todas as cinco pontuações permanecem visíveis.
   Apenas os cálculos, limitações extensas e respostas completas são expandíveis. */
.flow-view:has(.result-layout) .flow-content {padding-top: clamp(17px, 3vh, 29px); padding-bottom: 28px;}
.result-section {padding: 12px 0;}
.result-section:first-child {padding-top: 0;}
.result-main-title {font-size: clamp(26px, 3vw, 33px); margin-bottom: 6px;}
.result-overview .eyebrow {margin-bottom: 4px;}
.result-overview .result-kicker {margin-bottom: 2px;}
.result-overview .movement-name {font-size: clamp(31px, 4vw, 41px); margin-bottom: 6px;}
.result-overview .result-band {padding: 3px 9px; margin-bottom: 8px; font-size: 12px;}
.result-overview .result-reason {font-size: 15px; line-height: 1.45; margin: 0 0 7px;}
.result-overview .small-text {margin: 0; font-size: 12px; line-height: 1.35;}
.result-section-title {font-size: clamp(17px, 2vw, 20px); margin-bottom: 7px;}
.result-scores .section-intro {font-size: 12px; margin: 0 0 8px; line-height: 1.4;}
.result-scores .score-row {
  border-bottom: 0; padding: 3px 0 4px;
  display: grid; grid-template-columns: minmax(0, 1fr) 2fr; column-gap: 12px;
  align-items: center;
}
.result-scores .score-heading {font-size: 13px; margin: 0; gap: 6px; min-width: 0;}
.result-scores .score-title {gap: 4px; min-width: 0;}
.result-scores .score-number {font-size: 13px;}
.result-scores .score-track {height: 7px;}
.result-scores .score-tie {font-size: 10px; padding: 1px 4px;}
.result-tie-note {font-size: 12px; color: var(--muted); margin: 7px 0 0;}
.result-calculation, .result-ai-limits {border-bottom: 0;}
.result-calculation > summary, .result-ai-limits > summary {font-size: 13px; color: var(--primary); padding: 8px 2px; font-weight: 650;}
.result-calculation-body {padding: 5px 3px 9px;}
.calculation-line {display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid var(--edge); padding: 6px 0; font-size: 12px;}
.calculation-line > span:last-child {font-variant-numeric: tabular-nums; text-align: right;}
.result-ai .result-readiness-label {font-size: 14px; margin-bottom: 3px;}
.result-ai .result-reason {font-size: 13px; line-height: 1.5; margin: 0 0 3px;}
.result-ai .muted {font-size: 12px; margin-top: 4px;}
.result-ai-limits .result-reason {padding: 6px 2px 10px;}
.result-actions {padding: 13px 0;}
.result-actions .action-grid {gap: 9px; margin: 0 0 8px;}
.result-actions .action-grid .button {min-height: 42px; padding: 9px 10px; font-size: 13px;}
.result-secondary-actions {display: flex; gap: 9px; flex-wrap: wrap;}
.result-secondary-actions .button {font-size: 12px; font-weight: 620; min-height: 38px; padding: 8px 11px;}
.result-movement > summary {padding: 9px 4px; font-size: 13px; font-weight: 650;}
.result-understanding .section-intro {font-size: 13px; line-height: 1.45; margin-bottom: 8px;}
.result-understanding .result-details > summary {padding-block: 11px; font-size: 13px;}
@media (max-width: 560px) {
  .result-scores .score-row {grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 7px;}
  .result-scores .score-heading {font-size: 12px;}
  .result-scores .score-tie {font-size: 9px;}
  .result-actions .action-grid {grid-template-columns: minmax(0, 1fr);}
  .result-secondary-actions .button {flex: 1 1 110px;}
  .calculation-line {display: grid; gap: 2px;}
  .calculation-line > span:last-child {text-align: left;}
}
/* 0015 — Desktop: panel de decisão em duas zonas para manter ações à vista.
   A ordem semântica do DOM permanece idêntica à leitura mobile. */
@media (min-width: 900px) and (min-height: 660px) {
  .flow-view:has(.result-layout) .flow-content {width: min(100%, 1010px); padding-inline: 35px;}
  .result-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: 'overview scores' 'ai actions' 'understanding understanding';
    column-gap: 28px; row-gap: 12px;
    align-items: start;
  }
  .result-section {padding: 0; border: 0;}
  .result-overview {grid-area: overview;}
  .result-scores {grid-area: scores;}
  .result-ai {grid-area: ai; border-top: 1px solid var(--edge); padding-top: 12px;}
  .result-actions {grid-area: actions; border-top: 1px solid var(--edge); padding-top: 12px;}
  .result-understanding {grid-area: understanding; border-top: 1px solid var(--edge); padding-top: 12px;}
  .result-scores .score-row {grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);}
  .result-actions .action-grid .button {min-height: 46px;}
  .result-overview .notice {margin-top: 10px;}
}


/* 0016 — Preparação orientada à cópia: revelar detalhes só sob demanda. */
.flow-view:has(.prompt-compact) .flow-content {width: min(100%, 780px);}
.prompt-compact .prompt-intro {margin-bottom: 15px;}
.prompt-compact .flow-title {font-size: clamp(26px, 3.6vw, 34px); margin-bottom: 7px;}
.prompt-compact .prompt-intro .small-text {margin: 0; max-width: 660px;}
.prompt-compact-section {padding: 13px 0 14px; border-top: 1px solid var(--edge);}
.prompt-compact .prompt-section-title {font-size: 17px; margin: 0 0 9px; line-height: 1.35;}
.prompt-compact .prompt-destinations {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;}
.prompt-compact .environment-option {min-height: 62px; padding: 10px 12px; gap: 10px; align-items: center;}
.prompt-compact .environment-copy strong {font-size: 15px;}
.prompt-compact .environment-copy .muted {font-size: 12px; line-height: 1.4; margin: 0;}
.prompt-destination-explanation {font-size: 13px; color: var(--ink); background: var(--primary-soft); border-radius: 9px; padding: 9px 12px; line-height: 1.5; margin: 10px 0 0;}
.prompt-compact .field-label {font-size: 14px; margin-bottom: 5px;}
.prompt-situation-input {min-height: 72px; height: 82px; max-height: 40dvh; resize: vertical; font-size: 16px; line-height: 1.45;}
.prompt-compact .counter {display: block; text-align: right; font-size: 12px; margin: 2px 0;}
.prompt-context-status {margin: 2px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45;}
.prompt-compact .prompt-movement-note {font-size: 14px; font-weight: 650; margin: 0 0 3px; color: var(--ink);}
.prompt-payload-summary {font-size: 13px; color: var(--muted); margin: 0 0 5px;}
.prompt-compact .prompt-review-warning {font-size: 12px; margin: 0 0 9px; line-height: 1.45;}
.prompt-compact-actions {display: flex; flex-wrap: wrap; gap: 9px; align-items: center;}
.prompt-compact-actions .button {min-height: 44px; white-space: normal;}
.prompt-compact .copy-status {min-height: 0; margin-top: 5px;}
.prompt-compact-more {margin-top: 5px; border-top: 1px solid var(--edge);}
.prompt-compact-details {border-bottom: 1px solid var(--edge);}
.prompt-compact-details > summary {padding: 13px 4px; font-size: 14px; font-weight: 650; cursor: pointer;}
.prompt-compact-details > summary:focus-visible {outline: 3px solid var(--focus); outline-offset: 2px;}
.prompt-compact .prompt-preview-full {max-height: none; font-size: 13px; line-height: 1.6; margin: 0 0 13px;}
.prompt-context-details .prompt-subtitle {margin: 13px 0 9px;}
.prompt-context-details .prompt-note-details:last-child {margin-bottom: 12px;}
@media (max-width: 540px) {
  .prompt-compact .prompt-destinations {grid-template-columns: minmax(0,1fr); gap: 7px;}
  .prompt-compact .environment-option {min-height: 48px; padding: 8px 10px;}
  .prompt-compact .environment-copy {display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px;}
  .prompt-compact-actions {display: grid;}
  .prompt-compact .flow-title {font-size: 25px;}
}

/* Ajuste proporcional para expor a ação principal no primeiro viewport desktop. */
.prompt-compact .prompt-intro {margin-bottom: 10px;}
.prompt-compact-section {padding-top: 9px; padding-bottom: 9px;}
.prompt-compact .prompt-section-title {margin-bottom: 6px;}
.prompt-compact .prompt-destination-explanation {padding: 7px 10px; margin-top: 7px;}
.prompt-compact .prompt-situation-input {height: 69px; min-height: 69px;}
.prompt-compact .prompt-review-warning {margin-bottom: 6px;}
.prompt-compact .prompt-context-status {margin: 0;}

/* 0017 — Guiado confortável: hierarquia clara, opção de nota sob demanda.
   Preservar texto das alternativas em 16px e alvos de toque >=44px.
   Não esconder a barra quando rolagem for realmente necessária. */
.guided-step-scroll {scrollbar-gutter: auto;}
.guided-step-inner {width: min(100%, 740px); padding: clamp(16px, 2.4vh, 24px) clamp(16px, 3.2vw, 32px) 20px;}
.guided-question {font-size: clamp(22px, 2.5vw, 27px); line-height: 1.27; margin-bottom: 6px;}
.guided-instruction {margin-bottom: 12px; line-height: 1.4;}
.guided-stage .choice-group {gap: 7px;}
.guided-stage .choice {min-height: 50px; padding: 8px 12px; gap: 10px;}
.guided-stage .choice-letter {height: 27px; width: 27px; flex-shrink: 0;}
.guided-stage .choice-label {font-size: 16px; line-height: 1.4;}
.guided-note {margin-top: 15px; border-top: 1px solid var(--edge); min-width: 0;}
.guided-note-summary {
  cursor: pointer; padding: 12px 6px; font-size: 14px; line-height: 1.45;
  font-weight: 680; color: var(--primary);
}
.guided-note-summary:focus-visible {outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 5px;}
.guided-note-summary-hint {display: inline; font-size: 12px; color: var(--muted); font-weight: 400; margin-left: 12px;}
.guided-note-body {padding: 5px 4px 14px;}
.guided-note-body .field-label {display: block; font-size: 14px; margin-bottom: 7px;}
.guided-note-body .textarea {min-height: 84px; max-height: 45dvh; resize: vertical; font-size: 16px; line-height: 1.45;}
.guided-note-body .hint {font-size: 12px; line-height: 1.45; margin: 7px 0 0;}
.guided-note-body .counter {display: block; text-align: right; margin: 3px 0 0;}
@media (max-width: 760px) {
  .guided-step-inner {padding: 14px 14px 18px;}
  .guided-question {font-size: clamp(21px, 5.8vw, 25px);}
  .guided-stage .choice {min-height: 48px; padding: 8px 10px;}
  .guided-note-summary-hint {display: block; margin-left: 0; margin-top: 1px;}
}
@media (max-height: 600px) {
  .guided-step-inner {padding-block: 11px 14px;}
  .guided-instruction {margin-bottom: 9px;}
  .guided-step-top {padding-block: 6px 7px; gap: 5px;}
  .guided-step-bottom {padding-block: 5px;}
  .guided-stage .choice {min-height: 44px; padding-block: 6px;}
  .guided-note {margin-top: 9px;}
  .guided-note-summary {padding-block: 8px;}
}

/* 0018 — Confirmar descartes locais sem modal ou perda silenciosa de respostas. */
.restart-control {min-width: 0;}
.restart-confirmation[hidden] {display: none;}
.restart-confirmation {
  margin-top: 10px; padding: 13px 15px;
  border: 1px solid var(--edge-strong); border-radius: var(--radius-control);
  background: #f7faf8;
}
.restart-confirmation p {margin: 0 0 12px; font-size: 14px; line-height: 1.5;}
.restart-confirmation-actions {display: flex; flex-wrap: wrap; gap: 9px;}
.restart-confirmation-actions .button {min-height: 44px; white-space: normal;}
@media (max-width: 540px) {
  .restart-confirmation-actions {display: grid; grid-template-columns: minmax(0, 1fr);}
}

/* PLAN-WG-STATIC-01: safe areas and recoverable startup error (no UI redesign). */
body { padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px); }
.startup-error-details { margin-top: 16px; font-size: 13px; }
.startup-error-details code { display: block; white-space: pre-wrap; overflow-wrap: anywhere; padding-top: 9px; }
.entry-privacy { max-width: 650px; }

/* PLAN-WG-UX-02 / P01 — Estrutura responsiva da entrada e do Guiado.
   Somente composição: preserva textos das opções, estados, scoring e navegação deliberada. */
@media (min-width: 980px) {
  /* A entrada usa a largura disponível para distinguir proposta e benefícios. */
  .app-shell:has(.entry-layout) {width: min(1090px, calc(100% - 56px));}
  .flow-view:has(.entry-layout) .flow-content {width: 100%; padding: clamp(28px, 5vh, 52px) clamp(28px, 4vw, 52px) 32px;}
  .entry-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(270px, .8fr);
    grid-template-areas: 'hero benefits';
    align-items: start;
    gap: 22px clamp(32px, 4vw, 64px);
  }
  .entry-hero {grid-area: hero;}
  .entry-benefits {grid-area: benefits; margin-top: 0; padding: 17px 22px; background: #f7faf8; border: 1px solid var(--edge); border-radius: var(--radius-control);}
  .entry-benefits-title {font-size: 20px;}
  .app-shell:has(.guided-step) {width: min(1120px, calc(100% - 56px));}
  .guided-step-scroll {display: flex; flex-direction: column;}
  .guided-step-inner {flex: none; margin-block: auto; width: 100%; max-width: 1040px; padding: clamp(26px, 5vh, 54px) clamp(28px, 4.2vw, 56px) 32px;}
  .guided-stage {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(28px, 4.2vw, 68px);
    align-items: start;
  }
  .guided-introduction {position: sticky; top: 0; min-width: 0;}
  .guided-question {font-size: clamp(27px, 2.6vw, 34px); line-height: 1.22; margin-bottom: 13px;}
  .guided-instruction {font-size: 15px; line-height: 1.55;}
  .guided-answers {min-width: 0;}
  .guided-stage .choice-group {gap: 10px;}
  .guided-stage .choice {min-height: 62px; padding: 12px 16px;}
  .guided-stage .choice-letter {width: 32px; height: 32px;}
  .guided-note {margin-top: 19px;}
  .guided-step-top, .guided-step-bottom {padding-inline: clamp(28px, 5vw, 55px);}
}
/* O título recebe foco programático para anunciar mudanças de etapa;
   o anel de teclado continua nos controles interativos, não no título estático. */
.guided-question[tabindex="-1"]:focus {outline: none;}

@media (max-width: 979px) {
  .guided-introduction, .guided-answers {min-width: 0;}
  .guided-step-inner {max-width: 760px;}
}
@media (max-width: 760px) {
  /* O header não deve competir com o conteúdo em aparelhos baixos. */
  .guided-step-top {padding: 8px 12px 9px; gap: 6px;}
  .guided-step-location strong {font-size: 14px;}
  .guided-step-location span {font-size: 12px;}
  .guided-step-bottom {padding: 7px 10px; gap: 8px;}
  .guided-step-bottom .button {min-height: 44px; width: auto; flex: 1 1 0; padding: 8px 10px; font-size: 14px;}
  .guided-step-scroll {scrollbar-gutter: auto;}
  .guided-step-inner {padding: 15px 14px 25px;}
  .guided-question {font-size: clamp(22px, 5.8vw, 26px); line-height: 1.24; margin-bottom: 7px;}
  .guided-instruction {font-size: 14px; line-height: 1.4; margin-bottom: 13px;}
  .guided-stage .choice {min-height: 52px; padding: 10px 11px; gap: 10px;}
  .guided-stage .choice-letter {width: 29px; height: 29px;}
  .guided-stage .choice-label {font-size: 16px; line-height: 1.38;}
  .guided-note {margin-top: 12px;}
  .guided-note-summary {padding: 12px 4px;}
  .guided-note-summary-hint {display: inline; margin: 0 0 0 7px;}
  .flow-view:has(.entry-layout) .flow-content {padding: 20px 16px 24px;}
  .entry-title {font-size: clamp(27px, 6.6vw, 34px); margin-bottom: 11px;}
  .entry-hero > .pane-description {margin-bottom: 13px; line-height: 1.48;}
  .entry-benefits {margin-top: 23px;}
  .entry-benefit {padding: 9px 0;}
  .entry-benefit h3 {margin-bottom: 1px;}
  .entry-benefit p {line-height: 1.42;}
}
@media (max-width: 360px), (max-height: 550px) {
  .guided-step-top {padding-block: 5px 6px; gap: 4px;}
  .guided-step-progress {height: 4px;}
  .guided-step-bottom {padding: 5px 9px;}
  .guided-step-inner {padding: 10px 11px 17px;}
  .guided-instruction {margin-bottom: 10px;}
  .guided-stage .choice-group {gap: 7px;}
  .guided-stage .choice {min-height: 48px; padding: 8px 9px;}
  .guided-note-summary-hint {display: block; margin: 1px 0 0;}
}

/* PLAN-WG-UX-02/P02 — resultado legível antes dos detalhes técnicos.
   Ordem do DOM: orientação, ações, prontidão, scores, procedência. */
.flow-view:has(.result-layout) .flow-content {width: min(100%, 1060px);}
.result-layout {display: grid; gap: 14px; align-items: start;}
.result-layout .result-section {min-width: 0;}
.result-overview {
  background: var(--primary-soft);
  border: 1px solid #cfe1d8;
  border-radius: 16px;
  padding: clamp(17px, 3vw, 26px);
}
.result-actions {
  background: #fff;
  border: 1px solid var(--edge);
  border-radius: 16px;
  padding: clamp(17px, 3vw, 24px);
}
.result-effective-movement {color: var(--primary-dark); font-size: 14px; font-weight: 650; margin: 0 0 14px; line-height: 1.45;}
.result-actions .action-grid {display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0 0 11px;}
.result-actions .action-grid .button {min-height: 48px; font-size: 15px; line-height: 1.4; padding: 12px;}
.result-secondary-actions {gap: 8px; margin-bottom: 12px;}
.result-secondary-actions .button {min-height: 44px; font-size: 13px; padding: 9px 12px;}
.result-movement {margin-top: 6px;}
.result-movement > summary {min-height: 44px; display: list-item; align-content: center;}
.result-movement .movement-chooser .small-text:last-child {margin-top: 10px;}
.result-ai, .result-scores {padding: 14px 2px; border-top: 1px solid var(--edge);}
.result-understanding {padding: 12px 2px; border-top: 1px solid var(--edge);}
.result-scores .score-row {min-height: 31px;}
.review-item-heading {display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 5px;}
.review-item-heading h3 {margin: 0;}
.review-item-heading .button {min-height: 44px; padding: 7px 12px; font-size: 13px;}
.result-understanding .result-details > summary {min-height: 44px; scroll-margin-top: 12px;}
.guided-review-hint {font-size: 13px; line-height: 1.45; color: var(--muted); margin: 9px 0 0;}
@media (min-width: 900px) and (min-height: 660px) {
  .result-layout {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    grid-template-areas: 'overview actions' 'ai scores' 'understanding understanding';
    column-gap: 20px; row-gap: 17px;
  }
  .result-overview {grid-area: overview;}
  .result-actions {grid-area: actions;}
  .result-ai {grid-area: ai;}
  .result-scores {grid-area: scores;}
  .result-understanding {grid-area: understanding;}
}
@media (max-width: 560px) {
  .flow-view:has(.result-layout) .flow-content {padding: 13px 12px 30px;}
  .result-layout {gap: 13px;}
  .result-overview, .result-actions {padding: 15px 13px; border-radius: 12px;}
  .result-actions .action-grid .button {font-size: 14px; min-height: 48px;}
  .result-overview .movement-name {font-size: clamp(29px, 8.6vw, 37px);}
  .result-overview .result-reason {line-height: 1.5;}
  .result-secondary-actions {display: grid; grid-template-columns: 1fr;}
  .result-secondary-actions .button {min-height: 44px;}
}

/* PLAN-WG-UX-02/P03 — continuidade sem desvio de tela e prompt orientado à cópia. */
.result-reflection {margin: 3px 0 10px; border: 1px solid var(--edge); border-radius: var(--radius-control); padding-inline: 12px;}
.result-reflection > summary {display: list-item; min-height: 44px; align-content: center; cursor: pointer; color: var(--primary-dark); font-weight: 680; font-size: 14px;}
.result-reflection > summary:focus-visible {outline: 3px solid var(--focus); outline-offset: 2px;}
.result-reflection .reflection-question {font-size: clamp(19px, 2vw, 23px); line-height: 1.35; margin: 10px 0;}
.result-reflection .muted {font-size: 13px; line-height: 1.5;}
.done-layout {width: min(100%, 630px); margin-inline: auto;}
.done-layout .done-movement {padding: 13px 16px; background: var(--primary-soft); color: var(--primary-dark); border-radius: var(--radius-control); font-weight: 700; overflow-wrap: anywhere;}
.done-layout .flow-actions {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start;}
.done-layout .flow-actions > .button, .done-layout .restart-control > .button {width: 100%;}
.prompt-compact .prompt-delivery {background: var(--primary-soft); border: 1px solid #cfe1d8; border-radius: 14px; padding: 15px 16px; min-width: 0;}
.prompt-compact .prompt-delivery .button-primary {flex: 1 1 190px;}
.prompt-compact .prompt-delivery .button-secondary {flex: 1 1 130px;}
.prompt-compact-more {min-width: 0;}
.prompt-compact .prompt-preview-full {max-height: clamp(230px, 57dvh, 480px); overflow-y: auto; overscroll-behavior: contain;}
.prompt-compact .copy-status:not(:empty) {margin-top: 10px; font-weight: 650; line-height: 1.45;}
@media (min-width: 980px) and (min-height: 660px) {
  .flow-view:has(.prompt-compact) .flow-content {width: min(100%, 1040px);}
  .prompt-compact {display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); column-gap: clamp(22px, 3vw, 40px); align-items: start;}
  .prompt-compact .prompt-intro, .prompt-compact-more {grid-column: 1 / -1;}
  .prompt-compact .prompt-intro {margin-bottom: 18px;}
  .prompt-compact .prompt-delivery {grid-column: 2; grid-row: 2 / span 2; margin-top: 0;}
  .prompt-compact .prompt-destinations {grid-template-columns: repeat(2, minmax(0, 1fr));}
  .prompt-compact-more {margin-top: 14px;}
}
@media (max-width: 560px) {
  .prompt-compact .prompt-delivery {padding: 12px;}
  .done-layout .flow-actions {grid-template-columns: minmax(0, 1fr);}
  .done-layout .flow-actions > * {min-width: 0;}
}

.prompt-full-details > .button {margin: 11px 0 6px; max-width: 100%; white-space: normal;}
.prompt-full-details > .muted {font-size: 12px; line-height: 1.5; margin: 0 0 14px;}

/* PLAN-WG-UX-03/P01 — Shell de viewport e entrada distribuída.
   Somente a entrada utiliza este layout; Guiado/Resultado/Prompt serão migrados
   nos patches seguintes. O conteúdo variável continua rolável quando necessário. */
:root {
  --workspace-max: 1360px;
  --workspace-gutter: clamp(16px, 3vw, 44px);
}
@media (min-width: 980px) {
  body:has(.entry-layout) .site-header {
    width: min(var(--workspace-max), calc(100% - 2 * var(--workspace-gutter)));
  }
  body:has(.entry-layout) .app-shell {
    width: min(var(--workspace-max), calc(100% - 2 * var(--workspace-gutter)));
    margin: 0 auto;
    height: 100%;
  }
  .flow-view:has(.entry-layout) {
    border: 0;
    border-radius: 0;
    background: transparent;
    scrollbar-gutter: auto;
  }
  .flow-view:has(.entry-layout) .flow-content {
    width: 100%;
    min-height: 100%;
    padding: clamp(16px, 2.4vh, 28px) 0 clamp(11px, 2vh, 20px);
  }
  .entry-layout {
    min-height: calc(100dvh - 52px - clamp(16px, 2.4vh, 28px) - clamp(11px, 2vh, 20px));
    display: grid;
    grid-template-columns: minmax(0, 1.14fr) minmax(370px, .86fr);
    grid-template-rows: minmax(0, 1fr) auto;
    grid-template-areas: 'hero movements' 'benefits benefits';
    column-gap: clamp(32px, 6vw, 105px);
    row-gap: clamp(13px, 2.1vh, 27px);
    align-items: center;
  }
  .entry-hero {
    grid-area: hero;
    align-self: center;
    max-width: 680px;
    padding: 8px 0;
  }
  .entry-hero .eyebrow {margin-bottom: 12px;}
  .entry-title {max-width: 690px; font-size: clamp(36px, 3.55vw, 53px); line-height: 1.12; margin-bottom: 17px;}
  .entry-hero > .pane-description {max-width: 620px; font-size: clamp(16px, 1.35vw, 18px); line-height: 1.52; margin-bottom: 20px;}
  .entry-hero > .button {min-height: 50px;}
  .entry-privacy {margin: 14px 0 0; max-width: 580px; line-height: 1.45;}
  .entry-disclaimer {margin-top: 8px; line-height: 1.45;}
  .entry-movements {
    grid-area: movements;
    align-self: center;
    min-width: 0;
    border: 1px solid var(--edge);
    background: #fff;
    border-radius: 18px;
    padding: clamp(18px, 2.1vw, 29px);
  }
  .entry-movements .eyebrow {margin: 0 0 3px;}
  .entry-movements-title {font-size: clamp(18px, 1.6vw, 22px); margin: 0 0 6px;}
  .entry-movements-context {font-size: 13px; line-height: 1.45; color: var(--muted); margin: 0 0 13px;}
  .entry-movement-list {list-style: none; counter-reset: movement; margin: 0; padding: 0; display: grid; gap: 7px;}
  .entry-movement {
    counter-increment: movement; display: flex; align-items: center; gap: 12px;
    min-height: 42px; padding: 7px 12px; border-radius: 10px;
    border: 1px solid #e5ece8; background: #f8faf9;
  }
  .entry-movement::before {
    content: counter(movement, decimal-leading-zero);
    display: grid; place-items: center; flex: 0 0 31px; height: 27px;
    border-radius: 8px; background: #e5f0eb; color: var(--primary-dark);
    font-size: 12px; font-weight: 740;
  }
  .entry-movement-name {font-size: 15px; font-weight: 670;}
  .entry-movements-disclaimer {font-size: 12px; color: var(--muted); margin: 12px 0 0; line-height: 1.45;}
  .entry-benefits {
    grid-area: benefits; width: 100%; min-width: 0; margin: 0;
    padding: 13px 0 0; border: 0; border-top: 1px solid var(--edge); border-radius: 0;
    background: transparent;
  }
  .entry-benefits-title {font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: 10px;}
  .entry-benefits-grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;}
  .entry-benefit {border: 1px solid var(--edge); border-radius: 12px; background: #fff; padding: 13px 16px; min-width: 0;}
  .entry-benefit h3 {font-size: 14px; margin-bottom: 3px;}
  .entry-benefit p {font-size: 13px; line-height: 1.4;}
}
/* Larguras intermediárias e mobile: manter leitura linear e rolagem honesta.
   Não reduzir a escala de texto nem ocultar conteúdos para simular viewport-fit. */
@media (max-width: 979px) {
  .entry-layout {display: flex; flex-direction: column; align-items: stretch; gap: 22px;}
  .entry-movements {padding: 16px; background: #f8faf9; border: 1px solid var(--edge); border-radius: 12px;}
  .entry-movements-title {margin: 0 0 6px; font-size: 19px;}
  .entry-movements-context, .entry-movements-disclaimer {font-size: 13px; color: var(--muted); line-height: 1.45; margin: 0 0 10px;}
  .entry-movements-disclaimer {margin: 10px 0 0;}
  .entry-movement-list {list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0;}
  .entry-movement {border: 1px solid var(--edge); background: #fff; border-radius: 8px; padding: 9px 12px; font-size: 14px; font-weight: 650; min-width: 0;}
  .entry-benefits {margin: 0;}
  .entry-benefits-grid {display: grid; gap: 6px;}
  .entry-benefits-title {margin-bottom: 6px;}
}
@media (max-width: 540px) {
  .entry-movement-list {grid-template-columns: minmax(0, 1fr);}
}
/* Viewports mais baixos devem permitir leitura completa, mesmo no desktop. */
@media (min-width: 980px) and (max-height: 740px) {
  .entry-layout {column-gap: 28px; row-gap: 10px;}
  .entry-title {font-size: clamp(32px, 3.3vw, 43px); margin-bottom: 10px;}
  .entry-hero > .pane-description {font-size: 15px; margin-bottom: 12px;}
  .entry-hero .entry-privacy {margin-top: 9px;}
  .entry-movements {padding: 13px 17px;}
  .entry-movements-context {margin-bottom: 7px;}
  .entry-movement-list {gap: 4px;}
  .entry-movement {min-height: 35px; padding: 4px 10px;}
  .entry-movements-disclaimer {margin-top: 6px;}
  .entry-benefits {padding-top: 8px;}
  .entry-benefit {padding: 9px 12px;}
}

/* PLAN-WG-UX-03/P02 — Guiado como workspace desktop.
   Sem rolagem principal no estado padrão: pergunta e alternativas usam a
   altura disponível; detalhe opcional ocupa faixa inferior. Com conteúdo
   longo/zoom/altura insuficiente, a rolagem interna continua acessível. */
@media (min-width: 980px) and (min-height: 660px) {
  body:has(.guided-step) .site-header {
    width: min(var(--workspace-max), calc(100% - 2 * var(--workspace-gutter)));
  }
  body:has(.guided-step) .app-shell {
    width: min(var(--workspace-max), calc(100% - 2 * var(--workspace-gutter)));
    margin: 0 auto; height: 100%;
  }
  .guided-step {
    border: 0; border-radius: 0; background: transparent;
  }
  .guided-step-top {
    padding: 10px 0 12px; background: transparent;
  }
  .guided-step-bottom {
    padding: 10px 0 12px; background: transparent;
  }
  .guided-step-scroll {
    display: block; scrollbar-gutter: auto;
  }
  .guided-step-inner {
    display: flex; flex-direction: column;
    margin: 0 auto; width: 100%; max-width: none; min-height: 100%;
    padding: clamp(14px, 2.4vh, 24px) 0 clamp(12px, 2vh, 20px);
  }
  .guided-stage {
    flex: 1 0 auto;
    min-height: 0; width: 100%;
    display: grid;
    grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr);
    grid-template-rows: minmax(min-content, 1fr) auto;
    grid-template-areas: 'question alternatives' 'note note';
    gap: clamp(10px, 1.6vh, 18px) clamp(34px, 5vw, 82px);
    align-items: stretch;
  }
  .guided-introduction {
    grid-area: question; align-self: center;
    position: static; padding: 0 0 10px 0;
  }
  .guided-answers {grid-area: alternatives; align-self: center; min-width: 0;}
  .guided-question {font-size: clamp(30px, 3vw, 42px); max-width: 570px;}
  .guided-instruction {font-size: 16px; max-width: 470px; margin-bottom: 0;}
  .guided-stage .choice-group {gap: clamp(7px, 1.15vh, 12px);}
  .guided-stage .choice {min-height: clamp(50px, 6.9vh, 66px); padding: 9px 16px;}
  .guided-stage .choice-label {font-size: 16px; line-height: 1.38;}
  .guided-note {
    grid-area: note; align-self: end;
    margin: 0; padding: 0 clamp(12px, 1.8vw, 24px);
    border: 1px solid var(--edge); border-radius: 12px;
    background: #f8faf9;
  }
  .guided-note-summary {padding: 11px 0; min-height: 44px; align-content: center;}
  .guided-note-body {padding: 3px 0 13px;}
  .guided-note-body .textarea {max-height: 26dvh; resize: vertical;}
  .guided-step-bottom .button {min-width: 145px;}
}

/* PLAN-WG-UX-03/P03 — Resultado distribuído em viewport completo.
   A visão resumida cabe no desktop; conteúdos expansíveis permanecem
   na mesma superfície com rolagem acessível quando ultrapassam o espaço. */
@media (min-width: 980px) and (min-height: 660px) {
  body:has(.result-layout) .site-header,
  body:has(.result-layout) .app-shell {
    width: min(var(--workspace-max), calc(100% - 2 * var(--workspace-gutter)));
  }
  body:has(.result-layout) .app-shell {
    margin: 0 auto;
    height: 100%;
  }
  .flow-view:has(.result-layout) {
    border: 0;
    border-radius: 0;
    background: transparent;
    scrollbar-gutter: auto;
  }
  .flow-view:has(.result-layout) .flow-content {
    width: 100%;
    padding: clamp(10px, 1.8vh, 18px) 0 clamp(10px, 1.8vh, 18px);
    min-height: 100%;
    display: flex;
    flex-direction: column;
  }
  .result-layout {
    margin-block: auto;
    width: 100%;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    grid-template-areas: 'overview actions' 'ai scores' 'understanding understanding';
    grid-template-rows: auto auto auto;
    align-content: center;
    align-items: stretch;
    column-gap: clamp(16px, 2.2vw, 32px);
    row-gap: clamp(8px, 1.3vh, 14px);
  }
  .result-layout > .result-section {
    min-width: 0;
    border: 1px solid var(--edge);
    border-radius: 13px;
    padding: clamp(12px, 1.6vw, 19px);
    scroll-margin-top: 10px;
  }
  .result-layout > .result-overview {
    grid-area: overview;
    background: var(--primary-soft);
    border-color: #cfe1d8;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .result-layout > .result-actions {grid-area: actions;}
  .result-layout > .result-ai {grid-area: ai; background: #fafcfb;}
  .result-layout > .result-scores {grid-area: scores; background: #fafcfb;}
  .result-layout > .result-understanding {grid-area: understanding; padding-block: 9px;}
  .result-main-title {font-size: clamp(24px, 2.1vw, 31px);}
  .result-overview .movement-name {font-size: clamp(35px, 3.1vw, 45px);}
  .result-overview .result-band {align-self: flex-start;}
  .result-overview .result-reason {font-size: 15px; line-height: 1.5;}
  .result-section-title {font-size: clamp(17px, 1.5vw, 20px);}
  .result-actions .action-grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;}
  .result-actions .action-grid .button {min-height: 44px; padding: 9px 11px; font-size: 13px;}
  .result-effective-movement {font-size: 13px; margin-bottom: 8px;}
  .result-secondary-actions {margin-bottom: 6px;}
  .result-secondary-actions .button {min-height: 38px; padding: 7px 10px;}
  .result-reflection {margin-bottom: 3px;}
  .result-reflection > summary,
  .result-movement > summary {min-height: 35px; font-size: 13px; padding-block: 6px;}
  .result-ai .result-reason {font-size: 13px; line-height: 1.44;}
  .result-ai .result-readiness-label {font-size: 14px;}
  .result-scores .score-row {min-height: 0; padding-block: 4px;}
  .result-scores .score-heading {font-size: 12px; margin-bottom: 2px;}
  .result-scores .score-number {font-size: 12px;}
  .result-scores .score-track {height: 6px;}
  .result-scores .section-intro {margin-bottom: 5px;}
  .result-calculation > summary, .result-ai-limits > summary {padding: 6px 2px;}
  .result-understanding .section-intro {margin-bottom: 3px;}
  .result-understanding .result-details > summary {min-height: 34px; padding-block: 6px;}
  .result-layout > .result-section:has(details[open]) {align-self: start;}
}

@media (min-width: 980px) and (min-height: 660px) {
  .result-layout > .result-section {padding: 11px 15px;}
  .result-layout > .result-understanding {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 0 24px;
    align-items: center;
    padding: 7px 15px;
  }
  .result-understanding > .result-section-title {grid-column: 1; grid-row: 1; margin-bottom: 2px;}
  .result-understanding > .section-intro {grid-column: 1; grid-row: 2; margin: 0;}
  .result-understanding > .result-details:first-of-type {grid-column: 2; grid-row: 1;}
  .result-understanding > .result-details:last-of-type {grid-column: 2; grid-row: 2;}
  .result-understanding > .result-details {border-top: 0; border-bottom: 0;}
  .result-understanding > .result-details[open] {
    grid-column: 1 / -1;
    grid-row: auto;
    border-top: 1px solid var(--edge);
  }
}

/* PLAN-WG-UX-03/P04 — telas finais compartilham o shell de viewport do Guiado.
   A leitura padrão cabe no desktop; conteúdo variável mantém rolagem acessível. */
@media (min-width: 980px) and (min-height: 660px) {
  body:has(.prompt-compact, .done-layout, .startup-error-layout) .site-header,
  body:has(.prompt-compact, .done-layout, .startup-error-layout) .app-shell {
    width: min(1360px, calc(100% - 48px));
  }
  body:has(.prompt-compact, .done-layout, .startup-error-layout) .app-shell {
    margin: 6px auto;
    height: calc(100% - 12px);
  }
  .flow-view:has(.prompt-compact, .done-layout, .startup-error-layout) {
    scrollbar-gutter: auto;
  }
  .flow-view:has(.prompt-compact, .done-layout, .startup-error-layout) .flow-content {
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    padding: clamp(14px, 2.2vh, 26px) clamp(22px, 3vw, 48px);
  }
  .prompt-compact {
    width: 100%;
    margin-block: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
    grid-template-areas:
      'intro intro'
      'destination delivery'
      'situation delivery'
      'more more';
    grid-template-rows: auto auto auto auto;
    column-gap: clamp(20px, 3vw, 50px);
    row-gap: clamp(9px, 1.7vh, 17px);
    align-items: start;
  }
  .prompt-compact > .prompt-intro {grid-area: intro; margin: 0;}
  .prompt-compact > .prompt-compact-section:nth-child(2) {grid-area: destination;}
  .prompt-compact > .prompt-compact-section:nth-child(3) {grid-area: situation;}
  .prompt-compact > .prompt-delivery {grid-area: delivery; align-self: stretch;}
  .prompt-compact > .prompt-compact-more {grid-area: more; margin: 0;}
  .prompt-compact > .prompt-compact-section {border: 1px solid var(--edge); border-radius: 13px; padding: clamp(10px, 1.4vh, 17px) clamp(14px, 1.4vw, 22px); background: #fafcfb; min-width: 0;}
  .prompt-compact > .prompt-delivery {background: var(--primary-soft); border-color: #cfe1d8;}
  .prompt-compact .prompt-intro .flow-title {font-size: clamp(26px, 2.6vw, 37px); margin-bottom: 5px;}
  .prompt-compact .prompt-intro .small-text {max-width: 100%; line-height: 1.4;}
  .prompt-compact .prompt-destinations {grid-template-columns: repeat(2, minmax(0, 1fr));}
  .prompt-compact .environment-option {min-height: 54px; padding: 8px 10px;}
  .prompt-compact .prompt-destination-explanation {font-size: 12px; padding: 7px 10px; margin-top: 7px; line-height: 1.4;}
  .prompt-compact .prompt-situation-input {height: clamp(60px, 8.4vh, 98px); min-height: 60px; max-height: 28dvh;}
  .prompt-compact .prompt-compact-more {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 22px; border-top: 0; align-items: start;}
  .prompt-compact .prompt-compact-details {border: 1px solid var(--edge); border-radius: 12px; padding-inline: 12px; min-width: 0; background: #fff;}
  .prompt-compact .prompt-compact-details > summary {padding-block: 10px;}
  .prompt-compact .prompt-compact-details[open] {grid-column: 1 / -1;}
  .prompt-compact .prompt-preview-full {max-height: clamp(220px, 46dvh, 470px);}
  .done-layout {
    max-width: 1120px;
    width: min(100%, 1120px);
    margin: auto;
    display: grid;
    grid-template-columns: minmax(0, 1.13fr) minmax(0, .87fr);
    align-items: stretch;
    gap: clamp(18px, 3vw, 40px);
  }
  .done-summary, .done-continuation, .startup-error-message, .startup-error-help {
    border: 1px solid var(--edge);
    border-radius: 17px;
    padding: clamp(21px, 3vw, 38px);
    min-width: 0;
  }
  .done-summary {background: var(--primary-soft); border-color: #cfe1d8;}
  .done-continuation {background: #fafcfb; display: flex; flex-direction: column; justify-content: center;}
  .done-layout .flow-title {font-size: clamp(30px, 3vw, 43px);}
  .done-layout .done-movement {margin: 12px 0 0;}
  .done-layout .flow-actions {grid-template-columns: 1fr; margin-top: 13px;}
  .done-continuation > .small-text {margin-bottom: 8px;}
  .startup-error-layout {
    width: min(100%, 1100px);
    margin: auto;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
    align-items: stretch;
    gap: clamp(18px, 3vw, 40px);
  }
  .startup-error-message {background: var(--primary-soft); border-color: #cfe1d8;}
  .startup-error-help {background: #fafcfb;}
  .startup-error-layout .flow-title {font-size: clamp(28px, 2.8vw, 40px);}
  .startup-error-layout .pane-description {font-size: 16px; line-height: 1.55;}
  .startup-error-details code {max-height: 36dvh; overflow-y: auto;}
}
@media (max-width: 979px), (max-height: 659px) {
  .done-layout {width: min(100%, 630px); margin-inline: auto; display: grid; gap: 14px;}
  .done-summary, .done-continuation, .startup-error-message, .startup-error-help {min-width: 0; padding: 16px; border: 1px solid var(--edge); border-radius: 12px;}
  .done-summary, .startup-error-message {background: var(--primary-soft);}
  .done-continuation, .startup-error-help {background: #fafcfb;}
  .startup-error-layout {width: min(100%, 630px); margin-inline: auto; display: grid; gap: 14px;}
}
@media (max-width: 560px) {
  .done-layout .flow-actions {grid-template-columns: minmax(0, 1fr);}
  .startup-error-layout .flow-title {font-size: clamp(24px, 7vw, 30px);}
}

/* PLAN-WG-UX-04/P01: diálogo nativo com cabeçalho/rodapé estáveis.
   Apenas .wg-modal-body rola; o workspace subjacente nunca é expandido. */
.wg-modal:not([open]) {display: none;}
.wg-modal[open] {
  display: grid; grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(760px, calc(100vw - 32px)); max-width: calc(100vw - 32px);
  max-height: min(85dvh, 850px); min-height: 0;
  margin: auto; padding: 0; color: var(--ink); background: #fff;
  border: 1px solid var(--edge-strong); border-radius: 16px;
  box-shadow: 0 16px 56px #17383033; overflow: hidden;
}
.wg-modal::backdrop {background: rgb(18 41 39 / 55%);}
.wg-modal-header, .wg-modal-footer {
  padding: 13px 20px; background: #fff; display: flex; align-items: center;
  gap: 12px; justify-content: space-between; min-width: 0;
}
.wg-modal-header {border-bottom: 1px solid var(--edge);}
.wg-modal-title {margin: 0; font-size: 21px; line-height: 1.3;}
.wg-modal-dismiss {font: inherit; color: var(--primary-dark); border: 1px solid var(--edge-strong); border-radius: 8px; padding: 8px 12px; background: #fff; flex-shrink: 0; cursor: pointer;}
.wg-modal-body {min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 20px; overflow-wrap: anywhere;}
.wg-modal-footer {justify-content: flex-end; border-top: 1px solid var(--edge); flex-wrap: wrap;}
.wg-modal-footer .button {min-height: 42px;}
.wg-modal .result-detail-item {padding: 12px 0; border-bottom: 1px solid var(--edge);}
.wg-modal .result-detail-item:first-child {padding-top: 0;}
.wg-modal .review-item-heading {display: flex; justify-content: space-between; align-items: center; gap: 12px;}
.wg-modal .review-item-heading .button {font-size: 13px; padding: 7px 12px; min-height: 40px;}
.wg-modal .review-note {white-space: pre-wrap; overflow-wrap: anywhere;}
.wg-modal .prompt-preview-full {overflow: visible; max-height: none; margin: 0 0 10px;}
.wg-modal .prompt-note-section {border-top: 1px solid var(--edge); padding-top: 16px; margin-top: 16px;}
.wg-modal .prompt-note-section .textarea {resize: none; height: 100px; overflow-y: auto;}
.wg-modal .prompt-note-section .hint {margin: 5px 0;}
.result-dialog-trigger, .prompt-modal-trigger {
  display: inline-flex; align-items: center; justify-content: flex-start;
  padding: 7px 0; min-height: 32px; border: 0; color: var(--primary-dark);
  font-size: 13px; font-weight: 670; text-align: left; background: transparent;
}
.result-dialog-trigger:hover, .prompt-modal-trigger:hover {text-decoration: underline;}
.result-dialog-trigger::before, .prompt-modal-trigger::before {content: ''; width: 4px; border-left: 2px solid var(--primary); margin-right: 7px; align-self: stretch;}
.result-understanding > .result-dialog-trigger {width: 100%;}
.result-actions > .result-dialog-trigger {margin-top: 4px;}
.result-actions .action-grid {display: grid; grid-template-columns: 1fr;}
.result-actions .action-grid .button {min-height: 42px;}
.prompt-compact .prompt-compact-more {align-items: center;}
.prompt-compact .copy-status {min-height: 2.5em; max-height: 4em; overflow-y: auto;}
.guided-stage-help {margin: 12px 0; padding: 11px 14px; border: 1px solid var(--edge); background: #f8faf9; border-radius: 10px;}
.guided-stage-help h2 {font-size: 14px; margin-bottom: 4px;}
.guided-stage-help p {font-size: 13px; line-height: 1.4; margin: 0;}
.guided-note {min-width: 0; padding: 10px 13px; border: 1px solid var(--edge); border-radius: 12px; background: #f8faf9;}
.guided-note-title {font-size: 14px; margin: 0 0 2px;}
.guided-note-summary-hint {display: block; margin: 0 0 8px; font-size: 12px; line-height: 1.35; color: var(--muted);}
.guided-note-body {padding: 0;}
.guided-note-body .field-label {font-size: 13px; margin: 0 0 4px;}
.guided-note-body .textarea {height: 78px; min-height: 78px; max-height: 78px; resize: none; overflow-y: auto; padding: 9px 11px; line-height: 1.4;}
.guided-note-body .hint {font-size: 11px; line-height: 1.35; margin: 4px 0 0;}
.guided-note-body .counter {margin: 0;}
@media (min-width: 980px) and (min-height: 660px) {
  .guided-stage {
    grid-template-rows: auto auto;
    grid-template-areas: 'question alternatives' 'note alternatives';
    align-content: center;
    column-gap: clamp(25px, 3vw, 55px); row-gap: 8px;
  }
  .guided-introduction {align-self: center; padding-bottom: 0;}
  .guided-answers {grid-row: span 2; align-self: start;}
  .guided-question {font-size: clamp(27px, 2.7vw, 38px); margin-bottom: 5px;}
  .guided-instruction {font-size: 15px;}
  .guided-note {grid-area: note; align-self: start; margin: 0; padding: 10px 13px;}
  .guided-note-body {padding: 0;}
  .guided-note-body .textarea {height: 68px; min-height: 68px; max-height: 68px;}
  .result-understanding > .result-dialog-trigger {grid-column: 2; min-height: 30px; padding: 3px 0;}
  .result-understanding > .result-section-title {grid-column: 1; grid-row: 1;}
  .result-understanding > .section-intro {grid-column: 1; grid-row: 2;}
  .result-understanding > .result-dialog-trigger:nth-of-type(1) {grid-row: 1;}
  .result-understanding > .result-dialog-trigger:nth-of-type(2) {grid-row: 2;}
  .prompt-compact .prompt-compact-more {grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (max-width: 979px), (max-height: 659px) {
  .guided-note {margin-top: 12px;}
  .guided-stage-help {margin: 12px 0;}
  .wg-modal[open] {max-height: calc(100dvh - 24px);}
}
@media (max-width: 560px) {
  .wg-modal[open] {width: calc(100vw - 16px); max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px);}
  .wg-modal-header, .wg-modal-footer {padding: 10px 12px;}
  .wg-modal-body {padding: 13px;}
  .wg-modal-title {font-size: 17px;}
  .wg-modal-dismiss {padding: 7px 9px;}
}
/* Troca Chat/Agente não altera a altura da linha do grid de preparação. */
@media (min-width: 980px) and (min-height: 660px) {
  .prompt-compact .prompt-destination-explanation {min-height: 72px;}
}

/* PLAN-WG-VALUE-01/P01: primeira ação visível e justificativas em modal,
   mantendo o grid e a rolagem de fundo inalterados. */
.result-first-step {font-size: 13px; line-height: 1.42; margin: 0 0 9px; color: var(--ink);}
.result-first-step strong {color: var(--primary-dark);}
.next-reasons {margin: 6px 0 12px; padding-left: 22px;}
.next-reasons li {margin-bottom: 9px; line-height: 1.55;}
@media (min-width: 980px) and (min-height: 660px) {
  .result-actions .result-first-step {font-size: 12px; line-height: 1.35; margin-bottom: 7px;}
  .result-understanding > .result-dialog-trigger {min-height: 25px; padding-block: 2px;}
}
@media (min-width: 980px) and (min-height: 660px) and (max-height: 780px) {
  .result-layout {row-gap: 6px;}
  .result-layout > .result-section {padding: 8px 12px;}
  .result-layout > .result-understanding {padding: 5px 12px;}
  .result-overview .result-reason {font-size: 13px; line-height: 1.32; margin-bottom: 4px;}
  .result-overview .small-text {font-size: 11px; line-height: 1.25;}
  .result-overview .result-band {margin-bottom: 4px;}
  .result-overview .movement-name {font-size: 34px; margin-bottom: 4px;}
  .result-actions .result-first-step {font-size: 12px; line-height: 1.3; margin-bottom: 5px;}
  .result-actions .action-grid {gap: 5px;}
  .result-actions .action-grid .button {min-height: 40px; padding-block: 6px;}
  .result-ai .result-reason {line-height: 1.3;}
  .result-ai .result-readiness-label {margin-bottom: 1px;}
  .result-scores .score-row {padding-block: 2px;}
  .result-section-title {font-size: 16px; margin-bottom: 4px;}
  .result-understanding > .result-dialog-trigger {min-height: 24px; padding: 2px 0;}
}

/* PLAN-WG-VALUE-01/P02: conferência opcional da IA sem nova faixa no desktop. */
.wg-modal .ai-review-checks {margin: 12px 0 16px; padding-left: 22px; line-height: 1.55;}
.wg-modal .ai-review-checks li {margin-bottom: 12px;}
@media (min-width: 980px) and (min-height: 660px) {
  .prompt-compact .prompt-compact-more {grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 16px;}
}

/* PLAN-WG-SIMPLE-01/P01 — somente movimento, motivo e cópia opcional. */
.flow-view:has(.decision-layout) .flow-content {
  width: min(100%, 670px);
  min-height: 100%;
  display: flex;
  align-items: center;
  padding-block: clamp(24px, 5vh, 52px);
}
.decision-layout {width: 100%; min-width: 0;}
.decision-summary {padding-bottom: clamp(24px, 4vh, 38px);}
.decision-summary .eyebrow {margin-bottom: 12px;}
.decision-movement {font-size: clamp(39px, 6vw, 56px); color: var(--primary); margin: 0 0 18px;}
.decision-reason {max-width: 580px; font-size: clamp(16px, 1.75vw, 18px); line-height: 1.55; margin: 0; overflow-wrap: anywhere;}
.decision-ai {border-top: 1px solid var(--edge); padding: 23px 0 16px;}
.decision-ai-title {font-size: 20px; margin: 0 0 5px;}
.decision-ai-description {font-size: 15px; color: var(--muted); line-height: 1.5; margin: 0 0 18px;}
.decision-ai > .button-primary {width: 100%; white-space: normal;}
.decision-ai > .button-secondary {width: 100%; white-space: normal; margin-top: 10px;}
.decision-ai .copy-status:empty {display: none;}
.decision-privacy {margin: 12px 0 0;}
.decision-secondary {display: flex; align-items: center; gap: 6px 18px; flex-wrap: wrap; margin-top: 8px;}
.decision-secondary .button {font-size: 13px; color: var(--primary-dark); padding: 7px 0; border: none; background: transparent; min-height: 40px; font-weight: 650;}
.decision-secondary .button:hover {text-decoration: underline; background: transparent;}
.decision-preview {max-height: 55dvh; overflow-y: auto; user-select: text;}
.decision-preview-content {min-width: 0;}
.decision-preview-content .small-text {margin: 12px 0 0;}
@media (max-width: 560px) {
  .flow-view:has(.decision-layout) .flow-content {align-items: flex-start; padding: 30px 21px;}
  .decision-summary {padding-bottom: 25px;}
  .decision-movement {margin-bottom: 13px;}
  .decision-ai {padding-top: 21px;}
  .decision-secondary {gap: 2px 15px;}
}

/* PLAN-WG-QUICK-01/P01 — resposta primeiro, relato complementar em seguida. */
.guided-stage-help {display: none;}
.guided-note {padding: 11px 13px; margin-top: 12px; background: #f7faf8; border: 1px solid var(--edge); border-radius: 12px;}
.guided-note-title {font-size: 14px; margin: 0 0 7px;}
.guided-note .field-label {font-size: 13px; margin-bottom: 5px;}
.guided-note .textarea {min-height: 58px; resize: vertical;}
.guided-note .hint {font-size: 11px; line-height: 1.35;}
.guided-note .counter {font-size: 11px;}
@media (min-width: 980px) {
  .guided-stage {align-items: center;}
  .guided-introduction {position: static; align-self: center;}
  .guided-answers {min-width: 0;}
  .guided-note {margin-top: 11px;}
  .guided-stage .choice {min-height: 54px; padding-block: 9px;}
  .guided-stage .choice-group {gap: 7px;}
}
@media (max-width: 979px) {
  .guided-stage {display: flex; flex-direction: column;}
  .guided-introduction, .guided-answers {width: 100%;}
}
/* A grade anterior reservava uma linha para nota na coluna esquerda.
   Agora o campo está dentro da coluna de alternativas: apenas uma linha. */
@media (min-width: 980px) and (min-height: 660px) {
  .guided-stage {
    grid-template-rows: minmax(0, 1fr);
    grid-template-areas: 'question alternatives';
  }
  .guided-introduction {grid-area: question; align-self: center;}
  .guided-answers {grid-area: alternatives; grid-row: auto; align-self: center;}
}

/* PLAN-WG-ENTRY-01/P01 — abertura objetiva e relato separado das alternativas. */
.flow-view:has(.entry-layout) { border: 0; background: transparent; }
.flow-view:has(.entry-layout) .flow-content { width: min(100%, 1360px); min-height: 100%; display: flex; align-items: center; padding: clamp(28px, 6vh, 70px) 0; }
.entry-layout { width: 100%; min-height: 0; max-width: 760px; display: block; margin: auto; }
.entry-hero { max-width: 760px; padding: 0; }
.entry-title { font-size: clamp(36px, 5vw, 58px); max-width: 760px; line-height: 1.13; margin-bottom: 20px; }
.entry-hero > .pane-description { max-width: 680px; font-size: clamp(17px, 2vw, 20px); line-height: 1.55; margin-bottom: 25px; }
.entry-hero > .button { min-height: 51px; }
.entry-privacy { max-width: 590px; margin-top: 18px; }
.context-stage .guided-note { background: transparent; border: 0; padding: 0; margin: 0; }
.context-stage .guided-note-title { display: none; }
.context-stage .guided-note-body .field-label { font-size: 15px; margin-bottom: 10px; }
.context-stage .guided-note-body .textarea { width: 100%; height: clamp(170px, 28dvh, 275px); min-height: 155px; max-height: none; resize: vertical; overflow-y: auto; line-height: 1.5; padding: 15px; }
.context-stage .guided-note-body .hint { font-size: 13px; line-height: 1.5; margin-top: 10px; }
.context-stage .guided-note-body .counter { font-size: 12px; }
@media (max-width: 979px) {
  .flow-view:has(.entry-layout) .flow-content { padding: 32px 19px; }
  .entry-title { font-size: clamp(33px, 8vw, 49px); }
  .context-stage { display: flex; flex-direction: column; align-items: stretch; }
  .context-stage .guided-introduction, .context-stage .guided-answers { width: 100%; }
}

/* PLAN-PZ-BRAND-01/P01 — Identidade Instante Zero, inspirada na linguagem da SemViés.
   Grafismos são decorativos e não substituem conteúdo, foco ou controles. */
:root {
  color: #223a33;
  background: #f8f7f2;
  --ink: #223a33;
  --muted: #526861;
  --edge: #dfe4da;
  --edge-strong: #cbd5cb;
  --primary: #174f40;
  --primary-dark: #103d33;
  --primary-soft: #edf3ed;
  --focus: #a36524;
  --gold: #d5a86a;
  --forest: #0c201a;
}
body {background: #f8f7f2;}
.site-header {border-bottom-color: #e6e3d8;}
.brand {gap: 9px; letter-spacing: -.02em;}
.brand-symbol {width: 37px; height: 37px; border-radius: 0; background: transparent; object-fit: contain;}
.brand-name {font-family: Georgia, 'Times New Roman', serif; font-weight: 600; font-size: 24px; letter-spacing: -.045em; color: #173d33; white-space: nowrap;}
.brand-name span {color: #ac7440;}
.institution-header {color: #66736b;}
.button-primary {background: var(--primary);}
.button-primary:hover:not(:disabled) {background: var(--primary-dark);}
.choice:hover {border-color: #9cb5a2; background: #fcfdf9;}
.choice.is-selected {background: var(--primary-soft);}
.guided-step {box-shadow: 0 12px 36px rgba(16, 41, 30, .035);}
.guided-step-top {background: #f8faf5;}
.guided-step-progress .is-done {background: #a4bba5;}
.guided-stage .guided-introduction::after {
  content: ''; display: block; width: 62px; height: 2px;
  background: linear-gradient(90deg, var(--gold), transparent);
  margin-top: 17px;
}
.decision-movement {font-family: Georgia, 'Times New Roman', serif; font-weight: 600; letter-spacing: -.035em;}

/* PLAN-PZ-BRAND-02/P01 — identidade leve e própria: a entrada permanece clara,
   com o caminho como assinatura sutil, não como painel de destaque. */
.flow-view:has(.entry-layout) {
  background: transparent;
  border: 0;
  border-radius: 0;
}
.flow-view:has(.entry-layout) .flow-content {
  width: 100%;
  min-height: 100%;
  padding: clamp(24px, 5vh, 54px) clamp(12px, 2.5vw, 32px);
}
.entry-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  align-items: center;
  gap: clamp(26px, 4vw, 60px);
  max-width: 1030px;
  margin: auto;
}
.entry-hero { max-width: 580px; min-width: 0; }
.entry-hero .eyebrow {
  color: #23614e;
  font-size: 11px;
  letter-spacing: .12em;
  margin-bottom: 14px;
}
.entry-title {
  font-family: Georgia, 'Times New Roman', serif;
  color: var(--ink);
  font-size: clamp(39px, 4.1vw, 60px);
  line-height: 1.1;
  letter-spacing: -.04em;
  font-weight: 500;
  max-width: 620px;
  margin-bottom: 19px;
}
.entry-hero > .pane-description {
  color: #425a51;
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.55;
  max-width: 520px;
  margin-bottom: 22px;
}
.entry-hero > .button-primary {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
  min-height: 48px;
  padding-inline: 24px;
}
.entry-hero > .button-primary:hover:not(:disabled) { background: var(--primary-dark); }
.entry-privacy { color: var(--muted); font-size: 12px; max-width: 480px; margin-top: 15px; }
.entry-art {
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
  background: radial-gradient(ellipse closest-side, #eef3ea 0%, rgba(238,243,234,.7) 48%, transparent 100%);
}
.entry-art-image { width: min(100%, 330px); height: auto; display: block; opacity: .63; }
@media (max-width: 979px) {
  .flow-view:has(.entry-layout) .flow-content { padding: 28px 20px; }
  .entry-layout { display: block; max-width: 600px; }
  .entry-hero { max-width: 600px; }
  .entry-art { display: none; }
  .entry-title { font-size: clamp(36px, 7vw, 50px); }
}
@media (max-width: 560px) {
  .site-header { gap: 8px; }
  .brand-symbol { width: 30px; height: 30px; }
  .brand-name { font-size: 21px; }
  .institution-wordmark { width: 87px; }
  .flow-view:has(.entry-layout) .flow-content { padding: 28px 18px; }
  .entry-title { font-size: clamp(35px, 8.3vw, 44px); }
  .entry-hero > .pane-description { font-size: 16px; }
}
@media (max-height: 530px) {
  .flow-view:has(.entry-layout) .flow-content { padding-block: 14px; }
  .entry-title { font-size: clamp(31px, 4.3vw, 46px); margin-bottom: 10px; }
  .entry-hero > .pane-description { font-size: 15px; margin-bottom: 12px; }
  .entry-hero .eyebrow { margin-bottom: 8px; }
  .entry-art-image { max-height: 240px; }
}
@media (min-width: 980px) and (min-height: 660px) {
  /* Marca d'água no respiro da coluna da pergunta; nunca substitui orientação. */
  .guided-stage:not(.context-stage) .guided-introduction {position: relative;}
  .guided-stage:not(.context-stage) .guided-introduction::before {
    content: ''; position: absolute; width: 142px; height: 142px;
    background: url('./assets/instante-zero-symbol.svg') center / contain no-repeat;
    opacity: .07; top: calc(100% + 36px); right: 15%;
    pointer-events: none;
  }
}

/* PLAN-PZ-IDENTITY-01/P01 — marca oficial: proporções da referência aprovada,
   paleta creme/verde/ouro; o ouro é acento gráfico, não texto funcional. */
:root {
  background: #fbf8f1;
  --primary: #1f4d3d;
  --primary-dark: #153d30;
  --gold: #c9a572;
}
body {background: #fbf8f1;}
.brand-name {color: #1f4d3d;}
.brand-name span {color: #926431;} /* texto com contraste, distinto do dourado decorativo */
.entry-art {background: none;}
.entry-art-image {opacity: .82;}

/* PLAN-PZ-AMBIENCE-01/P02 — Somente fundo externo.
   Os componentes e suas geometrias permanecem idênticos à baseline aprovada
   PLAN-PZ-IDENTITY-01/P01. */
body {
  background-image:
    radial-gradient(ellipse 56% 48% at 92% 12%, rgba(155, 185, 157, .12), transparent 82%),
    radial-gradient(ellipse 50% 48% at 4% 88%, rgba(201, 165, 114, .09), transparent 82%);
}


/* PLAN-PZ-PUBLIC-UI-01/P01 — visual compartilhado dos quatro mockups aprovados.
   Shell, margens e fundo contínuo; nenhuma nova superfície opaca envolve a jornada. */
:root { --public-canvas: #fbf8f1; --public-green: #1f4d3d; --public-gold: #c9a572; }
html, body { height: 100%; }
body {
  grid-template-rows: auto minmax(0, 1fr) auto;
  background-color: var(--public-canvas);
  background-image: url('./assets/instante-zero-ondas.svg'),
    radial-gradient(ellipse 49% 56% at 96% 34%, rgba(121,154,123,.13), transparent 86%),
    radial-gradient(ellipse 52% 43% at 4% 82%, rgba(201,165,114,.11), transparent 86%);
  background-position: center bottom, center, center;
  background-repeat: no-repeat;
  background-size: 100% auto, cover, cover;
}
.site-header {
  flex: 0 0 auto;
  width: min(1280px, calc(100% - 48px));
  min-height: 76px;
  height: 76px;
  border-bottom: 1px solid rgba(31,77,61,.12);
}
.app-shell, body:has(.decision-layout) .app-shell,
body:has(.result-layout) .app-shell {
  width: min(1280px, calc(100% - 48px));
  height: auto;
  min-height: 0;
  margin: 22px auto 8px;
  overflow: hidden;
}
.site-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px 24px;
  width: min(1280px, calc(100% - 48px));
  min-height: 47px;
  margin: 0 auto;
  padding: 10px 0;
  border-top: 1px solid rgba(31,77,61,.15);
  color: #61766d;
  font-size: 12px;
  line-height: 1.4;
}
.footer-note { text-align: right; }
.flow-view, .guided-step {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.flow-view, .guided-step-scroll {scrollbar-gutter: auto;}
.guided-step-top {
  background: transparent;
  border-bottom: 0;
  padding: 3px 0 18px;
}
.guided-step-bottom {
  background: transparent;
  border-top: 1px solid rgba(31,77,61,.13);
  padding: 13px 0 7px;
}
.guided-step-progress span {background: #dce5dc;}
.guided-step-progress .is-done {background: var(--primary);}
@media (max-width: 979px) {
  body { background-size: auto 52%, cover, cover; }
  .site-header, .site-footer, .app-shell,
  body:has(.decision-layout) .app-shell,
  body:has(.result-layout) .app-shell {width: min(100% - 32px, 720px);}
  .site-header {height: 62px; min-height: 62px;}
  .app-shell, body:has(.decision-layout) .app-shell,
  body:has(.result-layout) .app-shell {margin-top: 14px; margin-bottom: 7px;}
  .footer-note {display: none;}
}
@media (max-width: 560px) {
  .site-header, .site-footer, .app-shell,
  body:has(.decision-layout) .app-shell,
  body:has(.result-layout) .app-shell {width: calc(100% - 28px);}
  .site-footer {min-height: 40px; padding: 8px 0; font-size: 11px;}
  .guided-step-top {padding: 0 0 13px;}
  .guided-step-bottom {padding: 9px 0 5px;}
}
@media (max-height: 540px) {
  .site-header {height: 51px; min-height: 51px;}
  .site-footer {min-height: 28px; padding: 4px 0;}
  .app-shell {margin-top: 8px; margin-bottom: 3px;}
}


/* Evita que contratos históricos de workspace anulem a margem do progresso. */
body:has(.guided-step) .site-header,
body:has(.guided-step) .app-shell { width: min(1280px, calc(100% - 48px)); }
body:has(.guided-step) .app-shell {
  height: auto;
  min-height: 0;
  margin: 22px auto 8px;
}
@media (max-width: 979px) {
  body:has(.guided-step) .site-header,
  body:has(.guided-step) .app-shell {width: min(100% - 32px, 720px);}
  body:has(.guided-step) .app-shell {margin-top: 14px; margin-bottom: 7px;}
}
@media (max-width: 560px) {
  body:has(.guided-step) .site-header,
  body:has(.guided-step) .app-shell {width: calc(100% - 28px);}
}
@media (max-height: 540px) {
  body:has(.guided-step) .app-shell {margin-top: 8px; margin-bottom: 3px;}
}

/* PLAN-PZ-PUBLIC-UI-01/P02 — quatro páginas baseadas nas referências aprovadas.
   Oráculos visuais: home, perguntas, relato e resultado (1672×941).
   A interface real não contém links legais fictícios nem ações simuladas. */
:root { --public-copy: #23483c; }
/* A decoração ocorre atrás dos controles; nunca afeta hit targets ou foco. */
.flow-view, .guided-step {position: relative; isolation: isolate;}
.flow-content, .guided-step-inner, .guided-step-top, .guided-step-bottom {position: relative; z-index: 1;}
.entry-public-page {display: flex; flex-direction: column; justify-content: center; width: 100%; min-height: 100%; gap: clamp(24px, 6vh, 75px); padding-block: 24px;}
.flow-view:has(.entry-public-page) .flow-content {
  width: 100%; min-height: 100%; display: block;
  padding: 0 10px 18px;
}
.entry-public-page .entry-layout {
  max-width: none; width: 100%; display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
  gap: clamp(30px, 6vw, 110px); align-items: center;
}
.entry-public-page .entry-hero {max-width: 650px;}
.entry-public-page .entry-hero > .eyebrow {display: none;}
.entry-public-page .entry-title {
  color: #1f4d3d; font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(44px, 5.6vw, 80px); letter-spacing: -.042em;
  line-height: 1.065; font-weight: 500; margin: 0 0 25px;
}
.entry-public-page .entry-hero > .pane-description {font-size: clamp(17px, 1.75vw, 22px); line-height: 1.5; margin-bottom: 26px; max-width: 615px;}
.entry-public-page .entry-hero > .button-primary {min-width: 235px; min-height: 54px; font-size: 17px;}
.entry-public-page .entry-privacy {margin-top: 16px; color: #69786e; font-size: 12px;}
.entry-public-page .entry-art {display: flex; justify-content: center; min-width: 0;}
.entry-public-page .entry-art-image {width: min(100%, 480px); max-height: 435px; height: auto; object-fit: contain; opacity: .93;}
.entry-public-benefits {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding-top: 4px;}
.entry-public-benefit {min-width: 0; display: flex; align-items: start; gap: 16px; padding: 9px 25px; border-right: 1px solid rgba(31,77,61,.14);}
.entry-public-benefit:first-child {padding-left: 0;}
.entry-public-benefit:last-child {border-right: 0; padding-right: 0;}
.entry-public-benefit-number {flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%; background: rgba(201,165,114,.14); display: grid; place-items: center; font-family: Georgia,serif; font-size: 19px; color: #376352;}
.entry-public-benefit-copy h2 {font: 600 clamp(16px, 1.5vw, 22px)/1.27 Georgia,serif; color: #23483c; margin: 0 0 6px;}
.entry-public-benefit-copy p {font-size: 13px; line-height: 1.45; margin: 0;}
/* Todas as perguntas: progresso pertence ao main, coluna da pergunta centralizada. */
.guided-step-top {padding-top: 6px; padding-bottom: 24px;}
.guided-step-location strong {color: #23483c; font-size: 16px;}
.guided-step-location span {color: #657b70; font-size: 14px; padding-right: 2px;}
.guided-step-progress {height: 6px; gap: 5px;}
.guided-step-progress span {border-radius: 99px;}
.guided-step-inner {padding: 15px 0 21px;}
.guided-question {color: #1f4d3d; font-family: Georgia, 'Times New Roman', serif; letter-spacing: -.038em; font-weight: 500;}
.guided-instruction {color: #5a7066;}
.guided-stage .choice-group {gap: 11px;}
.guided-stage .choice {background: rgba(255,255,255,.87); border: 1px solid rgba(66,89,70,.17); border-radius: 12px; min-height: 65px; padding: 13px 18px; box-shadow: 0 3px 12px rgba(47,67,54,.02);}
.guided-stage .choice:hover {border-color: #729782; background: #fff;}
.guided-stage .choice.is-selected {background: #edf5ed; border-color: #2e6654; box-shadow: inset 0 0 0 1px #2e6654;}
.guided-stage .choice-letter {border-radius: 50%; background: #f5f0e5; color: #806541; width: 37px; height: 37px; font-family: Georgia,serif; font-size: 18px; font-weight: 500;}
.guided-stage .choice.is-selected .choice-letter {background: #1f4d3d; color: #fff;}
.guided-step-bottom .button {min-width: 164px;}
.context-reassurance {color: #61756c; font-size: 15px; margin: 22px 0 0;}
.context-stage .guided-note {background: rgba(255,255,255,.67); border: 1px solid rgba(70,93,76,.17); border-radius: 13px; padding: clamp(16px,2vw,28px);}
.context-stage .guided-note-body .field-label {font-size: 16px; color: #23483c;}
.context-stage .textarea {background: rgba(255,255,255,.96); border-color: #becdc1; min-height: 180px;}
.context-stage .hint {color: #60776a;}
/* Resultado: coluna editorial sem cartão exterior, grafismo de fundo não interativo. */
.flow-view:has(.decision-layout)::before {
  content: ''; position: absolute; width: min(39vw, 500px); aspect-ratio: 1;
  right: 2%; top: 50%; transform: translateY(-50%);
  background: url('./assets/instante-zero-symbol.svg') center/contain no-repeat;
  opacity: .16; pointer-events: none; z-index: 0;
}
.flow-view:has(.decision-layout) .flow-content {width: min(100%, 1060px); align-items: flex-start; padding-inline: 24px;}
.decision-layout {max-width: 720px; margin-inline: 0 auto;}
.decision-summary .eyebrow {font-size: 13px; color: #1f4d3d; letter-spacing: .13em; margin-bottom: 14px;}
.decision-movement {font-size: clamp(47px, 5.6vw, 77px); margin-bottom: 20px; color: #1f4d3d;}
.decision-reason {font-size: clamp(17px,1.7vw,22px); line-height: 1.52;}
.decision-ai {border-top-color: rgba(31,77,61,.18);}
.decision-ai-title {font: 600 clamp(22px, 2.1vw, 29px)/1.2 Georgia,serif; color: #23483c;}
.decision-ai .button-primary {min-height: 54px;}
.decision-ai .button-secondary {min-height: 51px; background: rgba(255,255,255,.55);}
@media (min-width: 980px) {
  .guided-stage {gap: clamp(24px, 5vw, 78px);}
  .guided-question {font-size: clamp(37px,4vw,60px); line-height: 1.12; max-width: 540px;}
  .guided-instruction {font-size: clamp(16px, 1.5vw, 19px); line-height: 1.5; max-width: 510px;}
  .context-stage .guided-question {font-size: clamp(40px,4.2vw,64px);}
  .context-stage .guided-answers {align-self: center;}
  .guided-step-bottom {padding-top: 15px; padding-bottom: 10px;}
}
@media (max-width: 979px) {
  .entry-public-page {justify-content: flex-start; padding-block: 25px; gap: 24px;}
  .entry-public-page .entry-layout {display: block;}
  .entry-public-page .entry-hero {max-width: 680px;}
  .entry-public-page .entry-title {font-size: clamp(34px, 7vw, 56px);}
  .entry-public-page .entry-art {display: none;}
  .entry-public-benefits {grid-template-columns: 1fr; gap: 8px;}
  .entry-public-benefit, .entry-public-benefit:first-child, .entry-public-benefit:last-child {padding: 10px 0; border-right: 0; border-top: 1px solid rgba(31,77,61,.11);}
  .entry-public-benefit-number {width: 37px; height: 37px; flex-basis: 37px; font-size: 15px;}
  .guided-question {font-size: clamp(27px,5vw,40px);}
  .guided-step-top {padding-bottom: 15px;}
  .guided-stage .choice {min-height: 54px;}
  .flow-view:has(.decision-layout)::before {width: 280px; top: auto; bottom: -130px; right: -125px; transform: none; opacity: .07;}
  .flow-view:has(.decision-layout) .flow-content {width: min(100%,720px); padding: 22px 12px 40px;}
}
@media (max-width: 560px) {
  .entry-public-page {padding-block: 17px;}
  .entry-public-page .entry-title {font-size: clamp(35px,9vw,44px); margin-bottom: 16px;}
  .entry-public-page .entry-hero > .pane-description {font-size: 16px; margin-bottom: 18px;}
  .entry-public-page .entry-hero > .button-primary {min-width: 0; width: 100%;}
  .entry-public-benefits {gap: 0;}
  .entry-public-benefit-copy h2 {font-size: 17px;}
  .guided-stage .choice {padding: 10px 12px; gap: 12px;}
  .guided-stage .choice-letter {width: 30px; height: 30px; font-size: 15px; flex-basis: 30px;}
  .guided-question {font-size: 29px;}
  .context-stage .guided-note {padding: 12px;}
  .context-stage .textarea {min-height: 140px;}
  .flow-view:has(.decision-layout) .flow-content {padding: 22px 8px 36px;}
  .decision-movement {font-size: 48px;}
}
@media (max-height: 560px) {
  .entry-public-page {gap: 15px; padding-block: 10px;}
  .entry-public-page .entry-title {font-size: clamp(31px, 3.4vw, 49px);}
  .guided-step-top {padding-bottom: 10px;}
  .guided-stage .choice {min-height: 47px; padding-block: 8px;}
}


/* Guard de conteúdo interno: o overflow oculto não pode mascarar escolhas cortadas. */
.guided-step {grid-template-columns: minmax(0,1fr);}
.guided-step-top, .guided-step-scroll, .guided-step-bottom,
.guided-step-inner, .guided-stage, .guided-answers,
.guided-stage .choice-group, .guided-stage .choice {min-width: 0; max-width: 100%;}
.guided-step-scroll {width: 100%;}
.guided-stage .choice-label {min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere;}
.guided-step-location strong {min-width: 0;}
.flow-view:has(.decision-layout)::before {width: min(31vw,400px); right: 1%;}
@media (max-width: 979px) {
  .flow-view:has(.decision-layout)::before {width: 260px; right: -125px;}
}


/* PLAN-PZ-PUBLIC-UI-02/P01 — somente scroll real e respiro do hero.
   A marca d'água não deve aumentar a área rolável das alternativas. */
@media (min-width: 980px) and (min-height: 660px) {
  .guided-stage:not(.context-stage) .guided-introduction::before {
    top: calc(100% - 64px);
  }
}
/* Quando o conteúdo realmente exceder a altura, a rolagem segue acessível. */
.guided-step-scroll {
  scrollbar-width: thin;
  scrollbar-color: rgba(31, 77, 61, .52) transparent;
}
.guided-step-scroll::-webkit-scrollbar { width: 8px; }
.guided-step-scroll::-webkit-scrollbar-track { background: transparent; }
.guided-step-scroll::-webkit-scrollbar-thumb {
  background: rgba(31, 77, 61, .42);
  border: 2px solid transparent;
  background-clip: padding-box;
  border-radius: 999px;
}
/* Movimento apenas visual do hero: não altera a posição dos benefícios/rodapé. */
@media (min-width: 980px) and (min-height: 850px) {
  .entry-public-page .entry-layout { transform: translateY(16px); }
}

/* PLAN-IZ-SCROLL-HOTFIX-01/P01 — Sem barras internas na interface pública.
   A rolagem permanece funcional por toque, roda, foco e teclado quando necessária;
   nunca esconder conteúdo com overflow: hidden na região de leitura. */
.flow-view, .guided-step-scroll {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.flow-view::-webkit-scrollbar, .guided-step-scroll::-webkit-scrollbar {
  display: none;
}

/* Em desktop de altura intermediária, a densidade se ajusta ao espaço real.
   O ganho vem de conteúdo/grafismo, não de mascarar overflow. */
@media (min-width: 980px) and (max-height: 800px) {
  .entry-public-page {gap: clamp(10px, 2.4vh, 21px); padding-block: clamp(6px, 1.6vh, 14px);}
  .entry-public-page .entry-art-image {max-height: clamp(190px, 45dvh, 325px);}
  .flow-view:has(.entry-public-page) .flow-content {padding-bottom: 0;}

  .guided-step-inner {padding-block: 9px 11px;}
  .guided-stage .choice-group {gap: 7px;}
  .guided-stage .choice {min-height: 53px; padding-block: 8px;}
  .guided-step-top {padding-bottom: 14px;}
  .guided-step-bottom {padding-block: 8px 6px;}
  .context-stage .guided-note {padding: 15px;}
  .context-stage .guided-note-body .textarea {
    min-height: 115px; height: clamp(115px, 24dvh, 185px);
  }

  .flow-view:has(.decision-layout) .flow-content {padding-block: 14px;}
  .decision-summary {padding-bottom: 15px;}
  .decision-ai {padding-block: 14px 8px;}
  .decision-movement {margin-bottom: 10px;}
  .decision-secondary {margin-top: 3px;}
}

/* Janelas baixas devem continuar navegáveis, sem impor uma scrollbar de
   desktop. A redução adicional é limitada a cenários de pouco espaço vertical. */
@media (min-width: 980px) and (max-height: 560px) {
  .entry-public-page .entry-title {font-size: clamp(31px, 3.4vw, 42px); margin-bottom: 9px;}
  .entry-public-page .entry-hero > .pane-description {font-size: 14px; line-height: 1.35; margin-bottom: 11px;}
  .entry-public-page .entry-hero > .button-primary {min-height: 40px; font-size: 14px;}
  .entry-public-page .entry-privacy {margin-top: 6px;}
  .entry-public-benefit {padding-block: 3px;}
  .entry-public-benefit-number {width: 34px; height: 34px; flex-basis: 34px;}
  .entry-public-benefit-copy h2 {font-size: 15px; margin-bottom: 2px;}
  .entry-public-benefit-copy p {font-size: 11px;}
  .entry-public-page .entry-art-image {max-height: 200px;}

  .guided-step-top {padding-block: 0 6px; gap: 4px;}
  .guided-step-inner {padding-block: 5px 6px;}
  .guided-step-bottom {height: 49px; min-height: 49px; padding-block: 3px;}
  .guided-step-bottom .button {min-height: 37px;}
  .guided-stage .choice {min-height: 40px; padding-block: 4px;}
  .guided-stage .choice-group {gap: 5px;}
  .guided-stage .choice-letter {width: 29px; height: 29px; font-size: 15px;}
  .guided-stage .choice-label {font-size: 13px; line-height: 1.28;}
  .guided-question, .context-stage .guided-question {font-size: 30px; line-height: 1.1;}
  .guided-instruction {font-size: 13px; line-height: 1.25; margin-bottom: 5px;}
  .guided-stage .guided-introduction::after {margin-top: 7px;}
  .context-stage .guided-note {padding: 9px;}
  .context-stage .guided-note-body .textarea {height: 105px; min-height: 105px; padding: 7px;}
  .context-stage .guided-note-body .hint {font-size: 11px; margin-top: 5px; line-height: 1.2;}
  .context-reassurance {margin-top: 7px; font-size: 12px;}

  .flow-view:has(.decision-layout) .flow-content {padding-block: 7px;}
  .decision-summary {padding-bottom: 8px;}
  .decision-summary .eyebrow {font-size: 10px; margin-bottom: 4px;}
  .decision-movement {font-size: 38px; margin-bottom: 4px;}
  .decision-reason {font-size: 14px; line-height: 1.3;}
  .decision-ai {padding-block: 8px 3px;}
  .decision-ai-title {font-size: 19px; margin-bottom: 2px;}
  .decision-ai-description {font-size: 12px; line-height: 1.3; margin-bottom: 7px;}
  .decision-ai .button-primary, .decision-ai .button-secondary {min-height: 38px; padding-block: 6px; font-size: 13px;}
  .decision-ai > .button-secondary {margin-top: 5px;}
  .decision-privacy {margin-top: 5px; font-size: 11px;}
  .decision-secondary {gap: 9px; margin-top: 0;}
  .decision-secondary .button {min-height: 28px; font-size: 12px; padding-block: 2px;}
}
@media (min-width: 980px) and (max-height: 560px) {
  /* O símbolo do resultado nunca expande a região de leitura numa janela baixa. */
  .flow-view:has(.decision-layout)::before {width: min(31vw, 220px);}
}
@media (max-width: 560px) {
  /* Corrige largura mínima herdada que deslocava Avançar em 320 px. */
  .guided-step-bottom .button {min-width: 0;}
}
