/* Shared accessibility and mobile usability hardening. */
:root{--accessible-muted:#505d57;--accessible-accent:#944326;--accessible-step:#477366}

/* Contrast corrections identified by automated axe scans. */
.micro,.hero-proof span,.quick-discovery-note,.section-title p,.steps p,.muted-note,.material small,.stats small,.legend,.breadcrumbs span,.guide-breadcrumb span[aria-current="page"],
#plannerKicker,.trust-strip span,.scrap-editor p,.cut-editor p{color:var(--accessible-muted)!important}
.steps strong{color:var(--accessible-step)!important}
.workshop-hero .cta,#tryExample{background:var(--accessible-accent)!important;color:#fff!important}
.finder-results strong,.finder-summary strong{color:var(--accessible-accent)!important}
.difference article:first-child>span{color:#ffd0b3!important}

/* Context-specific contrast: avoid applying muted dark text to dark cards. */
.related a span{color:#405b51!important}
.finder-field-note,#dimensionNote,.finder-shell small{color:#505d57!important}

/* Minimum practical control sizing on touch screens. */
select{min-height:36px;padding:8px 30px 8px 10px}
button{min-height:32px}
#clearInventory{min-height:32px;padding:6px 12px}
header a,footer a{min-height:24px;display:inline-flex;align-items:center}
footer nav a{padding:5px 0}

/* Preserve visible keyboard focus across custom buttons and links. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #236b58;outline-offset:3px;border-radius:4px}

@media(max-width:800px){
  footer nav{gap:8px 16px}
  footer nav a{min-height:32px;padding:7px 0}
  select{min-height:40px}
}
