/* Isolated seven-object direction candidate. No product facts or state live here. */
body.visual-v4 { --vs-page:#f7f6ef; --vs-action:#204b3c; background:#f7f6ef; }
.visual-v4 :is(.discovery-hero,.results-hero) { padding-block:20px 24px; }
.visual-v4 .discovery-hero h1 { color:#204b3c; font-weight:700; }
.visual-v4 :is(.discovery-picker,.discovery-selection-bar,.execution-card[data-ui-v4-canary],#detail-dialog[data-ui-v4-canary] .consumer-detail) { border-color:#d3ddd3; }
.visual-v4 .discovery-place { min-width:0; }
.visual-v4 .discovery-place :is(strong,small) { overflow-wrap:anywhere; white-space:normal; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] { padding:28px; margin-block:0 28px; min-width:0; box-sizing:border-box; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(h3,.migration-frontstage-identity h3,.choice-frontstage-identity h3,.simple-frontstage-identity h3,.timed-frontstage-identity h3) { color:#204b3c; font-size:30px; line-height:1.25; font-weight:700; overflow-wrap:anywhere; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(p,li,button,span,a) { line-height:1.6; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.migration-primary-answer,.simple-primary-answer,.choice-primary-answer,.timed-primary-answer,.migration-supporting-facts,.simple-supporting-facts,.timed-supporting-facts,.choice-supporting-facts) { font-size:16px; line-height:1.6; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.frontstage-core-price,.semantic-price,.resolver-option-price) { color:#204b3c; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.frontstage-core-price strong,.semantic-price strong) { font-size:36px; font-weight:700; line-height:1.2; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.frontstage-core-price small,.semantic-price small,.route-facts,.route-tradeoff,.choice-supporting-facts,.li-experience-option small) { font-size:16px; line-height:1.6; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.resolver-options,.route-landscape,.presentation-choice-options,.choice-frontstage-options,.complex-path-options) { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.resolver-option,.choice-frontstage-option,.complex-path-options button) { min-width:0; width:100%; min-height:44px; padding:12px 16px; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.resolver-option,.choice-frontstage-option) > * { display:block; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(button,a[href]) { min-height:44px; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(button,a[href]):focus-visible,
.visual-v4 :is(.ia-order-preview,.ia-v4-toc,.ia-dialog) button:focus-visible { outline:3px solid #204b3c; outline-offset:3px; }
.visual-v4 #detail-dialog[data-ui-v4-canary] .consumer-detail { padding:28px; font-size:16px; line-height:1.6; }
.visual-v4 #detail-dialog[data-ui-v4-canary] .consumer-detail :is(p,li) { line-height:1.6; overflow-wrap:anywhere; }
.visual-v4 #detail-dialog[data-ui-v4-canary] .consumer-detail :is(button,a[href]) { min-height:44px; }
.visual-v4 .ia-order-preview { color:#204b3c; }
.visual-v4 .ia-order-preview > span { overflow-wrap:anywhere; }
.visual-v4 .ia-v4-toc { display:none; }
.visual-v4 .ia-v4-toc button { width:100%; min-height:44px; display:block; padding:8px 10px; border:0; border-radius:8px; background:transparent; color:#204b3c; text-align:left; font:inherit; overflow-wrap:anywhere; }
.visual-v4 .ia-v4-toc button:hover { background:#e8eee8; }
.visual-v4 .ia-destination-section h3 { scroll-margin-top:86px; }
.visual-v4 .li-parent-summary { margin-block:12px; padding:12px 16px; border:1px solid #d3ddd3; border-radius:10px; }
.visual-v4 .li-parent-summary summary { min-height:44px; display:flex; align-items:center; gap:12px; cursor:pointer; color:#204b3c; font-weight:700; }
.visual-v4 .li-parent-summary summary span { margin-inline-start:auto; font-weight:500; }
.visual-v4 .li-parent-summary .resolver-options { margin-top:12px; }
.visual-v4 .ui-v4-action-instruction { font-size:16px; line-height:1.6; max-width:760px; }
.visual-v4 .ui-v4-action-heading { margin:20px 0 8px; color:#204b3c; font-size:18px; line-height:1.4; }
.visual-v4 .execution-card[data-ui-v4-canary] .execution-action-help { display:block; font-size:16px; line-height:1.6; max-width:760px; }
.visual-v4 .ui-v4-channel-comparison { display:grid; gap:12px; margin-block:20px; }
.visual-v4 .ui-v4-channel-comparison p { display:grid; gap:4px; margin:0; padding:12px 16px; border:1px solid #d3ddd3; border-radius:10px; }
.visual-v4 .ui-v4-channel-comparison p strong { color:#204b3c; }
@media (min-width:1100px) {
  .visual-v4 #overview-view:has(.ia-v4-toc) { display:grid; grid-template-columns:200px minmax(640px,760px); justify-content:center; gap:0 24px; }
  .visual-v4 #overview-view:has(.ia-v4-toc) > :not(.ia-v4-toc):not(#compact-cards) { grid-column:1 / -1; }
  .visual-v4 #overview-view:has(.ia-v4-toc) .ia-v4-toc { display:block; grid-column:1; align-self:stretch; }
  .visual-v4 #overview-view:has(.ia-v4-toc) .ia-v4-toc > div { position:sticky; top:20px; max-height:calc(100dvh - 40px); overflow:auto; }
  .visual-v4 #overview-view:has(.ia-v4-toc) #compact-cards { grid-column:2; min-width:0; }
}
@media (max-width:1099px) {
  .visual-v4 #overview-view, .visual-v4 #compact-cards { max-width:760px; margin-inline:auto; }
}
@media (max-width:767px) {
  .visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] { padding:20px; margin-block:0 28px; }
  .visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(h3,.migration-frontstage-identity h3,.choice-frontstage-identity h3,.simple-frontstage-identity h3,.timed-frontstage-identity h3) { font-size:26px; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.frontstage-core-price strong,.semantic-price strong) { font-size:32px; }
  .visual-v4 #detail-dialog[data-ui-v4-canary] .consumer-detail { padding:20px; }
  .visual-v4 .ia-order-preview > span { display:none; }
  .visual-v4 .ia-context .ia-jump-long { display:inline; }
  .visual-v4 .ia-context .ia-jump-short { display:none; }
}

/* Stage 1 visual reconciliation. Reference 14/15 owns this paper/ink/type
   direction; the old candidate rules above remain only as a rollback trail. */
@font-face {
  font-family: "China Trip Title SC";
  src: url("./assets/china-trip-title-sc-bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
body.visual-v4 {
  --vs-page: #faf8f1;
  --vs-card: #faf8f1;
  --vs-ink: #204233;
  --vs-action: #204233;
  --vs-secondary: #4f624f;
  --vs-border: #c7cfbd;
  --vs-selected: #edf0e5;
  --vs-warning: #eeecdd;
  background: #faf8f1;
  color: #204233;
}
.visual-v4 main { max-width: none; }
.visual-v4 :is(.results-view,.cards-section,#overview-view,#compact-cards,.ia-destination-section) {
  background: transparent !important;
  box-shadow: none !important;
}
.visual-v4 .results-view {
  max-width: none !important;
  padding-inline: 24px !important;
}
.visual-v4 #overview-view {
  box-sizing: border-box;
  width: var(--v4-group-width, min(1024px, 100%));
  max-width: 100%;
  margin-inline: auto;
  padding-inline: 0 !important;
}
.visual-v4 #overview-view.ia-toc-expanded {
  display: grid !important;
  grid-template-columns: 160px minmax(0, var(--v4-main-width)) !important;
  gap: 0 24px !important;
  justify-content: stretch !important;
}
.visual-v4 #overview-view.ia-toc-expanded > :not(.ia-v4-toc):not(#compact-cards) { grid-column: 1 / -1; }
.visual-v4 #overview-view.ia-toc-expanded .ia-v4-toc { display: block; grid-column: 1; min-width: 0; }
.visual-v4 #overview-view.ia-toc-expanded .ia-v4-toc > div {
  position: sticky;
  top: var(--v4-toc-top, 16px);
  max-height: calc(100dvh - var(--v4-toc-top, 16px) - 16px);
  overflow: auto;
}
.visual-v4 #overview-view:has(.ia-v4-toc):not(.ia-toc-expanded) {
  display: block !important;
}
.visual-v4 #overview-view .ia-v4-toc.is-collapsed {
  display: block;
  position: sticky;
  top: var(--v4-toc-top, 16px);
  z-index: 3;
  width: 100%;
  min-height: 44px;
  margin-bottom: 12px;
  border-bottom: 1px solid #c7cfbd;
  background: #faf8f1;
}
.visual-v4 #overview-view .ia-v4-toc.is-collapsed > div { position: static; max-height: none; overflow: visible; }
.visual-v4 #overview-view .ia-v4-toc.is-collapsed [data-ia-toc-toggle] { width: 160px; min-height: 44px; }
.visual-v4 #overview-view #compact-cards { width: 100%; min-width: 0; max-width: none; }
.visual-v4 .ia-v4-toc button { border-radius: 0; background: transparent; }
.visual-v4 .ia-v4-toc button:hover { background: #edf0e5; }
.visual-v4 .ia-v4-toc [data-ia-toc-toggle] { border-bottom: 1px solid #c7cfbd; font-weight: 700; }
.visual-v4 .ia-destination-section { margin-block: 0 28px; }
.visual-v4 .consumer-city-header { padding-block: 0; margin: 0 0 12px; }
.visual-v4 .ia-destination-section .execution-card,
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] {
  box-sizing: border-box;
  min-height: 0 !important;
  width: 100%;
  max-width: none;
  margin: 0 0 28px;
  padding: 28px;
  border: 0 !important;
  border-bottom: 1px solid #c7cfbd !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #204233;
  gap: 12px 20px;
}
.visual-v4 .ia-destination-section .execution-card :is(.migration-frontstage-identity,.choice-frontstage-identity,.simple-frontstage-identity,.timed-frontstage-identity,.complex-frontstage-identity) h3,
.visual-v4 #detail-dialog .consumer-detail .detail-hero h2 {
  font-family: "China Trip Title SC", serif !important;
  font-style: normal;
  font-weight: 700 !important;
  font-synthesis: none;
  font-size: 26px !important;
  line-height: 1.35 !important;
  letter-spacing: normal !important;
  color: #204233 !important;
}
.visual-v4 .ia-destination-section .execution-card :is(p,li,button,a,span,small),
.visual-v4 #detail-dialog .consumer-detail :is(p,li,button,a,span) {
  letter-spacing: normal;
}
.visual-v4 .ia-destination-section .execution-card :is(.frontstage-core-price > span,.frontstage-core-price > small,.route-facts,.route-tradeoff,.resolver-option span,.resolver-option small,.complex-supporting-facts li,.choice-supporting-facts li,.emei-component-facts span),
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.frontstage-core-price small,.semantic-price small,.route-facts,.route-tradeoff,.choice-supporting-facts),
.visual-v4 #detail-dialog .consumer-detail :is(.consumer-detail-facts li,.secondary-content li) {
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: #4f624f;
}
.visual-v4 .ia-destination-section .execution-card :is(.frontstage-core-price strong,.semantic-price strong) {
  font-size: 32px !important;
  line-height: 1.25 !important;
  color: #204233 !important;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.visual-v4 .ia-destination-section .execution-card .resolver-option-price { font-size: 24px !important; line-height: 1.25; }
.visual-v4 .ia-destination-section .execution-card :is(.resolver-option,.choice-frontstage-option,.complex-path-options button,.li-parent-summary,.ui-v4-channel-comparison p),
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.resolver-option,.choice-frontstage-option,.li-parent-summary,.ui-v4-channel-comparison p) {
  border: 1px solid #c7cfbd;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.visual-v4 .ia-destination-section .execution-card :is(.resolver-option[aria-pressed="true"],.choice-frontstage-option[aria-pressed="true"],[data-complex-path-option][aria-pressed="true"]) {
  border-color: #204233;
  background: #edf0e5;
}
.visual-v4 .ia-destination-section .execution-card :is(.migration-current-exception,.current-exception,.consumer-warning,.pilot-warning,.ui-v4-current-warning) {
  border-radius: 0;
  background: #eeecdd;
}
.visual-v4 .ia-destination-section .execution-card :is(.phase4-primary-link,.action-link,.visual-primary-copy,.primary-button) {
  border-radius: 0;
}
.visual-v4 .ia-destination-section .execution-card :is(.collapsed-resolution,.ui-v4-channel-comparison) { margin-block: 20px; }
.visual-v4 .ia-destination-section .execution-card .collapsed-resolution :is(.current-parent-cost,.current-parent-detail,.current-parent-limit) {
  display: block;
  margin: 8px 0 0;
  font-size: 16px;
  line-height: 1.6;
  color: #204233;
}
.visual-v4 .ia-destination-section .execution-card .collapsed-resolution .current-parent-limit { color: #4f624f; }
.visual-v4 .ia-destination-section .execution-card :is(.frontstage-core-price,.complex-supporting-facts,.migration-supporting-facts) { margin-block: 12px; }
.visual-v4 #detail-dialog {
  box-sizing: border-box;
  width: min(760px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  max-height: calc(100dvh - 32px);
  padding: 0;
  border-radius: 0;
  background: #faf8f1;
}
.visual-v4 #detail-dialog #detail-content {
  box-sizing: border-box;
  padding: 28px;
  max-width: none;
}
.visual-v4 #detail-dialog .consumer-detail,
.visual-v4 #detail-dialog[data-ui-v4-canary] .consumer-detail { padding: 0; }
.visual-v4 #detail-dialog .dialog-close {
  position: sticky;
  top: 0;
  width: 44px;
  height: 44px;
  margin: 0 0 -44px auto;
  z-index: 3;
}
.visual-v4 #detail-dialog .consumer-detail .detail-hero { padding-right: 52px; }
.visual-v4 #detail-dialog .consumer-detail .detail-hero > h2 { order: -1; }
.visual-v4 #detail-dialog .consumer-detail :is(.detail-intro,.secondary-content) { max-width: 760px; }
.visual-v4 .ia-destination-section .execution-card :is(.migration-primary-answer,.simple-primary-answer,.choice-primary-answer,.timed-primary-answer,.migration-supporting-facts,.simple-supporting-facts,.timed-supporting-facts,.choice-supporting-facts) { max-inline-size: 760px; }
.visual-v4 .ia-order-preview button,
.visual-v4 .ia-context button { border-radius: 0; }
@media (max-width: 1099px) {
  .visual-v4 #overview-view,
  .visual-v4 #compact-cards { max-width: none; }
}
@media (max-width: 767px) {
  .visual-v4 .results-view { padding-inline: 16px !important; }
  .visual-v4 .ia-destination-section .execution-card,
  .visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] { padding: 20px; }
  .visual-v4 #detail-dialog #detail-content { padding: 24px 20px 20px; }
}

/* Integrated seven: one shared content measure, with no second business state.
   A card's own content-box is the I measurement used by the layout contract. */
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] {
  container-type: inline-size;
  font-size: max(16px, 1rem);
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(p,li,span,small,button,a,strong) {
  font-size: max(16px, 1rem) !important;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.complex-frontstage-identity,.simple-frontstage-identity,.choice-frontstage-identity,.migration-frontstage-identity) h3 {
  font-size: max(26px, 1.625rem) !important;
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.frontstage-core-price,.semantic-price) strong {
  font-size: max(32px, 2rem) !important;
  line-height: 1.25 !important;
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.resolver-option-price,.route-cost-amount) {
  font-size: max(25px, 1.5625rem) !important;
  line-height: 1.3;
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.complex-supporting-facts,.migration-supporting-facts,.simple-supporting-facts) {
  max-inline-size: 760px;
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.resolver-subchoice > div:first-child,.resolver-subchoice > div:first-child > span,.resolver-subchoice > div:first-child > strong) {
  font-size: max(16px, 1rem) !important;
  line-height: 1.6 !important;
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] .resolver-subchoice > div:first-child {
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
}

/* Summary and its own edit action are one nearby semantic group. */
.visual-v4 .ia-destination-section .execution-card :is(.collapsed-resolution,.choice-resolved-summary,.complex-path-summary,.complex-resolved-summary,.compact-resolved-choice-action) {
  justify-content: flex-start !important;
  align-items: flex-start;
  column-gap: 12px !important;
  row-gap: 4px !important;
}
.visual-v4 .ia-destination-section .execution-card :is(.collapsed-resolution,.choice-resolved-summary,.complex-path-summary) > div {
  flex: 0 1 auto;
}
.visual-v4 .ia-destination-section .execution-card :is(.collapsed-resolution,.choice-resolved-summary,.complex-path-summary,.complex-resolved-summary,.compact-resolved-choice-action) .text-button {
  min-width: 44px;
  min-height: 44px;
  margin-inline-start: 0 !important;
}
.visual-v4 #compact-cards [data-resolver-card] { scroll-margin-top: calc(var(--v4-toc-top, 16px) + 52px); }

/* I >= 720*s + 40. CSS em is relative to the card's regular body role. */
.visual-v4 .ui7-dual-grid,
.visual-v4 .ui7-li-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; min-width: 0; }
.visual-v4 .ui7-dual-grid > *,
.visual-v4 .ui7-li-grid > * { min-width: 0; }
.visual-v4 .ui7-li-choice { display: flex; flex-wrap: wrap; align-content: start; align-items: flex-start; gap: 4px 12px; }
.visual-v4 .ui7-li-choice > header { flex-basis: 100%; }
.visual-v4 .ui7-li-choice > .complex-primary-answer { flex: 0 1 auto; margin: 0; }
.visual-v4 .ui7-li-choice > .compact-resolved-choice-action { flex: 0 1 auto; min-width: 0; max-width: 100%; margin: 0; padding: 0; border: 0; }
.visual-v4 .ui7-li-choice .text-button { max-width: 100%; min-width: 0; white-space: normal; overflow-wrap: anywhere; text-align: left; }
.visual-v4 .ui7-li-booking :is(.complex-supporting-facts,.consumer-action-row),
.visual-v4 .ui7-li-arrival :is(.customer-support-utilities,.complex-execution-handoff) { margin-block: 0 20px; }
.visual-v4 .ui7-li-arrival .customer-support-utilities { max-width: none; }
.visual-v4 .ui7-li-arrival .customer-support-utilities.is-compact-pair { display: block; }
.visual-v4 .ui7-li-arrival .customer-support-utilities.is-compact-pair > :is(.map-support-grid.is-single,.support-channel-block) { grid-column: auto; width: 100%; min-width: 0; }
.visual-v4 .ui7-li-arrival .customer-support-utilities.is-compact-pair > .support-channel-block {
  padding-left: 0 !important;
  border-left: 0 !important;
  border-top: 1px solid #c7cfbd !important;
}
@container (min-width: calc(45em + 40px)) {
  .visual-v4 .ui7-dual-grid,
  .visual-v4 .ui7-li-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .visual-v4 .ui7-li-grid { row-gap: 20px; }
  .visual-v4 .ui-v4-channel-comparison { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
}
.visual-v4 .ui-v4-channel-comparison { grid-template-columns: minmax(0, 1fr); }
.visual-v4 .ui-v4-channel-comparison > p { min-width: 0; }
@container (min-width: 47.5em) {
  .visual-v4 .ui-v4-channel-comparison { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
}

/* Two scoped Emei fees use the same card content measure, not prose width. */
.visual-v4 .emei-component-facts { display: grid; grid-template-columns: minmax(0, 1fr) !important; gap: 24px; }
@container (min-width: 36.5em) {
  .visual-v4 .emei-component-facts { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Short, same-level decisions. Last incomplete row remains left aligned. */
.visual-v4 .choice-frontstage-decision,
.visual-v4 [data-presentation-resolver] { container-type: inline-size; }
.visual-v4 .choice-frontstage-options { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
.visual-v4 [data-presentation-resolver] .presentation-choice-options { grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
@container (min-width: 31em) {
  .visual-v4 .choice-frontstage-options:has(> :nth-child(2):last-child),
  .visual-v4 .choice-frontstage-options:has(> :nth-child(3):last-child),
  .visual-v4 [data-presentation-resolver] .presentation-choice-options:has(> :nth-child(2):last-child),
  .visual-v4 [data-presentation-resolver] .presentation-choice-options:has(> :nth-child(3):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@container (min-width: 47em) {
  .visual-v4 .choice-frontstage-options:has(> :nth-child(3):last-child),
  .visual-v4 [data-presentation-resolver] .presentation-choice-options:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* Long dependent route options: Jw = options width - 42px at wide padding.
   The parent width test avoids padding-driven threshold oscillation. */
.visual-v4 [data-dependent-region] .presentation-choice-options {
  container-type: inline-size;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 16px !important;
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] [data-dependent-region] .ui7-long-route-option {
  box-sizing: border-box;
  width: 100%;
  padding: 20px !important;
  border: 1px solid #c7cfbd;
  border-radius: 10px !important;
  min-height: 44px;
  text-align: left;
  white-space: normal;
  cursor: pointer;
}
.visual-v4 [data-dependent-region] .ui7-route-fields {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  min-width: 0;
}
.visual-v4 [data-dependent-region] :is(.ui7-route-name,.ui7-route-cost) { display: flex; flex-wrap: wrap; align-content: start; gap: 4px 8px; min-width: 0; }
.visual-v4 [data-dependent-region] .ui7-route-name { justify-content: space-between; }
.visual-v4 [data-dependent-region] .ui7-route-difference { min-width: 0; }
.visual-v4 [data-dependent-region] .ui7-route-cost { flex-direction: column; }
@container (min-width: calc(40em + 90px)) {
  .visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] [data-dependent-region] .ui7-long-route-option { padding: 20px !important; }
  .visual-v4 [data-dependent-region] .ui7-route-fields {
    grid-template-columns: minmax(0, 26fr) minmax(0, 42fr) minmax(0, 32fr);
    column-gap: 24px;
    align-items: start;
  }
}

/* Shared selected-value baseline; hit padding belongs to the control, not an
   artificial summary height. Wrapped edits remain beside their own value. */
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] .selected-value-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
  max-width: 100%;
}
.visual-v4 .execution-card[data-ui-v4-canary] .selected-value-line > :is(strong,p) { margin: 0; min-width: 0; }
.visual-v4 .execution-card[data-ui-v4-canary] .selected-value-line .text-button { display: inline-flex; align-items: baseline; align-self: baseline !important; justify-content: flex-start; padding: 8px 0; min-width: 44px; min-height: 44px; text-align: left; }
.visual-v4 .ui7-li-choice > .selected-value-line { flex-basis: 100%; }
.visual-v4 .ui7-li-choice > .resolved-product-description { margin: 0; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.choice-resolved-summary,.complex-path-summary,.complex-resolved-summary,.compact-resolved-choice-action) { align-items: baseline; }
.visual-v4 .ia-destination-section .execution-card .current-parent-context span { text-transform: none; letter-spacing: normal; }
.visual-v4 .ia-destination-section .execution-card .current-parent-cost { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin-top: 8px; }
.visual-v4 .route-money { display: inline-flex; align-items: baseline; gap: 2px; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.route-cost-components,.current-parent-detail) { font-size: max(18px,1.125rem) !important; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] .route-cost-comparison .frontstage-core-price strong { font-size: max(16px,1rem) !important; font-weight: 400; line-height: 1.6 !important; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] .execution-action-main { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: baseline; gap: 12px; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] .execution-action-main > :is(strong,span) { flex: 0 1 auto; width: auto; }
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.migration-supporting-facts,.simple-supporting-facts,.execution-action-help) { text-wrap: pretty; }

/* Same-text price hierarchy: amount and its original qualifier share one owner. */
.visual-v4 .execution-card[data-ui-v4-canary] .frontstage-core-price strong .ui-price-context { font-size:max(16px,1rem) !important; font-weight:500; line-height:1.6; }
.visual-v4 .execution-card[data-ui-v4-canary] .frontstage-core-price strong .ui-price-amount { font-size:inherit !important; font-weight:inherit; line-height:inherit; }

/* Detail uses the same exact price text; nested amounts retain its strong role. */
.visual-v4 #detail-dialog[data-ui-v4-canary] .frontstage-core-price > :is(span,small),
.visual-v4 #detail-dialog[data-ui-v4-canary] .frontstage-core-price strong .ui-price-context { font-size:max(16px,1rem) !important; line-height:1.6; }
.visual-v4 #detail-dialog[data-ui-v4-canary] .frontstage-core-price strong .ui-price-context { font-weight:500; }
.visual-v4 #detail-dialog[data-ui-v4-canary] .frontstage-core-price strong .ui-price-amount { font-size:inherit !important; font-weight:inherit; line-height:inherit; }

/* Existing A/B comparison owner: retain readable labels and values in three columns. */
.visual-v4 .execution-card[data-ui-v4-canary] .resolver-grand .route-matrix > div {
  grid-template-columns: minmax(0,1.2fr) repeat(2,minmax(0,1fr));
}
.visual-v4 .execution-card[data-ui-v4-canary] .resolver-grand .route-matrix :is(span,b,em) {
  font-size: max(16px,1rem) !important;
  line-height: 1.6 !important;
  min-width: 0;
  overflow-wrap: normal;
  word-break: normal;
}
.visual-v4 :is(.execution-card[data-ui-v4-canary],#detail-dialog[data-ui-v4-canary]) .optional-experience-bundles b {
  font-size: max(16px,1rem) !important;
  line-height: 1.6;
}

/* Existing secondary-channel row: keep its name readable at the body floor. */
/* The same detail owner keeps channel and eligibility readable without changing scope. */
.visual-v4 #detail-dialog[data-ui-v4-canary] [data-secondary-transport] :is(.execution-essentials-kicker,.execution-essential-fact span,.execution-essential-fact strong,.execution-essential-condition strong) { font-size:max(16px,1rem) !important; line-height:1.6; letter-spacing:normal; }
.visual-v4 #detail-dialog[data-ui-v4-canary] [data-secondary-transport] :is(.execution-essential-fact,.execution-essential-condition) { grid-template-columns:minmax(0,1fr); gap:4px; }
@media (max-width:767px) {
  .visual-v4 #detail-dialog[data-ui-v4-canary] [data-secondary-transport] .execution-essentials-grid { grid-template-columns:minmax(0,1fr); }
}
.visual-v4 #detail-dialog[data-ui-v4-canary] .secondary-execution-path {
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: baseline;
}
.visual-v4 #detail-dialog[data-ui-v4-canary] .secondary-execution-path > :is(span,strong,small) {
  font-size: max(16px,1rem) !important;
  line-height: 1.6;
  min-width: 0;
  overflow-wrap: anywhere;
}
.visual-v4 #detail-dialog[data-ui-v4-canary] .secondary-execution-path > small { grid-column: 1 / -1; grid-row: 2; }
.visual-v4 #detail-dialog[data-ui-v4-canary] .secondary-execution-path > button { grid-column: 3; grid-row: 1; }
@media (max-width: 767px) {
  .visual-v4 #detail-dialog[data-ui-v4-canary] .secondary-execution-path { grid-template-columns: minmax(0,1fr); align-items: start; gap: 4px; }
  .visual-v4 #detail-dialog[data-ui-v4-canary] .secondary-execution-path > :is(span,strong,small,button,a) { grid-column: auto; grid-row: auto; min-width: 0; max-width: 100%; justify-self: start; }
  .visual-v4 .execution-card[data-ui-v4-canary] .secondary-execution-path {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 4px;
  }
  .visual-v4 .execution-card[data-ui-v4-canary] .secondary-execution-path > * {
    grid-column: auto;
    grid-row: auto;
    min-width: 0;
    max-width: 100%;
    justify-self: start;
  }
}

/* 3C component price: keep qualification readable beside its amount. */
.visual-v4 :is(.execution-card[data-ui-v4-canary],#detail-dialog[data-ui-v4-canary]) .leshan-independent-tasks strong .ui-price-context { display:inline; font-size:max(16px,1rem) !important; font-weight:500; line-height:1.6; letter-spacing:normal; }
.visual-v4 :is(.execution-card[data-ui-v4-canary],#detail-dialog[data-ui-v4-canary]) .leshan-independent-tasks strong .ui-price-amount { display:inline; font-size:32px !important; font-weight:700; line-height:1.2; letter-spacing:normal; }
.visual-v4 #detail-dialog[data-ui-v4-canary] .leshan-independent-tasks article > span { font-size:max(16px,1rem); line-height:1.6; letter-spacing:normal; }

/* Existing optional arrival comparison: plain rows within the detail surface. */
.visual-v4 #detail-dialog[data-ui-v4-canary] [data-longmen-arrival-options] .ticket-route { background:transparent; border-radius:0; box-shadow:none; padding:12px 0; }
.visual-v4 #detail-dialog[data-ui-v4-canary] [data-longmen-arrival-options] .route-label { font-size:max(16px,1rem); line-height:1.6; letter-spacing:normal; }

/* Projected current date inherits the same readable body floor in Detail. */
.visual-v4 #detail-dialog[data-ui-v4-canary] .ui-current-date-projection :is(strong,small,p) { font-size:max(16px,1rem) !important; line-height:1.6; }

/* Actual price-unknown explanatory role, no monetary amount. Potala winter owner only. */
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] .frontstage-core-price[data-ui-price-explanation] strong { font-size:max(16px,1rem) !important; line-height:1.6 !important; font-weight:500; }

/* Final mobile body width: close clearance belongs to the title, not following prose. */
@media (max-width:767px) {
  .visual-v4 #detail-dialog .consumer-detail .detail-hero:has(> .detail-intro) { padding-right:0; }
  .visual-v4 #detail-dialog .consumer-detail .detail-hero:has(> .detail-intro) > h2 { padding-right:52px; }
}
/* A date-scope explanation inside a detail editor is body copy, not a tiny
   bold action label. Current consumer: the new Tianmen exact-date control. */
.visual-v4 #detail-dialog[data-ui-v4-canary] .card-date-action span {
  font-size: max(16px, 1rem);
  font-weight: 400;
  line-height: 1.6;
}
/* Follow-up A–E: use the available body width with ordinary language wrapping. */
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(p,li,small,.migration-supporting-facts,.execution-action-help),
.visual-v4 #detail-dialog :is(p,li,small),
.visual-v4 .travel-help-module :is(p,li,small) {
  text-wrap: wrap !important;
  word-break: normal;
  overflow-wrap: anywhere;
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] .collapsed-resolution:has(.selected-value-line) {
  display: block;
}
.visual-v4 .ia-destination-section .execution-card[data-ui-v4-canary] :is(.choice-resolved-summary,.complex-resolved-summary):has(.selected-value-line) {
  display: block;
}
.visual-v4 .execution-card[data-ui-v4-canary] :is(.choice-resolved-summary,.complex-resolved-summary) > span { display: block; }
.visual-v4 .execution-card[data-ui-v4-canary] .selected-value-line > strong { flex: 0 1 auto; }
.visual-v4 .execution-card[data-ui-v4-canary] .selected-value-line > .text-button { flex: 0 0 auto; }
.visual-v4 .execution-card[data-ui-v4-canary] .choice-resolved-summary .selected-value-line > strong { color: #1f5134; font-size: 17px; }
.metro-city-search { margin: 0 0 16px; min-width: 0; }
.metro-city-search > label { display: block; font-weight: 700; margin-bottom: 6px; }
.metro-city-search-row { display: flex; align-items: baseline; gap: 12px; }
.metro-city-search-row input { flex: 1 1 auto; min-width: 0; width: 100%; min-height: 44px; font: inherit; padding: 8px; }
.metro-city-search-row button { flex: 0 0 auto; min-width: 44px; min-height: 44px; }
#metro-city-search-results:not([hidden]) { display: grid; gap: 4px; margin-top: 6px; }
#metro-city-search-results button { text-align: left; min-height: 44px; font: inherit; padding: 8px; }
#metro-city-search-status:empty { display: none; }
/* Travel help owns exactly one scroll layer, including the mobile override. */
.visual-v4 #travel-help-dialog { overflow: hidden; }
.visual-v4 #travel-help-dialog .travel-help-sheet-head { flex: 0 0 auto; }
.visual-v4 #travel-help-dialog .travel-help-modules { min-height: 0; overflow-y: auto; }
/* Same decision surface as Potala; date/status surfaces keep their own colors. */
.visual-v4 .execution-card[data-ui-v4-canary] .decision-resolver[data-resolution-status="FULL_RESOLVER"] { background: #faf8f1; }
@media (max-width: 700px) {
  /* Keep our controls above the actual 63px hosting badge; preserve its iframe. */
  .visual-v4 .selection-bottom-region { bottom: max(72px, env(safe-area-inset-bottom)); }
  .visual-v4 #setup-view { padding-bottom: max(72px, env(safe-area-inset-bottom)); }
}
@media (max-width: 700px) and (max-height: 600px) {
  .visual-v4 #setup-view .selection-bottom-region:has(.is-expanded) {
    position: sticky;
    max-height: calc(100dvh - max(72px, env(safe-area-inset-bottom)) - 8px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
