@media(max-width:640px) {
 .entry-actions { display:flex; flex-wrap:wrap; gap:14px; }
 .entry-actions > button { min-height:44px; flex:0 0 auto; }
 .entry-actions .button-primary { min-width:160px; justify-content:center; }
 .entry-actions .text-link { min-width:150px; text-align:left; }
}

/* Type floor (2026-10-06 review): no visible text below 13px. Generated from the build's own small-type selectors. */
.arbor-lockup span,
.project-trigger,
.project-count,
.eyebrow,
.edition,
.text-link,
.mode-tabs button,
.mode-tabs button span,
.lab-live,
.stage-eyebrow,
.view-controls button,
.orbit-hint,
.scene-caption,
.stage-loader,
.panel-eyebrow,
.panel-intro,
.control-heading h3,.control-heading label,
.control-heading>span,
.profile-button,
.color-description,
.color-description small,
.palette-note,
.trim-row>span,
.trim-options button,
.range-ends,
.compare-button,
.panel-bottom,
.panel-bottom .ph,
.workspace-footer,
.workspace-footer button,
.hotspot-dot,
.hotspot-label,
.compare-label,
.layer-button,
.layer-button>span:first-child,
.detail-note p,
.source-link,
.source-link .ph,
.weather-option,
.weather-fact,
.button-primary,
.secondary-button,
.challenge-counter,
.answer-option,
.answer-feedback,
.answer-feedback strong,
.completion-text,
.completion-score small,
.story-header>p:last-child,
.journey-number,
.journey-description,
.closing-note .eyebrow,
.closing-note p,
.site-footer>div span,
.site-footer p,
.site-footer button,
.dialog-header .eyebrow,
.project-summary p,
.field>span,
.field input,.field select,
.field small,
.estimate-result>p,
.estimate-details,
.estimate-error,
.estimate-note,
.dialog-actions>button,
.drawer .button-primary,
.save-status,
.project-import,
.project-import button,
.evidence-badge,
.evidence-entry p,
.evidence-footnote,
.toast,
.share-fallback,
.water-trace-button,
.entry-actions .button-primary,
.entry-actions .text-link,
.professional-entry,
.comparison-summary .eyebrow,
.comparison-summary p,
.comparison-summary ul,
.comparison-summary button,
.project-identity small,.project-intent small,.project-save small,
.project-intent,
.stage-badge,
.workspace-views>button,
.direction-choice,
.direction-choice small,
.direction-tools,
.comparison-picker label,
.comparison-picker select,
.comparison-picker p,
.surface-selector>span,
.surface-protect,
.surface-protect button,
.surface-protect .ph,
.surface-hint,
.control-heading,.trim-row,.color-description,
.profile-button span,
.palette-note,.panel-bottom,
.assembly-context .eyebrow,
.assembly-context p,
.assembly-context button,
.design-notes .eyebrow,
.design-notes p,
.design-notes button,
.desk-heading p:not(.eyebrow),
.scope-sidebar>.eyebrow,
.scope-sidebar>button:not(.secondary-button),
.scope-sidebar button>span:first-child,
.scope-sidebar small,
.scope-sidebar>p,
.scope-sidebar .secondary-button,
.scope-title p,
.scope-title button,
.scope-selection p,
.scope-selection button,
.section-heading>span,
.scope-section>.source-link,
.scope-footnote,
.check-field,
.check-field small,
.surface-quantity p,
.surface-quantity small,
.record-status,
#scope-totals span,
#scope-totals p,
.scope-table,
.scope-table caption,
.assumption-item .field>span,
.assumption-item textarea,
.decision-draft>p,
.decision-next ul,.change-list,
.decision-next p,
.decision-next button,
.version-number,
.version-card .eyebrow,
.version-card p,
.version-card button,
.history-empty p,.portable-record p,
.reference-empty p,
.reference-column>.text-link,
.keep-features legend,
.record-details,
.saved-surface p,
.version-dialog ul{font-size:13px!important}
@media (width<=1200px){.mode-tabs button,
.journey-description{font-size:13px!important}}
@media (width<=850px){.site-header nav,
.project-trigger,
.intro-aside p,
.edition,
.scene-caption,
.mode-tabs button,
.mode-tabs button span,
.entry-actions .button-primary,
.entry-actions .text-link{font-size:13px!important}}
@media (width<=650px){.arbor-lockup span,
.project-trigger,
.eyebrow,
.intro-aside p,
.mode-tabs button,
.mode-tabs button span,
.stage-eyebrow,
.scene-caption,
.view-controls button span,
.panel-eyebrow,
.panel-intro,
.control-heading h3,.control-heading label,
.control-heading>span,
.profile-button,
.color-description,
.color-description small,
.palette-note,
.trim-row>span,
.trim-options button,
.range-ends,
.compare-button,
.panel-bottom,
.workspace-footer button,
.hotspot-dot,
.hotspot-label,
.story-header>p:last-child,
.journey-number,
.closing-note p,
.closing-note .button-primary,
.site-footer>button,
.layer-button,
.detail-note p,
.source-link,
.weather-option,
.weather-fact,
.answer-option,
.answer-feedback,
.compare-label,
.toast,
.hotspot[data-layer] .hotspot-label,
.entry-actions .button-primary,
.entry-actions .text-link,
.project-save small,
.stage-badge,
.workspace-views>button span,
.direction-choice,
.direction-tools button,
.comparison-picker label,
.comparison-picker p,
.surface-protect,
.surface-protect button,
.surface-hint,.panel-bottom,.palette-note,
.profile-button span,.control-heading h3,
.design-notes p,
.scope-sidebar small,
.scope-title button,
.scope-title p,
.scope-selection strong,
.scope-selection button,
.field>span,
.scope-footnote,
.check-field{font-size:13px!important}}
/* Opened on its own, the integration banner sits above the app: give #root the space below it. */
@media(min-width:1101px) {
 body:has(> aside:first-child) { display:flex; flex-direction:column; height:100vh; }
 body:has(> aside:first-child) > #root { flex:1 1 auto; min-height:0; height:auto; }
}
/* With the 13px floor, keep the phone header and spaced eyebrows on one line. */
@media(max-width:640px) {
 .arbor-lockup span, .project-trigger, .project-trigger span { white-space:nowrap; letter-spacing:.06em; }
 .eyebrow, .stage-eyebrow, .panel-eyebrow, .lab-live, .scene-caption { letter-spacing:.08em; }
}
/* 44px hit areas without moving anything: hotspot dots, the 3D view buttons and the zone checkbox row. */
.hotspot-dot { position:relative; }
.hotspot-dot::after { content:""; position:absolute; inset:-12px; border-radius:50%; }
.view-controls button { min-height:44px; }
.surface-protect label { min-height:44px; }
.direction-tools button { min-height:44px; }
