/* v4 final interaction and accessibility refinements */
#cameraVideo { transform: none; }
.studio-foot button.primary { color: #fff; border: 0; background: linear-gradient(135deg,#177ff4,#26b9dc); }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgba(22,135,255,.22); outline-offset: 2px; }
button:disabled { cursor: not-allowed; opacity: .45; transform: none !important; }
.profile-state.ready > span { color: #167c59; background: #e5f8ef; }
.metrics-table, .mini-stats, .score-gauge, .data-tag, .key-stat, .history-row { font-variant-numeric: tabular-nums; }

@media (max-width: 760px) {
  .title-wrap h1 { font-size: 20px; line-height: 28px; }
  .section-heading h2, .card-head h3, .panel-title h2, .panel-head h2 { line-height: 1.4; }
  .hero-copy > p, .privacy-banner p, .protocol-note, .capture-guide p, .screening-note p, .panel-head p, .model-note p, .interpretation-card p { font-size: 11px; }
  .capability-grid article b, .profile-state b, .patient-strip b, .studio-head > div:first-child b { font-size: 13px; }
  .capability-grid article small, .profile-state small, .patient-strip small, .studio-head small, .view-steps button small, .quality-list > div, .quality-list b { font-size: 10px; }
  .view-steps button b, .capture-guide b, .key-stat b, .screening-note i { font-size: 11px; }
  .studio-tools button, .studio-foot button, .measure-tools button span, .capture-status, .demo-link { font-size: 10px; }
  .measure-tools button { min-height: 48px; }
  .metric-filter button, .group-tag, .result-pill, .panel-head > div > span, .model-intro span, .card-head > div > span { font-size: 10px; }
  .metrics-table th, .metrics-table td { font-size: 11px; }
  .mobile-tabbar button { min-height: 48px; font-size: 11px; }
  .modal-head p, .required-tip span, .privacy-note p, .privacy-check, .danger-link { font-size: 11px; }
  .form-grid label, .privacy-note b { font-size: 12px; }
  .form-grid input, .form-grid select { min-height: 46px; font-size: 16px; }
}

@media (max-width: 760px) and (max-height: 650px) {
  .stage { height: 380px; }
  .scan-icon { display: none; }
  .empty-stage { padding-top: 56px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
