/* V5 Stage A: shared semantic role and measure owner, scoped to eight opt-ins.
   V4 Selection, destination IA, card edges, colors and existing handlers remain. */
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] {
  min-width: 0;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] > [data-v5-role] {
  min-width: 0;
  grid-column: 1 / -1;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] [data-v5-measure="execution"],
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] [data-v5-measure="execution"] :is(p,ul,ol),
.visual-v4 .consumer-detail[data-v5-grammar-detail] [data-v5-measure="execution"] :is(p,ul,ol) {
  max-width: none;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] [data-v5-measure="reading"] :is(p,ul,ol),
.visual-v4 .consumer-detail[data-v5-grammar-detail] :is(.consumer-detail-facts,.secondary-content) :is(p,ul,ol) {
  max-width: 66ch;
}
/* Legacy 42rem list-item and 54rem handoff rails left empty desktop space.
   Short execution conditions may use the card; long Detail reading retains 66ch. */
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] :is(.simple-supporting-facts,.timed-supporting-facts,.choice-supporting-facts,.complex-supporting-facts,.migration-supporting-facts) {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  width: 100%;
  max-width: none;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] :is(.simple-supporting-facts,.timed-supporting-facts,.choice-supporting-facts,.complex-supporting-facts,.migration-supporting-facts) > li,
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] :is(.complex-primary-action,.complex-execution-handoff,.execution-action-help,.frontstage-core-price > small) {
  max-width: none;
  min-width: 0;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] [data-v5-task-role="primary-current"] {
  margin-top: 8px;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] [data-v5-task-role="next-arrival"] {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--vs-border, #dfe5df);
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] [data-v5-action-role="backup"] {
  border-top: 1px solid var(--vs-border, #dfe5df);
  padding-top: 10px;
  color: var(--vs-secondary, #526158);
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] .v5-backup-label {
  font-size: .8rem;
  font-weight: 650;
  color: var(--vs-secondary, #526158);
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] [data-v5-action-role="primary"] > p {
  margin: 5px 0 0;
  max-width: none;
  color: var(--vs-secondary, #526158);
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] .v5-contextual-date {
  justify-self: start;
  max-width: 100%;
  min-height: 44px;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] .consumer-action-row {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  justify-items: start;
  gap: 8px;
  max-width: none;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] .consumer-action-row > *,
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] :is(.phase4-external-handoff,.phase4-search-handoff,.complex-execution-handoff,.migration-primary-action) {
  min-width: 0;
  max-width: none;
  width: 100%;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] .phase4-search-handoff {
  grid-template-columns: minmax(0,1fr) auto;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] a[href] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] :is(.choice-frontstage-options,.complex-path-options,.presentation-choice-options) {
  grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr));
}
.visual-v4 .consumer-detail[data-v5-grammar-detail] {
  min-width: 0;
}
.visual-v4 .consumer-detail[data-v5-grammar-detail] :is(.consumer-detail-primary,.detail-hero) {
  max-width: none;
}
@media (max-width: 767px) {
  .visual-v4 .ia-destination-section .execution-card[data-v5-grammar] :is(.choice-frontstage-options,.complex-path-options,.presentation-choice-options),
  .visual-v4 .ia-destination-section .execution-card[data-v5-grammar] .phase4-search-handoff {
    grid-template-columns: minmax(0,1fr);
  }
  .visual-v4 .ia-destination-section .execution-card[data-v5-grammar] .consumer-action-row > * {
    max-width: 100%;
  }
}

/* Stage B shared mobile Detail repair: existing secondary links must wrap. */
@media (max-width: 767px) {
  .visual-v4 .consumer-detail[data-v5-grammar-detail] .secondary-execution-path { grid-template-columns: minmax(0,1fr); }
  .visual-v4 .consumer-detail[data-v5-grammar-detail] .secondary-execution-path > * { min-width: 0; overflow-wrap: anywhere; }
}
/* Existing source-owned primary Copy and backup link use approved action tokens. */
.visual-v4 .execution-card[data-v5-grammar] [data-v5-action-role="primary"] .execution-action-main > button[data-copy-text] { min-height: 44px; padding: 10px 16px; background: var(--vs-action); color: #fff; border-color: var(--vs-action); font-size: 1rem; font-weight: 600; }
.visual-v4 .execution-card[data-v5-grammar] [data-v5-action-role="backup"] .phase4-primary-link { background: transparent; border: 1px solid var(--vs-border); color: var(--vs-action); }

/* A four-option Choice may use at most two columns, and only while each
   column retains the existing 240px minimum. This is container-width based. */
.visual-v4 .ia-destination-section .execution-card[data-v5-grammar] :is(.choice-frontstage-options,.complex-path-options,.presentation-choice-options).visual-choice-count-4 {
  grid-template-columns: repeat(auto-fit,minmax(min(100%,max(240px,calc((100% - 12px)/2))),1fr));
}

/* An explicit action role owns the actual control, including Copy. The
   legacy visual-primary-copy class cannot re-promote backup/arrival copies. */
.visual-v4 :is(.execution-card[data-v5-grammar],.consumer-detail[data-v5-grammar-detail]) [data-v5-action-role="primary"] :is(button[data-copy-text],a[href]) {
  min-height: 44px;
  padding: 10px 16px;
  background: var(--vs-action);
  border: 1px solid var(--vs-action);
  border-radius: 10px;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  white-space: normal;
}
.visual-v4 :is(.execution-card[data-v5-grammar],.consumer-detail[data-v5-grammar-detail]) :is([data-v5-action-role="backup"],[data-v5-action-role="arrival-utility"],[data-v5-action-role="reference"]) :is(button[data-copy-text],a[href]) {
  min-height: 44px;
  padding: 8px 12px;
  background: transparent;
  border: 1px solid var(--vs-border);
  border-radius: 10px;
  color: var(--vs-action);
  font-size: 1rem;
  font-weight: 500;
  text-decoration: none;
  white-space: normal;
}
