:root {
  --ink: #102b32;
  --ink-soft: #50666c;
  --paper: #f7faf6;
  --surface: #ffffff;
  --surface-muted: #eef3ef;
  --line: #d8e1dc;
  --teal: #0f5360;
  --teal-dark: #082f39;
  --lime: #c8ef3f;
  --lime-dark: #739800;
  --coral: #d96554;
  --blue: #3478b8;
  --gold: #a87412;
  --shadow: 0 10px 28px rgba(11, 43, 50, 0.09);
  --radius: 8px;
  --touch: 48px;
  font-family: "Noto Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
}

* { box-sizing: border-box; }

html { min-width: 320px; background: var(--paper); }

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--paper);
  font-size: 16px;
  line-height: 1.65;
  letter-spacing: 0;
}

button { font: inherit; letter-spacing: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, summary:focus-visible { outline: 3px solid rgba(52, 120, 184, 0.32); outline-offset: 2px; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3, strong { font-weight: 800; }

.home-layout {
  width: min(1120px, calc(100% - 48px));
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
  align-items: center;
  gap: clamp(48px, 8vw, 112px);
  padding: 48px 0;
}

.home-copy { max-width: 640px; }
.eyebrow { margin-bottom: 14px; color: var(--teal); font-size: 0.84rem; font-weight: 800; text-transform: uppercase; }
.home-copy h1 { margin-bottom: 20px; font-size: clamp(2.6rem, 6vw, 5.4rem); line-height: 1.08; letter-spacing: 0; }
.home-lead { max-width: 580px; margin-bottom: 30px; color: var(--ink-soft); font-size: 1.08rem; }
.plain-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0 0 30px; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.plain-facts li { display: grid; gap: 2px; min-width: 0; padding: 13px 16px 13px 0; border-bottom: 1px solid var(--line); }
.plain-facts li:nth-child(odd) { margin-right: 20px; }
.plain-facts strong { font-size: 0.92rem; }
.plain-facts span { color: var(--ink-soft); font-size: 0.84rem; }
.home-actions, .result-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.local-note { margin: 18px 0 0; color: var(--ink-soft); font-size: 0.78rem; }

.home-visual { position: relative; min-height: 520px; margin: 0; overflow: hidden; border-radius: var(--radius); background: var(--teal-dark); box-shadow: var(--shadow); }
.home-visual img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; object-position: 48% 52%; opacity: 0.88; filter: saturate(0.78) contrast(0.94); }
.home-visual p { position: absolute; inset: auto 22px 22px; margin: 0; padding: 16px 18px; color: #fff; background: rgba(8, 47, 57, 0.94); border-left: 4px solid var(--lime); font-size: 1rem; }
.home-visual p span { display: block; margin-bottom: 2px; color: var(--lime); font-size: 0.72rem; font-weight: 800; text-transform: uppercase; }

.primary-button, .secondary-button, .text-button, .danger-text-button, .header-link, .icon-button, .option-button {
  min-height: var(--touch);
  border: 0;
  border-radius: var(--radius);
  cursor: pointer;
}
.primary-button, .secondary-button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.primary-button { padding: 12px 20px; color: var(--teal-dark); background: var(--lime); font-weight: 800; box-shadow: 0 5px 14px rgba(115, 152, 0, 0.2); }
.primary-button:hover { background: #bdea26; }
.primary-button:disabled { color: #748085; background: #e3e8e4; box-shadow: none; cursor: not-allowed; }
.secondary-button { padding: 11px 19px; color: var(--teal); background: var(--surface); border: 1px solid var(--teal); font-weight: 800; }
.text-button, .danger-text-button, .header-link { padding: 9px 4px; color: var(--teal); background: transparent; font-weight: 700; }
.danger-text-button { color: #a44236; }
.icon-button { width: var(--touch); padding: 0; color: var(--ink); background: transparent; font-size: 1.35rem; }

.survey-shell { min-height: 100vh; min-height: 100dvh; padding-bottom: 92px; }
.app-header, .result-header {
  position: relative;
  z-index: 10;
  width: min(760px, 100%);
  min-height: 68px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: var(--touch) 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 20px;
  background: rgba(247, 250, 246, 0.96);
}
.header-title, .result-header > div { display: grid; justify-items: center; line-height: 1.28; }
.header-title strong, .result-header strong { font-size: 0.93rem; }
.header-title span, .result-header span { color: var(--ink-soft); font-size: 0.72rem; }
.header-link { min-height: var(--touch); font-size: 0.78rem; }
.progress-track { position: sticky; z-index: 11; top: 0; height: 4px; background: #e3e9e5; }
.progress-track span { display: block; height: 100%; background: var(--lime-dark); transition: width 180ms ease; }

.question-page { width: min(720px, calc(100% - 40px)); margin: 0 auto; padding: clamp(34px, 7vh, 74px) 0 32px; }
.branch-notice { display: grid; gap: 3px; margin-bottom: 26px; padding: 14px 16px; border-left: 4px solid var(--lime-dark); background: #eef4d8; }
.branch-notice span { color: var(--ink-soft); font-size: 0.78rem; }
.branch-notice strong { font-size: 0.9rem; }
.question-meta { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 12px; color: var(--teal); font-size: 0.78rem; font-weight: 800; }
.question-page h1 { max-width: 680px; margin-bottom: 12px; font-size: clamp(1.45rem, 4vw, 2rem); line-height: 1.4; letter-spacing: 0; }
.question-context { max-width: 620px; margin-bottom: 30px; color: var(--ink-soft); font-size: 0.94rem; }
.options { display: grid; gap: 12px; }
.option-button {
  width: 100%;
  min-height: 64px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: 0 3px 12px rgba(11, 43, 50, 0.04);
  text-align: left;
  line-height: 1.55;
}
.option-button:hover { border-color: #8ba7a1; }
.option-button.is-selected { border-color: var(--teal); background: #f0f7f3; box-shadow: 0 0 0 2px rgba(15, 83, 96, 0.11); }
.option-index { width: 30px; height: 30px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: var(--teal); background: var(--surface-muted); font-size: 0.78rem; font-weight: 800; }
.option-button.is-selected .option-index { color: var(--teal-dark); background: var(--lime); }

.question-footer {
  position: fixed;
  z-index: 20;
  inset: auto 0 0;
  min-height: 80px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 12px max(20px, calc((100vw - 720px) / 2));
  padding-bottom: max(12px, env(safe-area-inset-bottom));
  background: rgba(247, 250, 246, 0.97);
  border-top: 1px solid var(--line);
}
.save-status { color: var(--ink-soft); font-size: 0.74rem; }
.next-button { min-width: 150px; }

.result-shell { min-height: 100vh; }
.result-header { width: min(1120px, calc(100% - 40px)); }
.result-page { width: min(1120px, calc(100% - 40px)); margin: 0 auto; padding: 54px 0 72px; }
.result-hero { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 24px 64px; align-items: end; padding-bottom: 44px; border-bottom: 1px solid var(--line); }
.result-hero .eyebrow { grid-column: 1 / -1; margin: 0; }
.result-hero h1 { margin: 0; font-size: clamp(1.8rem, 4vw, 3.2rem); line-height: 1.32; letter-spacing: 0; }
.readiness-line { display: grid; gap: 6px; padding: 18px 0 18px 18px; border-left: 4px solid var(--lime-dark); }
.readiness-line span { color: var(--ink-soft); font-size: 0.78rem; }
.readiness-line strong { font-size: 1.02rem; }
.contradiction-note { grid-column: 1 / -1; padding: 14px 16px; color: #6f3a12; background: #fff5de; border: 1px solid #edcf93; border-radius: var(--radius); }
.contradiction-note p { margin: 0; font-size: 0.9rem; }
.contradiction-note p + p { margin-top: 6px; }

.result-section, .direction-section { padding: 48px 0; border-bottom: 1px solid var(--line); }
.section-heading { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 14px; margin-bottom: 24px; }
.section-heading > span { color: var(--lime-dark); font-size: 0.78rem; font-weight: 800; }
.section-heading h2 { margin-bottom: 4px; font-size: 1.35rem; }
.section-heading p { margin: 0; color: var(--ink-soft); font-size: 0.86rem; }
.section-heading.compact { margin-bottom: 18px; }
.dimension-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.dimension-item { min-width: 0; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.dimension-item:nth-child(odd) { padding-right: 26px; }
.dimension-item:nth-child(even) { padding-left: 26px; border-left: 1px solid var(--line); }
.dimension-item h3 { margin-bottom: 2px; font-size: 0.98rem; }
.dimension-item p { margin: 0; color: var(--ink-soft); font-size: 0.78rem; }
.status-tag { flex: 0 0 auto; max-width: 160px; padding: 6px 8px; border-radius: 4px; font-size: 0.7rem; font-weight: 800; line-height: 1.35; text-align: center; }
.status-advantage { color: #135d43; background: #dff4e7; }
.status-developing { color: #6f5311; background: #f6edcc; }
.status-bottleneck { color: #8d3328; background: #f9e3df; }
.status-insufficient { color: #4f5f72; background: #e8eef4; }

.split-section { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; }
.finding-item { padding: 18px 0; border-top: 1px solid var(--line); }
.finding-title { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.finding-title h3 { margin-bottom: 5px; font-size: 1.05rem; }
.finding-title span { color: var(--teal); font-size: 0.74rem; font-weight: 800; }
.finding-impact { margin-bottom: 10px; color: var(--ink-soft); font-size: 0.86rem; }
details { border-top: 1px dashed #c8d3cd; padding-top: 8px; }
summary { min-height: 36px; display: flex; align-items: center; color: var(--teal); cursor: pointer; font-size: 0.78rem; font-weight: 800; }
.evidence-list { display: grid; gap: 10px; margin: 8px 0 0; padding: 0; list-style: none; }
.evidence-list li { padding-left: 12px; border-left: 3px solid #b8cbc5; }
.evidence-list span { display: block; color: var(--ink-soft); font-size: 0.68rem; }
.evidence-list strong { display: block; margin: 2px 0; font-size: 0.82rem; }
.evidence-list p { margin: 0; color: var(--ink-soft); font-size: 0.76rem; }

.direction-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 16px; }
.direction-grid article { min-height: 150px; padding: 22px; border-radius: var(--radius); }
.direction-main { color: #fff; background: var(--teal-dark); }
.direction-aux { color: var(--ink); background: #eaf1ed; border: 1px solid var(--line); }
.direction-grid span { color: var(--lime); font-size: 0.72rem; font-weight: 800; }
.direction-aux span { color: var(--teal); }
.direction-grid h3 { margin: 16px 0 6px; font-size: 1.28rem; }
.direction-grid p { margin: 0; color: #cfe0dc; font-size: 0.84rem; }
.direction-aux p { color: var(--ink-soft); }
.avoid-block { margin-top: 26px; padding: 18px 0 0; border-top: 1px solid var(--line); }
.avoid-block h3 { margin-bottom: 8px; font-size: 0.96rem; }
.avoid-block ul { display: grid; gap: 5px; margin: 0; padding-left: 20px; color: var(--ink-soft); font-size: 0.86rem; }
.result-actions { padding-top: 36px; }
.result-footnote { margin: 22px 0 0; color: var(--ink-soft); font-size: 0.76rem; }

.home-layout-two-stage { grid-template-columns: minmax(0, 1.25fr) minmax(290px, 380px); gap: clamp(36px, 6vw, 82px); }
.home-layout-two-stage .home-copy h1 { font-size: clamp(2.6rem, 5vw, 4.9rem); }
.stage-overview { display: grid; margin-bottom: 20px; border-top: 1px solid var(--line); }
.stage-overview article { padding: 18px 0; border-bottom: 1px solid var(--line); }
.stage-overview article > div { display: flex; justify-content: space-between; gap: 16px; color: var(--teal); font-size: 0.74rem; font-weight: 800; }
.stage-overview h2 { margin: 7px 0 4px; font-size: 1.03rem; }
.stage-overview p { margin: 0 0 12px; color: var(--ink-soft); font-size: 0.83rem; }
.stage-overview .secondary-button { min-height: 42px; padding: 8px 15px; font-size: 0.82rem; }
.stage-overview article.is-locked { opacity: 0.58; }
.stage-state { color: var(--ink-soft); }
.stage-state.is-complete { color: #16704e; }

.stage-gate-message { margin-bottom: 34px; padding: 18px 20px; color: #6d400d; background: #fff4d8; border-left: 4px solid #b77812; }
.stage-gate-message strong { display: block; font-size: 1.05rem; }
.stage-gate-message p { margin: 5px 0 0; font-size: 0.86rem; }
.next-stage-band { display: flex; justify-content: space-between; align-items: center; gap: 28px; padding: 30px 0; border-bottom: 1px solid var(--line); }
.next-stage-band span { color: var(--teal); font-size: 0.74rem; font-weight: 800; }
.next-stage-band h2 { margin: 3px 0; font-size: 1.24rem; }
.next-stage-band p { margin: 0; color: var(--ink-soft); font-size: 0.84rem; }

.knowledge-intro { width: min(780px, calc(100% - 40px)); margin: 0 auto; padding: 54px 0 72px; }
.knowledge-plan-page { width: min(780px, calc(100% - 40px)); margin: 0 auto; padding: 52px 0 96px; }
.knowledge-plan-page > h1 { max-width: 680px; margin: 16px 0; font-size: clamp(2rem, 5vw, 3.1rem); line-height: 1.18; }
.plan-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 28px; }
.neutral-complete-page { padding-bottom: 84px; }
.neutral-final-hero { max-width: 760px; }
.neutral-final-hero > p:last-child { max-width: 680px; margin-top: 18px; color: var(--ink-soft); font-size: 1rem; line-height: 1.75; }
.completion-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin: 30px 0 42px; border-top: 1px solid var(--line); }
.completion-facts div { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 15px 0; border-bottom: 1px solid var(--line); }
.completion-facts span { color: var(--ink-soft); font-size: 0.82rem; }
.completion-facts strong { max-width: 260px; text-align: right; font-size: 0.92rem; overflow-wrap: anywhere; }
.single-share-section { padding: 30px 0; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--line); text-align: center; }
.share-record-button { width: min(100%, 520px); min-height: 58px; font-size: 1rem; }
.single-share-section > p { margin: 12px auto 0; color: var(--ink-soft); font-size: 0.88rem; }
.share-notice { width: min(100%, 620px); margin: 18px auto 0; padding: 14px 16px; background: #edf4ee; border-left: 4px solid var(--lime-dark); color: var(--ink); text-align: left; line-height: 1.6; }
.neutral-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 18px; margin-top: 26px; }
.raw-record-page { max-width: 860px; }
.raw-record-section { margin-top: 42px; }
.raw-record-section > h2 { padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-size: 1.25rem; }
.raw-record-subtitle { margin: 30px 0 12px; color: var(--teal); font-size: 1rem; }
.raw-record-item { padding: 20px 0; border-bottom: 1px solid var(--line); }
.raw-record-heading { display: flex; justify-content: space-between; gap: 12px; color: var(--teal); font-size: 0.75rem; font-weight: 800; }
.raw-record-heading em { color: var(--ink-soft); font-style: normal; font-weight: 500; }
.raw-record-item h3 { margin: 10px 0 12px; font-size: 1rem; line-height: 1.65; }
.raw-record-item ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.raw-record-item li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 7px; padding: 7px 9px; color: var(--ink-soft); line-height: 1.5; }
.raw-record-item li.is-selected { background: #edf4ee; color: var(--ink); font-weight: 700; }
.raw-record-item li span { color: var(--teal); font-weight: 800; }
.raw-record-item p { margin: 12px 0 0; color: var(--ink); font-size: 0.86rem; line-height: 1.6; }
.raw-record-item small { display: block; margin-top: 7px; color: var(--ink-soft); }
.knowledge-intro .intro-back { margin-left: -10px; }
.knowledge-intro > h1 { max-width: 680px; margin: 16px 0; font-size: clamp(2rem, 6vw, 3.5rem); line-height: 1.2; }
.intro-lead { max-width: 680px; color: var(--ink-soft); font-size: 1rem; }
.module-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 28px 0; border-top: 1px solid var(--line); }
.module-list div { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 12px 12px 12px 0; border-bottom: 1px solid var(--line); }
.module-list div:nth-child(odd) { margin-right: 18px; }
.module-list span { color: var(--lime-dark); font-size: 0.72rem; font-weight: 800; }
.module-list strong { font-size: 0.86rem; }
.certainty-guide, .review-gate { margin: 18px 0; padding: 16px 18px; border-left: 4px solid var(--teal); background: #eaf1ed; }
.review-gate { border-left-color: #b77812; background: #fff4d8; }
.certainty-guide strong, .review-gate strong { display: block; font-size: 0.9rem; }
.certainty-guide p, .review-gate p { margin: 4px 0 0; color: var(--ink-soft); font-size: 0.8rem; }
.intro-start { margin-top: 10px; }
.branch-notice small { color: var(--ink-soft); font-size: 0.73rem; }
.knowledge-question-page h1 { overflow-wrap: anywhere; }
.uncertain-toggle { min-height: 64px; display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 10px; align-items: center; margin-top: 18px; padding: 12px 16px; background: #eef3ef; border: 1px solid var(--line); border-radius: var(--radius); cursor: pointer; }
.uncertain-toggle.is-selected { background: #fff4d8; border-color: #d6a64e; }
.uncertain-toggle input { width: 20px; height: 20px; grid-row: 1 / 3; margin: 0; accent-color: var(--teal); }
.uncertain-toggle span { font-size: 0.9rem; font-weight: 800; }
.uncertain-toggle small { color: var(--ink-soft); font-size: 0.72rem; }

.final-hero { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 20px 64px; align-items: end; padding-bottom: 42px; border-bottom: 1px solid var(--line); }
.final-hero .eyebrow { grid-column: 1 / -1; margin: 0; }
.final-hero h1 { margin: 0; font-size: clamp(1.75rem, 4vw, 3rem); line-height: 1.34; }
.module-diagnosis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.module-diagnosis-item { min-width: 0; padding: 18px 0; border-bottom: 1px solid var(--line); }
.module-diagnosis-item:nth-child(odd) { padding-right: 28px; }
.module-diagnosis-item:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--line); }
.module-diagnosis-item > div { display: flex; justify-content: space-between; gap: 12px; }
.module-diagnosis-item span { color: var(--teal); font-size: 0.74rem; font-weight: 800; }
.module-diagnosis-item em { color: var(--ink-soft); font-size: 0.68rem; font-style: normal; }
.module-diagnosis-item strong { display: block; margin-top: 4px; font-size: 1rem; }
.module-diagnosis-item p { margin: 2px 0 0; color: var(--ink-soft); font-size: 0.78rem; }
.answer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 42px; border-top: 1px solid var(--line); }
.answer-grid article { padding: 18px 0; border-bottom: 1px solid var(--line); }
.answer-grid h3 { margin-bottom: 8px; font-size: 0.94rem; }
.answer-grid ul { margin: 0; padding-left: 20px; color: var(--ink-soft); font-size: 0.84rem; }
.empty-item { list-style: none; margin-left: -20px; }
.priority-section { padding: 48px 0; border-bottom: 1px solid var(--line); }
.priority-pairs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); margin-bottom: 22px; }
.priority-pairs article { padding: 20px 0; border-bottom: 1px solid var(--line); }
.priority-pairs article:first-child { padding-right: 28px; }
.priority-pairs article:last-child { padding-left: 28px; border-left: 1px solid var(--line); }
.priority-pairs span { color: var(--lime-dark); font-size: 0.72rem; font-weight: 800; }
.priority-pairs h3 { margin: 5px 0; font-size: 1.16rem; }
.priority-pairs p { margin: 0; color: var(--ink-soft); font-size: 0.8rem; }
.final-directions { margin-top: 16px; }
.result-actions { align-items: stretch; }
.result-actions .primary-button, .result-actions .secondary-button { min-width: 190px; }

.share-modal { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(4, 24, 29, 0.72); }
.share-modal-panel { width: min(460px, 100%); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; background: var(--surface); border-radius: var(--radius); box-shadow: 0 24px 70px rgba(0,0,0,0.28); }
.share-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px 10px 18px; border-bottom: 1px solid var(--line); }
.share-modal-header > div { display: grid; }
.share-modal-header span { color: var(--ink-soft); font-size: 0.7rem; }
.share-modal-panel > img { width: 100%; height: 100%; min-height: 0; object-fit: contain; background: #e7ede9; }
.share-modal-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; border-top: 1px solid var(--line); }
.toast { position: fixed; z-index: 120; left: 50%; bottom: max(24px, env(safe-area-inset-bottom)); width: max-content; max-width: calc(100% - 32px); transform: translateX(-50%); padding: 10px 14px; color: #fff; background: var(--teal-dark); border-radius: var(--radius); box-shadow: var(--shadow); font-size: 0.82rem; text-align: center; }

.print-report { display: none; }

@media (max-width: 760px) {
  .home-layout { width: min(100% - 40px, 560px); min-height: auto; display: block; padding: 48px 0 36px; }
  .home-copy h1 { font-size: clamp(2.35rem, 12vw, 4rem); }
  .home-lead { font-size: 1rem; }
  .plain-facts { grid-template-columns: minmax(0, 1fr); }
  .plain-facts li:nth-child(odd) { margin-right: 0; }
  .home-visual { min-height: 210px; margin-top: 38px; }
  .home-visual img { min-height: 210px; height: 210px; object-position: 50% 55%; }
  .home-visual p { inset: auto 12px 12px; padding: 10px 12px; font-size: 0.84rem; }
  .question-page { width: min(100% - 32px, 600px); padding-top: 34px; }
  .app-header { padding-inline: 10px 14px; }
  .question-page h1 { font-size: 1.38rem; }
  .question-context { margin-bottom: 24px; }
  .option-button { min-height: 68px; padding: 13px 14px; font-size: 0.94rem; }
  .question-footer { padding-inline: 16px; }
  .next-button { min-width: 136px; }
  .result-header, .result-page { width: min(100% - 32px, 640px); }
  .result-header { padding-inline: 0; }
  .result-page { padding-top: 30px; }
  .result-hero { grid-template-columns: minmax(0, 1fr); gap: 22px; padding-bottom: 34px; }
  .result-hero .eyebrow, .contradiction-note { grid-column: 1; }
  .result-hero h1 { font-size: 1.72rem; }
  .result-section, .direction-section { padding: 36px 0; }
  .dimension-grid, .split-section, .direction-grid { grid-template-columns: minmax(0, 1fr); }
  .split-section { gap: 34px; }
  .dimension-item:nth-child(odd), .dimension-item:nth-child(even) { padding: 16px 0; border-left: 0; }
  .dimension-item { align-items: flex-start; }
  .status-tag { max-width: 130px; }
  .direction-grid article { min-height: 0; }
  .result-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .result-actions button { width: 100%; }
  .home-layout-two-stage { display: block; }
  .module-list { grid-template-columns: minmax(0, 1fr); }
  .module-list div:nth-child(odd) { margin-right: 0; }
  .plan-actions { grid-template-columns: minmax(0, 1fr); }
  .completion-facts { grid-template-columns: minmax(0, 1fr); }
  .completion-facts div { grid-template-columns: minmax(0, 1fr) minmax(118px, auto); }
  .completion-facts strong { max-width: none; overflow-wrap: normal; word-break: keep-all; }
  .neutral-actions { flex-direction: column; align-items: stretch; }
  .neutral-actions button { width: 100%; }
  .raw-record-heading { align-items: flex-start; }
  .next-stage-band { display: grid; }
  .next-stage-band .primary-button { width: 100%; }
  .final-hero { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .final-hero .eyebrow { grid-column: 1; }
  .module-diagnosis-grid, .answer-grid, .priority-pairs { grid-template-columns: minmax(0, 1fr); }
  .module-diagnosis-item:nth-child(odd), .module-diagnosis-item:nth-child(even), .priority-pairs article:first-child, .priority-pairs article:last-child { padding: 16px 0; border-left: 0; }
  .result-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .result-actions .primary-button, .result-actions .secondary-button, .result-actions a { width: 100%; min-width: 0; }
}

@media (max-width: 380px) {
  body { font-size: 15px; }
  .home-layout { width: calc(100% - 28px); padding-top: 34px; }
  .home-copy h1 { font-size: 2.38rem; }
  .question-page { width: calc(100% - 24px); }
  .app-header { grid-template-columns: 42px 1fr auto; }
  .header-link { font-size: 0.72rem; }
  .option-button { grid-template-columns: 28px minmax(0, 1fr); gap: 9px; padding-inline: 11px; }
  .option-index { width: 28px; height: 28px; }
  .save-status { max-width: 80px; line-height: 1.25; }
  .next-button { min-width: 126px; }
  .result-header, .result-page { width: calc(100% - 24px); }
  .completion-facts div { grid-template-columns: minmax(0, 1fr); gap: 5px; align-items: start; }
  .completion-facts strong { text-align: left; }
  .result-actions { grid-template-columns: minmax(0, 1fr); }
  .finding-title { display: grid; gap: 0; }
  .result-actions { grid-template-columns: minmax(0, 1fr); }
  .share-modal { padding: 10px; }
  .share-modal-panel { max-height: calc(100dvh - 20px); }
}

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

@page { size: A4 portrait; margin: 11mm; }

@media print {
  :root { background: #fff; }
  body { min-width: 0; color: #102b32; background: #fff; font-size: 9.5pt; }
  .result-header, .result-page { display: none !important; }
  .print-report { display: block; width: 188mm; max-height: 275mm; overflow: hidden; margin: 0 auto; line-height: 1.38; }
  .print-report header { display: flex; justify-content: space-between; gap: 12mm; padding-bottom: 5mm; border-bottom: 1.5px solid #102b32; }
  .print-report header p { margin: 0 0 2mm; color: #0f5360; font-size: 8.5pt; font-weight: 800; }
  .print-report header h1 { max-width: 145mm; margin: 0; font-size: 15pt; line-height: 1.36; }
  .print-report header > span { flex: 0 0 auto; color: #50666c; font-size: 7.5pt; }
  .print-report section { padding: 4mm 0; border-bottom: 1px solid #d8e1dc; }
  .print-report h2 { margin: 0 0 2.2mm; color: #0f5360; font-size: 9pt; }
  .print-readiness { display: grid; grid-template-columns: 48mm 1fr; align-items: center; gap: 4mm; }
  .print-readiness span { color: #50666c; font-size: 8pt; }
  .print-readiness strong { font-size: 10pt; }
  .print-dimensions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2mm 8mm; }
  .print-dimensions p { display: flex; justify-content: space-between; gap: 4mm; margin: 0; padding: 1.5mm 0; border-bottom: 1px dotted #d8e1dc; }
  .print-dimensions span { color: #50666c; font-size: 8pt; }
  .print-two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10mm; }
  .print-two-columns p { margin: 0 0 2mm; }
  .print-two-columns p strong, .print-two-columns p span { display: block; }
  .print-two-columns p span { margin-top: 0.8mm; color: #50666c; font-size: 7.8pt; }
  .print-directions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8mm; }
  .print-directions div { padding: 3mm; border-left: 3px solid #739800; background: #f2f6e8; }
  .print-directions span, .print-directions strong { display: block; }
  .print-directions span { color: #50666c; font-size: 7.5pt; }
  .print-report footer { display: flex; justify-content: space-between; gap: 6mm; padding-top: 4mm; color: #50666c; font-size: 7.2pt; }
}
