.smr-analyzer__override-toggle input {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: #ff7800;
  flex-shrink: 0;
}.smr-app-shell {
  --pga-guide-bg: #000000;
  --pga-guide-panel: rgba(255, 255, 255, 0.04);
  --pga-guide-border: rgba(255, 255, 255, 0.12);
  --pga-guide-border-strong: rgba(255, 255, 255, 0.24);
  --pga-guide-text: #ffffff;
  --pga-guide-text-soft: rgba(255, 255, 255, 0.9);
  --pga-guide-text-muted: rgba(255, 255, 255, 0.72);
  --pga-guide-accent: #ff7800;
  --pga-guide-accent-soft: #ffb15c;
  --pga-guide-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
  --pga-guide-gradient: linear-gradient(135deg, #ff7800 0%, #ff9b33 48%, #ffd27a 100%);
  /* Japan-aware design system tokens */
  --smr-space-1: 4px;
  --smr-space-2: 8px;
  --smr-space-3: 12px;
  --smr-space-4: 16px;
  --smr-space-5: 20px;
  --smr-space-6: 24px;
  --smr-space-7: 32px;
  --smr-space-8: 40px;
  --smr-space-9: 48px;
  --smr-space-10: 56px;
  --smr-type-page-title: clamp(24px, 3.2vw, 36px);
  --smr-type-section-title: clamp(19px, 2.2vw, 26px);
  --smr-type-card-title: clamp(17px, 1.8vw, 20px);
  --smr-type-body: clamp(15.5px, 1.5vw, 17px);
  --smr-type-helper: clamp(14.5px, 1.4vw, 15.5px);
  --smr-type-label: 12px;
  --smr-type-button-primary: clamp(15.5px, 1.5vw, 18px);
  --smr-type-button-compact: clamp(14px, 1.3vw, 15.5px);
  --smr-lh-heading: 1.38;
  --smr-lh-section: 1.45;
  --smr-lh-body: 1.8;
  --smr-lh-helper: 1.7;
  --smr-lh-control: 1.4;
  --smr-track-body: 0.01em;
  --smr-track-heading: 0.012em;
  --smr-track-eyebrow: 0.07em;
  --smr-radius-card: 2px;
  --smr-radius-button: 2px;
  --smr-radius-input: 2px;
  --smr-radius-media: 4px;
  --smr-radius-analyzer-panel: 4px;
  --smr-surface-page: #000000;
  --smr-surface-card: #07090d;
  --smr-surface-panel: #0d1118;
  --smr-surface-border: rgba(255, 255, 255, 0.12);
  --smr-surface-border-strong: rgba(255, 255, 255, 0.22);
  --smr-surface-accent-border: rgba(255, 120, 0, 0.55);
  color: var(--pga-guide-text);
  font-family: "Noto Sans JP", sans-serif;
}

.smr-app-shell *,
.smr-app-shell *::before,
.smr-app-shell *::after {
  box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif !important;
}

.smr-app,
.smr-banner-wrap,
.smr-score-pill,
.smr-locked-message {
  background: var(--pga-guide-bg);
  color: var(--pga-guide-text);
}

.smr-app {
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  box-shadow: var(--pga-guide-shadow);
  overflow: hidden;
}

.smr-page,
.smr-locked-message {
  padding: var(--smr-space-8) var(--smr-space-6);
}

.smr-locked-auth-troubleshoot {
  margin: 0 0 24px;
  padding: 16px 18px;
  border: 1px solid var(--pga-guide-accent);
  background: rgba(255, 120, 0, 0.08);
}

.smr-locked-auth-troubleshoot__title {
  margin: 0 0 8px;
  font-size: 1rem;
  font-weight: 800;
  color: var(--pga-guide-text);
}

.smr-locked-auth-troubleshoot__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.smr-locked-session-restore__failure,
.smr-coach-mode-restore [data-smr-coach-restore-failure],
.smr-coach-client-restore [data-smr-client-restore-failure] {
  margin-top: 14px;
}

.smr-locked-session-restore__failure-ios {
  margin-top: 8px;
}

.smr-auth-recover {
  margin: 16px 0 0;
  padding: 16px 18px;
  border: 1px solid var(--pga-guide-border-strong);
  border-radius: 1px;
  background: rgba(0, 0, 0, 0.2);
}

.smr-auth-recover__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.smr-header {
  margin-bottom: var(--smr-space-6);
}

.smr-header-bar {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.smr-header-home {
  align-items: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--pga-guide-border-strong);
  border-radius: 1px;
  color: var(--pga-guide-text);
  cursor: pointer;
  display: inline-flex;
  font-size: 14px;
  font-weight: 800;
  justify-content: center;
  min-height: 46px;
  padding: 10px 14px;
  transition: border-color .2s ease, color .2s ease, transform .2s ease, background .2s ease;
  white-space: nowrap;
}

.smr-header-home:hover,
.smr-header-home:focus {
  background: rgba(255, 120, 0, 0.08);
  border-color: rgba(255, 120, 0, 0.42);
  color: #ffd7a8;
  outline: none;
  transform: translateY(-1px);
}

.smr-header-home.is-pending {
  pointer-events: none;
  opacity: 0.9;
  transform: none;
}

.smr-header-home__spinner {
  display: inline-block;
  width: 15px;
  height: 15px;
  margin-right: 8px;
  vertical-align: -2px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  border-top-color: var(--pga-guide-accent-soft, #ffb15c);
  border-radius: 50%;
  animation: smr-header-home-spin 0.7s linear infinite;
}

.smr-header-home__label {
  vertical-align: middle;
}

@keyframes smr-header-home-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Consumer fullscreen shell (theme-embedded + PWA) */
html.smr-consumer-browser-shell,
html.smr-consumer-is-standalone body {
  background: #000;
}

html.smr-consumer-is-standalone .smr-app-shell.smr-consumer-shell,
html.smr-is-pwa-app body.smr-consumer-app-active .smr-app-shell.smr-consumer-shell {
  --smr-consumer-app-bar-h: 52px;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--pga-guide-bg);
  overflow-x: hidden;
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

html.smr-consumer-is-standalone .smr-consumer-shell > .smr-app,
html.smr-is-pwa-app body.smr-consumer-app-active .smr-consumer-shell > .smr-app,
html.smr-consumer-is-standalone .smr-consumer-shell > .smr-locked-message,
html.smr-is-pwa-app body.smr-consumer-app-active .smr-consumer-shell > .smr-locked-message {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border-radius: 0;
  border-left: none;
  border-right: none;
  box-shadow: none;
}

.smr-consumer-app-bar {
  display: none;
}

html.smr-consumer-browser-shell .smr-consumer-app-bar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--smr-space-3);
  flex: 0 0 auto;
  padding: calc(env(safe-area-inset-top, 0px) + 8px) var(--smr-space-4) 8px;
  border-bottom: 1px solid var(--pga-guide-border);
  background: rgba(0, 0, 0, 0.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  position: sticky;
  top: 0;
  z-index: 40;
}

.smr-consumer-app-bar__start,
.smr-consumer-app-bar__end {
  display: flex;
  align-items: center;
  min-width: 44px;
}

.smr-consumer-app-bar__end {
  justify-content: flex-end;
}

.smr-consumer-app-bar__brand {
  min-width: 0;
  text-align: center;
}

.smr-consumer-app-bar__title {
  margin: 0;
  font-size: clamp(17px, 4.2vw, 20px);
  font-weight: 850;
  line-height: 1.25;
  color: var(--pga-guide-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.smr-consumer-app-bar__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 0 10px 0 6px;
  border: 1px solid var(--pga-guide-border-strong);
  border-radius: var(--smr-radius-button);
  background: rgba(255, 255, 255, 0.04);
  color: var(--pga-guide-text);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

.smr-consumer-app-bar__back:hover,
.smr-consumer-app-bar__back:focus {
  border-color: rgba(255, 120, 0, 0.42);
  background: rgba(255, 120, 0, 0.08);
  color: #ffd7a8;
  outline: none;
}

.smr-consumer-app-bar__back svg {
  flex: 0 0 auto;
}

.smr-consumer-app-bar__back-label {
  max-width: 9rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 480px) {
  .smr-consumer-app-bar__back-label {
    display: none;
  }
}

.smr-eyebrow,
.smr-chip,
.smr-pill,
.smr-action-index,
.smr-step-index,
.smr-banner-eyebrow,
.smr-score-pill__eyebrow {
  color: var(--pga-guide-accent-soft);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.smr-header h2,
.smr-banner h3,
.smr-card h3,
.smr-section h3,
.smr-action-card h4,
.smr-step-card h4,
.smr-model-card h4,
.smr-model-card__meta h4,
.smr-breakdown-card h4,
.smr-breakdown-group__title,
.smr-breakdown-card h4,
.smr-breakdown-group__title,
.smr-resource h4,
.smr-upload-card h4,
.smr-compare-card h4,
.smr-compare-pane h4 {
  margin: 0 0 var(--smr-space-2);
  line-height: var(--smr-lh-section);
  font-weight: 800;
  letter-spacing: var(--smr-track-heading);
}

.smr-banner h3,
.smr-card h3,
.smr-section h3,
.smr-action-card h4,
.smr-step-card h4,
.smr-model-card h4,
.smr-model-card__meta h4,
.smr-breakdown-card h4,
.smr-breakdown-group__title,
.smr-resource h4,
.smr-upload-card h4,
.smr-compare-card h4,
.smr-compare-pane h4 {
  color: var(--pga-guide-text);
}

.smr-header-bar > div:first-child {
  flex: 1 1 auto;
  min-width: 0;
}

.smr-header h2 {
  background: var(--pga-guide-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: var(--smr-type-page-title);
  line-height: var(--smr-lh-heading);
  max-width: none;
  word-break: keep-all;
}

.smr-header p,
.smr-card p,
.smr-action-card p,
.smr-step-card p,
.smr-breakdown-card p,
.smr-section-copy,
.smr-banner-body,
.smr-banner-follow-up,
.smr-resource p,
.smr-locked-message p {
  color: var(--pga-guide-text-soft);
  font-size: var(--smr-type-body);
  line-height: var(--smr-lh-body);
  letter-spacing: var(--smr-track-body);
  margin: 0;
}

/* Initial bootstrap load: viewport-fixed so spinner stays visible while parent page scrolls */
.smr-loading {
  position: fixed;
  inset: 0;
  z-index: 99990;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0;
  padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right))
    max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  box-sizing: border-box;
  background: rgba(15, 18, 22, 0.5);
}

.smr-loading::before {
  content: '';
  width: 40px;
  height: 40px;
  border: 3px solid var(--pga-guide-border-strong);
  border-top-color: var(--pga-guide-accent, #e85a24);
  border-radius: 50%;
  animation: smr-practice-spin 0.75s linear infinite;
}

.smr-loading p {
  color: var(--pga-guide-text-soft);
  font-size: clamp(16px, 1.6vw, 19px);
  line-height: 1.85;
  margin: 0;
  max-width: min(420px, 92vw);
  text-align: center;
}

/* Practice entry: same boot-style loader when mounted inside #smr-app (stale CSS / PWA cache fallback). */
#smr-app > .smr-practice-entry-loading {
  position: fixed;
  inset: 0;
  z-index: 99990;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0;
  padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right))
    max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  box-sizing: border-box;
  background: rgba(15, 18, 22, 0.5);
}

#smr-app > .smr-practice-entry-loading::before {
  content: '';
  width: 40px;
  height: 40px;
  border: 3px solid var(--pga-guide-border-strong);
  border-top-color: var(--pga-guide-accent, #e85a24);
  border-radius: 50%;
  animation: smr-practice-spin 0.75s linear infinite;
}

#smr-app > .smr-practice-entry-loading p {
  color: var(--pga-guide-text-soft);
  font-size: clamp(16px, 1.6vw, 19px);
  line-height: 1.85;
  margin: 0;
  max-width: min(420px, 92vw);
  text-align: center;
}

.smr-locked-experience {
  display: grid;
  gap: 24px;
}

.smr-locked-recover-status {
  margin: 0 0 4px;
  font-size: 14px;
  color: var(--pga-guide-text-muted);
}

.smr-locked-recover-status[hidden] {
  display: none;
}

.smr-locked-header h2 {
  max-width: 12ch;
}

.smr-locked-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.smr-locked-helper,
.smr-locked-feedback {
  color: var(--pga-guide-text-muted);
  font-size: var(--smr-type-helper);
  line-height: var(--smr-lh-helper);
  letter-spacing: var(--smr-track-body);
  margin: 0;
}

.smr-locked-feedback {
  min-height: 24px;
}

.smr-locked-levels {
  display: grid;
  gap: 18px;
}

.smr-trial-notice {
  margin-bottom: 18px;
}

.smr-notice {
  border-radius: 1px;
  margin-bottom: 18px;
  padding: 14px 16px;
}

.smr-notice-error {
  background: rgba(209, 76, 76, 0.16);
  border: 1px solid rgba(209, 76, 76, 0.36);
}

.smr-notice-success {
  background: rgba(30, 166, 109, 0.14);
  border: 1px solid rgba(30, 166, 109, 0.34);
}

.smr-notice-info {
  background: rgba(59, 130, 246, 0.1);
  border: 1px solid rgba(59, 130, 246, 0.32);
}

.smr-test-checkpoint-saving-overlay {
  position: fixed;
  inset: 0;
  z-index: 100060;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: min(460px, calc(100vw - 32px));
  min-height: 0;
  margin: auto;
  padding: 28px 32px;
  box-sizing: border-box;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  background: rgba(0, 0, 0, 0.95);
  color: #ffffff;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
  pointer-events: all;
}

.smr-test-checkpoint-saving-overlay::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(4px);
}

.smr-test-checkpoint-saving-overlay__spinner {
  width: 40px;
  height: 40px;
  border: 3px solid var(--smr-surface-border);
  border-top-color: var(--pga-guide-accent, #e85a24);
  border-radius: 50%;
  animation: smr-practice-spin 0.75s linear infinite;
  flex-shrink: 0;
}

.smr-test-checkpoint-saving-overlay__title,
.smr-test-checkpoint-saving-overlay__sub {
  margin: 0;
  max-width: 22rem;
  line-height: 1.55;
  text-align: center;
}

.smr-test-checkpoint-saving-overlay__title {
  font-size: 15px;
  font-weight: 700;
  color: var(--pga-guide-text, #ffffff);
}

.smr-test-checkpoint-saving-overlay__sub {
  font-size: 13px;
  color: var(--pga-guide-text-soft, rgba(255, 255, 255, 0.78));
}

@media (max-width: 480px) {
  .smr-test-checkpoint-saving-overlay {
    gap: 12px;
    width: min(460px, calc(100vw - 24px));
    padding: 24px 20px;
  }

  .smr-test-checkpoint-saving-overlay__title {
    font-size: 14px;
  }

  .smr-test-checkpoint-saving-overlay__sub {
    font-size: 12px;
  }
}

.smr-loading--timed-out::before {
  animation: none;
  border-color: var(--smr-surface-border);
  border-top-color: rgba(232, 90, 36, 0.85);
}

.smr-loading__hint {
  font-size: clamp(14px, 1.4vw, 16px);
  color: var(--pga-guide-text-soft);
  opacity: 0.95;
}

.smr-grid {
  display: grid;
  gap: var(--smr-space-5);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.smr-grid-single {
  grid-template-columns: minmax(0, 1fr);
}

.smr-card,
.smr-score-card,
.smr-action-card,
.smr-step-card,
.smr-empty-card,
.smr-history-item,
.smr-banner,
.smr-upload-card,
.smr-compare-card,
.smr-compare-pane,
.smr-breakdown-card {
  background: linear-gradient(180deg, var(--smr-surface-card), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--smr-surface-border);
  border-radius: var(--smr-radius-card);
  padding: var(--smr-space-5);
}

.smr-chip,
.smr-pill,
.smr-action-index {
  display: inline-flex;
  align-items: center;
  border-radius: 1px;
  margin-bottom: 12px;
  padding: 6px 10px;
}

.smr-chip,
.smr-action-index,
.smr-step-index,
.smr-score-pill {
  background: rgba(255, 120, 0, 0.14);
}

.smr-pill {
  background: rgba(255, 255, 255, 0.08);
  color: var(--pga-guide-text-soft);
}

.smr-pill-complete {
  background: rgba(30, 166, 109, 0.14);
  color: #72e2af;
}

.smr-score-card {
  margin-bottom: 24px;
  text-align: center;
}

.smr-score-identity {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: grid;
  gap: 8px;
  margin-top: 18px;
  padding-top: 18px;
}

.smr-score-identity strong {
  color: var(--pga-guide-accent-soft);
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 800;
}

.smr-score-identity p {
  margin: 0;
}

.smr-score-hierarchy {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  text-align: left;
}

/* Desktop: original two-column tier (label + range | percentile) */
.smr-score-tier {
  align-items: center;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--pga-guide-border);
  column-gap: 6px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  padding: 10px 12px;
  row-gap: 4px;
}

.smr-score-tier__name,
.smr-score-tier strong {
  color: var(--pga-guide-text);
  font-size: 16px;
  font-weight: 800;
  grid-column: 1;
  grid-row: 1;
  letter-spacing: normal;
  line-height: 1.25;
  word-break: normal;
}

.smr-score-tier__range,
.smr-score-tier span.smr-score-tier__range {
  color: var(--pga-guide-text-muted);
  font-size: 14px;
  font-weight: 600;
  grid-column: 1;
  grid-row: 2;
  line-height: 1.3;
}

.smr-score-tier__percentile,
.smr-score-tier span.smr-score-tier__percentile {
  align-self: center;
  color: var(--pga-guide-text-muted);
  display: block;
  font-size: 13px;
  font-weight: 500;
  grid-column: 2;
  grid-row: 1 / span 2;
  line-height: 1.45;
  max-width: 12rem;
}

.smr-score-tier-active {
  background: rgba(255, 120, 0, 0.12);
  border-color: rgba(255, 177, 92, 0.55);
}

.smr-score-tier-active .smr-score-tier__name,
.smr-score-tier-active strong {
  color: var(--pga-guide-accent-soft);
}

.smr-score-tier-active .smr-score-tier__range,
.smr-score-tier-active span.smr-score-tier__range,
.smr-score-tier-active .smr-score-tier__percentile,
.smr-score-tier-active span.smr-score-tier__percentile {
  color: var(--pga-guide-text-muted);
}

/* Mobile + PWA: premium vertical cards */
@media (max-width: 899px) {
  .smr-score-hierarchy {
    gap: 12px;
    margin-top: 16px;
  }

  .smr-score-tier {
    align-items: start;
    border-radius: 1px;
    column-gap: unset;
    gap: 6px;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    min-height: 112px;
    padding: 18px 20px;
    row-gap: unset;
  }

  .smr-score-tier__name,
  .smr-score-tier strong {
    color: var(--pga-guide-text);
    font-size: clamp(22px, 5.6vw, 32px);
    font-weight: 900;
    grid-column: auto;
    grid-row: auto;
    letter-spacing: 0.005em;
    line-height: 1.18;
    overflow-wrap: normal;
    word-break: keep-all;
  }

  .smr-score-tier__range,
  .smr-score-tier span.smr-score-tier__range {
    color: rgba(255, 255, 255, 0.74);
    font-size: clamp(20px, 5vw, 28px);
    font-weight: 700;
    grid-column: auto;
    grid-row: auto;
    line-height: 1.2;
  }

  .smr-score-tier__percentile,
  .smr-score-tier span.smr-score-tier__percentile {
    align-self: start;
    color: rgba(255, 255, 255, 0.68);
    font-size: clamp(14px, 3.6vw, 18px);
    font-weight: 600;
    grid-column: auto;
    grid-row: auto;
    line-height: 1.55;
    max-width: 100%;
  }

  .smr-score-tier-active {
    background: linear-gradient(180deg, rgba(255, 120, 0, 0.16), rgba(255, 120, 0, 0.07));
    border-color: rgba(255, 177, 92, 0.65);
    box-shadow: 0 0 0 1px rgba(255, 120, 0, 0.08), 0 14px 36px rgba(255, 120, 0, 0.08);
  }

  .smr-score-tier-active .smr-score-tier__name,
  .smr-score-tier-active strong {
    color: var(--pga-guide-accent-soft);
  }

  .smr-score-tier-active .smr-score-tier__range,
  .smr-score-tier-active span.smr-score-tier__range {
    color: rgba(255, 226, 190, 0.86);
  }

  .smr-score-tier-active .smr-score-tier__percentile,
  .smr-score-tier-active span.smr-score-tier__percentile {
    color: rgba(255, 226, 190, 0.78);
  }
}

@media (max-width: 640px) {
  .smr-score-tier {
    min-height: 118px;
    padding: 18px;
  }

  .smr-score-tier__name,
  .smr-score-tier strong {
    font-size: clamp(24px, 7vw, 34px);
  }

  .smr-score-tier__range,
  .smr-score-tier span.smr-score-tier__range {
    font-size: clamp(21px, 6vw, 30px);
  }

  .smr-score-tier__percentile,
  .smr-score-tier span.smr-score-tier__percentile {
    font-size: clamp(14px, 4vw, 17px);
  }
}

.smr-score-value,
.smr-banner-score {
  background: var(--pga-guide-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: clamp(48px, 10vw, 86px);
  font-weight: 800;
  line-height: 1;
  margin-bottom: 10px;
}

.smr-section {
  margin-top: var(--smr-space-7);
}

.smr-section-copy {
  margin-bottom: var(--smr-space-3);
}

.smr-section-head {
  align-items: center;
  display: flex;
  gap: var(--smr-space-3);
  justify-content: space-between;
  margin-bottom: var(--smr-space-3);
}

.smr-actions,
.smr-link-list,
.smr-radio-row,
.smr-banner-actions,
.smr-compare-toolbar,
.smr-results-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--smr-space-3);
}

.smr-actions {
  margin-top: var(--smr-space-5);
}

.smr-results-actions {
  margin-top: 8px;
}

.smr-section-admin-tools {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 6px;
}

.smr-community-entry {
  border: 1px solid rgba(255, 120, 0, 0.22);
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.08), rgba(255, 255, 255, 0.03));
}

.smr-community {
  display: grid;
  gap: 16px;
}

.smr-community-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.smr-community-profile,
.smr-community-composer,
.smr-community-card,
.smr-community-empty {
  border: 1px solid var(--pga-guide-border);
  background: rgba(255, 255, 255, 0.045);
}

.smr-community-profile,
.smr-community-composer,
.smr-community-empty {
  padding: 18px;
}

.smr-community-profile {
  gap: 18px;
}

.smr-community-profile__avatar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.smr-community-profile__avatar img,
.smr-community-card__avatar {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.16);
  object-fit: cover;
}

.smr-community-profile__avatar img {
  width: 84px;
  height: 84px;
  border-radius: 50%;
}

.smr-community-field {
  display: grid;
  gap: 8px;
}

.smr-community-field span {
  color: var(--pga-guide-text-soft);
  font-size: 13px;
  font-weight: 800;
}

.smr-community-field input,
.smr-community-composer textarea {
  width: 100%;
  color: var(--pga-guide-text);
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-button);
  font-size: 16px;
  line-height: 1.55;
  min-height: 48px;
  padding: 12px 13px;
}

.smr-community-field input:focus-visible,
.smr-community-composer textarea:focus-visible {
  border-color: rgba(255, 120, 0, 0.62);
  box-shadow: 0 0 0 3px rgba(255, 120, 0, 0.16);
  outline: none;
}

.smr-community-profile__actions,
.smr-community-composer__actions,
.smr-community-card__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.smr-community-upload {
  cursor: pointer;
  position: relative;
}

.smr-community-upload input {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.smr-community-composer {
  display: grid;
  gap: 12px;
}

.smr-community-composer textarea {
  min-height: 104px;
  resize: vertical;
}

.smr-community-composer__error {
  border: 1px solid rgba(255, 110, 90, 0.35);
  background: rgba(255, 110, 90, 0.1);
  color: #ffd3cc;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
  padding: 10px 12px;
}

.smr-community-composer__attachments {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.smr-community-composer__attachment {
  position: relative;
}

.smr-community-composer__attachment img {
  aspect-ratio: 4 / 3;
  border: 1px solid var(--pga-guide-border);
  display: block;
  object-fit: cover;
  width: 100%;
}

.smr-community-composer__remove {
  align-items: center;
  background: rgba(0, 0, 0, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-size: 20px;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  position: absolute;
  right: 8px;
  top: 8px;
  width: 34px;
}

.smr-community-feed,
.smr-community-feed__group,
.smr-community-thread,
.smr-community-thread__replies {
  display: grid;
  gap: 14px;
}

.smr-community-feed__toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 10px;
}

.smr-community-profile-chip.smr-button {
  align-items: center;
  display: inline-flex;
  gap: 8px;
  min-height: 40px;
  padding: 6px 12px;
}

.smr-community-profile-chip__avatar {
  border-radius: 50%;
  height: 28px;
  object-fit: cover;
  width: 28px;
}

.smr-community-thread__top {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 16px;
}

.smr-community-card {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.smr-community-card--pinned {
  border-color: var(--smr-surface-border);
  border-top: 3px solid var(--pga-guide-accent);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.03));
}

.smr-community-card__click[data-action] {
  cursor: pointer;
}

.smr-community-card__meta {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.smr-community-card__meta strong {
  color: var(--pga-guide-text);
  display: block;
  font-size: 15px;
  font-weight: 900;
}

.smr-community-card__meta span {
  color: var(--pga-guide-text-muted);
  display: block;
  font-size: 12px;
  margin-top: 2px;
}

.smr-community-card__avatar {
  border-radius: 50%;
  height: 44px;
  width: 44px;
}

.smr-community-pin-badge {
  align-self: start;
  background: rgba(255, 120, 0, 0.18);
  border: 1px solid rgba(255, 120, 0, 0.42);
  color: #ffd4a3;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  padding: 6px 8px;
}

.smr-community-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.smr-community-badge {
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  padding: 3px 8px;
}

.smr-community-badge--admin {
  background: rgba(59, 130, 246, 0.22);
  border: 1px solid rgba(59, 130, 246, 0.45);
  color: #bfdbfe;
}

.smr-community-badge--coach {
  background: rgba(16, 185, 129, 0.18);
  border: 1px solid rgba(16, 185, 129, 0.45);
  color: #a7f3d0;
}

.smr-community-card__body {
  color: var(--pga-guide-text-soft);
  font-size: 15px;
  line-height: 1.72;
  overflow-wrap: anywhere;
  white-space: normal;
}

.smr-community-card__body a {
  color: #ffd4a3;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.smr-community-card__attachments {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.smr-community-card__attachment-hit {
  background: transparent;
  border: 0;
  cursor: pointer;
  display: block;
  padding: 0;
  width: 100%;
}

.smr-community-card__attachments img {
  aspect-ratio: 4 / 3;
  border: 1px solid var(--pga-guide-border);
  display: block;
  object-fit: cover;
  width: 100%;
}

.smr-community-lightbox {
  align-items: center;
  display: flex;
  inset: 0;
  justify-content: center;
  position: fixed;
  z-index: 9999;
}

.smr-community-lightbox__backdrop {
  background: rgba(0, 0, 0, 0.82);
  border: 0;
  cursor: pointer;
  inset: 0;
  position: absolute;
}

.smr-community-lightbox__inner {
  max-height: 100vh;
  max-width: 100vw;
  padding: 16px;
  position: relative;
  z-index: 1;
}

.smr-community-lightbox__inner img {
  display: block;
  margin: 0 auto;
  max-height: 85vh;
  max-width: 100%;
}

.smr-community-lightbox__close {
  align-items: center;
  background: rgba(0, 0, 0, 0.55);
  border: 0;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-size: 22px;
  height: 44px;
  justify-content: center;
  line-height: 1;
  position: absolute;
  right: 8px;
  top: 8px;
  width: 44px;
  z-index: 2;
}

.smr-community-like,
.smr-community-action {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--pga-guide-text-muted);
  cursor: pointer;
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  gap: 5px;
  min-height: 34px;
  padding: 0;
}

.smr-community-like:hover,
.smr-community-like:focus,
.smr-community-action:hover,
.smr-community-action:focus,
.smr-community-like.is-liked {
  color: #ffd4a3;
  outline: none;
}

.smr-community-action--danger {
  color: #ffb4a8;
}

.smr-community-thread__replies h3 {
  color: var(--pga-guide-text);
  font-size: 18px;
  margin: 4px 0 0;
}

.smr-community-reply {
  margin-left: 24px;
}

.smr-community-empty,
.smr-community-empty-inline,
.smr-community-loading {
  color: var(--pga-guide-text-muted);
  line-height: 1.6;
}

.smr-community-empty p {
  margin: 0;
}

.smr-community-empty p + p {
  margin-top: 6px;
}

.smr-community-load-more {
  justify-self: center;
  margin-top: 6px;
}

@media (max-width: 768px) {
  .smr-community {
    display: grid;
    gap: 14px;
  }

  .smr-community-composer,
  .smr-community-card,
  .smr-community-profile {
    border-radius: 2px;
    padding: 18px;
  }

  .smr-community-card__actions {
    display: flex;
    gap: 12px;
    align-items: center;
  }

  .smr-community-card__attachments,
  .smr-community-composer__attachments {
    grid-template-columns: 1fr;
  }

  .smr-community-card__attachments img {
    width: 100%;
    border-radius: 4px;
    display: block;
  }

  .smr-community-reply {
    margin-left: 10px;
  }
}

@media (min-width: 900px) {
  .smr-community {
    max-width: 860px;
    margin: 0 auto;
  }
}

.smr-admin-preview-bar {
  align-items: center;
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.12), rgba(255, 255, 255, 0.03));
  border: 1px solid rgba(255, 120, 0, 0.22);
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: space-between;
  margin-top: 18px;
  padding: 14px;
}

.smr-admin-preview-copy {
  display: grid;
  gap: 4px;
}

.smr-admin-preview-copy strong {
  color: var(--pga-guide-text);
  font-size: 16px;
  font-weight: 800;
}

.smr-admin-preview-hint {
  margin: 6px 0 0;
  max-width: 42rem;
  font-size: 13px;
  line-height: 1.45;
  color: var(--pga-guide-text-muted);
}

.smr-admin-preview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.smr-admin-preview-button,
.smr-admin-preview-button:visited {
  align-items: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--pga-guide-border-strong);
  color: var(--pga-guide-text);
  cursor: pointer;
  display: inline-flex;
  font-size: 14px;
  font-weight: 800;
  justify-content: center;
  min-height: 42px;
  padding: 10px 14px;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease, transform .2s ease, color .2s ease;
}

.smr-admin-preview-button:hover,
.smr-admin-preview-button:focus {
  background: rgba(255, 120, 0, 0.08);
  border-color: rgba(255, 120, 0, 0.42);
  color: #ffd7a8;
  outline: none;
  transform: translateY(-1px);
}

.smr-admin-preview-button.is-active {
  background: var(--pga-guide-gradient);
  border-color: transparent;
  box-shadow: 0 16px 36px rgba(255, 120, 0, 0.24);
  color: #ffffff;
}

.smr-button,
.smr-banner-button,
.smr-resource-button {
  align-items: center;
  appearance: none;
  background: var(--pga-guide-gradient);
  border: none !important;
  border-radius: var(--smr-radius-button);
  box-shadow: 0 12px 28px rgba(255, 120, 0, 0.24);
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  font-size: var(--smr-type-button-primary);
  font-weight: 850;
  justify-content: center;
  line-height: var(--smr-lh-control);
  min-height: 56px;
  padding: var(--smr-space-3) var(--smr-space-6);
  text-decoration: none;
  transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
}

.smr-button:hover,
.smr-button:focus,
.smr-banner-button:hover,
.smr-banner-button:focus,
.smr-resource-button:hover,
.smr-resource-button:focus {
  box-shadow: 0 22px 44px rgba(255, 120, 0, 0.36);
  opacity: 0.92;
  transform: translateY(-1px);
}

.smr-button-secondary,
.smr-banner-button--secondary,
.smr-resource-button.smr-button-secondary {
  background: transparent;
  border: 1px solid var(--pga-guide-border-strong) !important;
  box-shadow: none;
  color: var(--pga-guide-text);
  font-size: var(--smr-type-body);
  min-height: 52px;
}

.smr-resource-list {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.smr-resource {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: 14px;
}

.smr-resource__image,
.smr-resource__video,
.smr-resource__buttons {
  margin-top: 14px;
}

.smr-resource__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.smr-resource img,
.smr-resource video,
.smr-upload-preview img,
.smr-compare-pane img,
.smr-compare-pane .smr-compare-image-frame img,
.smr-model-card .smr-compare-image-frame img {
  border-radius: 1px;
  display: block;
  max-width: 100%;
  width: 100%;
}

.smr-compare-image-frame {
  position: relative;
  min-height: 220px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--pga-guide-border);
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 1px;
}

.smr-compare-image-frame::before {
  content: "画像を読み込み中…";
  color: var(--pga-guide-text-muted);
  font-size: 13px;
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.smr-compare-image-frame .smr-compare-image {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
}

.smr-resource figcaption,
.smr-resource-caption {
  color: var(--pga-guide-text-muted);
  font-size: 13px;
  margin-top: 8px;
}

.smr-upload-input.is-disabled {
  opacity: 0.7;
  pointer-events: none;
}

.smr-video-shell {
  position: relative;
}

.smr-video-frame {
  background: linear-gradient(180deg, #1a1a1a, #111111);
  border-radius: 1px;
  overflow: hidden;
  box-shadow: 0 22px 55px rgba(0, 0, 0, 0.65);
  position: relative;
  contain: layout;
}

.smr-video-frame video {
  cursor: pointer;
}

.smr-video-controls {
  position: relative;
  margin-top: 16px;
  padding: 14px 20px;
  border-radius: 1px;
  background: linear-gradient(135deg, #1c1c1c, #121212);
  box-shadow:
    0 18px 42px rgba(0, 0, 0, 0.6),
    inset 0 0 0 1px rgba(255, 120, 0, 0.18);
  display: flex;
  align-items: center;
  gap: 18px;
  transition: opacity .22s ease, transform .22s ease;
}

.smr-video-controls::before {
  content: "";
  position: absolute;
  top: 0;
  left: 18px;
  right: 18px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--pga-guide-accent), transparent);
}

.smr-video-play {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  background: linear-gradient(135deg, #ff9b33, #ff7800, #e56700);
  display: grid;
  place-items: center;
  box-shadow: 0 0 16px rgba(255, 120, 0, 0.6);
  transition: transform .18s ease, box-shadow .2s ease;
}

.smr-video-play::before {
  content: "▶";
  font-size: 18px;
  color: #111111;
  margin-left: 2px;
}

.smr-video-play.is-playing::before {
  content: "❚❚";
  margin-left: 0;
}

.smr-video-play:hover,
.smr-video-play:focus {
  transform: scale(1.08);
  box-shadow: 0 0 26px rgba(255, 120, 0, 0.9);
}

.smr-video-track {
  flex: 1;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
  overflow: hidden;
  cursor: pointer;
  position: relative;
}

.smr-video-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #ff9b33, #ff7800);
  transition: width .1s linear;
}

.smr-video-time {
  font-size: 12px;
  font-weight: 700;
  color: #ffffff;
  min-width: 88px;
  text-align: right;
}

.smr-video-fullscreen {
  background: none;
  border: none;
  font-size: 18px;
  color: #ffffff;
  cursor: pointer;
  transition: color .2s ease;
}

.smr-video-fullscreen:hover,
.smr-video-fullscreen:focus {
  color: var(--pga-guide-accent);
}

.smr-video-shell.is-fs-inactive {
  cursor: none;
}

.smr-video-shell.is-fs-inactive .smr-video-controls {
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
}

.smr-video-shell:fullscreen,
.smr-video-shell:-webkit-full-screen {
  background: #000000;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.smr-video-shell:fullscreen .smr-video-frame video,
.smr-video-shell:-webkit-full-screen .smr-video-frame video {
  width: 100%;
  height: auto;
  max-height: 100vh;
  object-fit: contain;
}

.smr-video-shell:fullscreen .smr-video-controls,
.smr-video-shell:-webkit-full-screen .smr-video-controls {
  position: absolute;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  width: calc(100% - 40px);
  max-width: 900px;
}

.smr-step-card {
  display: grid;
  gap: var(--smr-space-4);
  grid-template-columns: auto 1fr;
  padding: var(--smr-space-6);
}

.smr-step-index {
  align-items: center;
  border-radius: 1px;
  display: inline-flex;
  font-size: 16px;
  font-weight: 800;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.smr-radio {
  align-items: center;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  cursor: pointer;
  display: inline-flex;
  gap: 8px;
  padding: 10px 12px;
}

.smr-answer-toggle {
  align-items: center;
  display: inline-flex;
  gap: 10px;
  margin-bottom: 8px;
}

.smr-answer-toggle span {
  color: var(--pga-guide-text-soft);
  font-weight: 700;
}

.smr-checkpoint-jump {
  align-items: end;
  background: linear-gradient(180deg, var(--pga-guide-panel), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  display: grid;
  gap: 12px;
  margin: 18px 0 14px;
  padding: 16px;
}

.smr-checkpoint-nav-shell {
  align-items: center;
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.08), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 120, 0, 0.14);
  border-radius: var(--smr-radius-card);
  display: grid;
  gap: var(--smr-space-4);
  grid-template-columns: minmax(0, 1fr) auto;
  margin: var(--smr-space-3) 0 var(--smr-space-5);
  padding: var(--smr-space-4);
}

.smr-checkpoint-nav-shell .smr-checkpoint-jump {
  align-items: center;
  background: transparent;
  border: 0;
  box-shadow: none;
  gap: 10px;
  margin: 0 0 0 auto;
  order: 2;
  padding: 0;
  width: auto;
}

.smr-checkpoint-top-nav {
  display: flex;
  flex: 1 1 auto;
  gap: 10px;
  justify-content: flex-start;
  margin: 0;
  order: 1;
}

.smr-checkpoint-bottom-nav {
  display: flex;
  gap: 12px;
  margin: 22px 0 12px;
}

.smr-button-compact {
  font-size: var(--smr-type-button-compact);
  min-height: 46px;
  padding: var(--smr-space-2) var(--smr-space-4);
}

.smr-checkpoint-top-nav .smr-button:disabled,
.smr-checkpoint-bottom-nav .smr-button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
  transform: none;
}

.smr-checkpoint-top-nav .smr-button:disabled:hover,
.smr-checkpoint-top-nav .smr-button:disabled:focus,
.smr-checkpoint-bottom-nav .smr-button:disabled:hover,
.smr-checkpoint-bottom-nav .smr-button:disabled:focus {
  box-shadow: none;
  opacity: 0.45;
  transform: none;
}

.smr-checkpoint-jump__label {
  color: var(--pga-guide-text-soft);
  font-size: 13px;
  font-weight: 700;
  margin: 0;
}

.smr-checkpoint-jump__controls {
  align-items: stretch;
  display: flex;
  gap: 12px;
}

.smr-checkpoint-jump__input {
  appearance: textfield;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--pga-guide-border-strong);
  border-radius: var(--smr-radius-button);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
  color: var(--pga-guide-text);
  color-scheme: dark;
  font-size: 16px;
  font-weight: 700;
  min-height: 48px;
  padding: 10px 12px;
  text-align: center;
  width: 88px;
}

.smr-checkpoint-jump__input:focus-visible {
  border-color: var(--pga-guide-accent);
  box-shadow: 0 0 0 3px rgba(255, 120, 0, 0.16);
  outline: none;
}

.smr-checkpoint-jump__input::-webkit-outer-spin-button,
.smr-checkpoint-jump__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.smr-checkpoint-jump__input::-webkit-outer-spin-button,
.smr-checkpoint-jump__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.smr-checkpoint-jump .smr-button {
  min-height: 48px;
  min-width: 112px;
  padding: 10px 18px;
}

.smr-radio:has(input:disabled) {
  cursor: not-allowed;
  opacity: 0.68;
}

.smr-radio input {
  accent-color: var(--pga-guide-accent);
}

.smr-history-list {
  display: grid;
  gap: 12px;
}

.smr-upload-card,
.smr-compare-card,
.smr-compare-pane {
  display: grid;
  gap: 14px;
}

.smr-model-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.smr-model-card {
  background: linear-gradient(180deg, var(--pga-guide-panel), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  display: grid;
  gap: 12px;
  padding: 16px;
}

.smr-model-card__meta {
  display: grid;
  gap: 8px;
}

.smr-model-card__meta .smr-chip {
  margin-bottom: 0;
  width: fit-content;
}

.smr-model-card img,
.smr-model-card .smr-compare-image-frame {
  border-radius: 1px;
  display: block;
  max-width: 100%;
  width: 100%;
}

.smr-upload-input {
  align-items: center;
  background: rgba(255, 255, 255, 0.03);
  border: 1px dashed var(--pga-guide-border-strong);
  cursor: pointer;
  display: inline-flex;
  font-size: 16px;
  font-weight: 700;
  justify-content: center;
  min-height: 56px;
  padding: 12px 16px;
}

.smr-upload-input input {
  display: none;
}

.smr-upload-preview {
  display: grid;
  gap: 12px;
}

#smr-app .smr-checkpoint-model-ref {
  margin-top: 16px;
}

#smr-app .smr-checkpoint-model-ref .smr-compare-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(72vh, 520px);
  object-fit: contain;
  object-position: center top;
}

#smr-app .smr-practice-instruction .smr-checkpoint-model-ref {
  margin-top: 14px;
}

#smr-app .smr-resource + .smr-checkpoint-model-ref,
#smr-app .smr-resource-list + .smr-checkpoint-model-ref {
  margin-top: 16px;
}

/* Checkpoint reference board — paired video + model image */
#smr-app .smr-checkpoint-ref-board {
  --smr-ref-panel-size: min(100%, 360px);
  margin-top: clamp(18px, 2.5vw, 24px);
  padding: clamp(16px, 2.2vw, 22px);
  border: 1px solid rgba(255, 120, 0, 0.24);
  border-radius: var(--smr-radius-card);
  background:
    linear-gradient(165deg, rgba(255, 120, 0, 0.07) 0%, rgba(255, 255, 255, 0.015) 42%, rgba(0, 0, 0, 0.22) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  width: 100%;
}

#smr-app .smr-checkpoint-ref-board__toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}

#smr-app .smr-checkpoint-ref-board__toggle {
  border: none;
  background: none;
  color: var(--pga-guide-accent-soft);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#smr-app .smr-checkpoint-ref-board__toggle:hover {
  color: var(--pga-guide-accent);
}

#smr-app .smr-checkpoint-ref-board__hidden-note {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--pga-guide-text-muted);
  text-align: center;
}

#smr-app .smr-checkpoint-ref-board__panels {
  display: grid;
  gap: clamp(18px, 3vw, 32px);
  justify-content: center;
  justify-items: stretch;
  width: 100%;
}

#smr-app .smr-checkpoint-ref-board--single .smr-checkpoint-ref-board__panels {
  grid-template-columns: minmax(0, var(--smr-ref-panel-size));
  justify-items: center;
  margin-inline: auto;
}

#smr-app .smr-checkpoint-ref-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  max-width: var(--smr-ref-panel-size);
  margin: 0 auto;
  min-width: 0;
}

#smr-app .smr-checkpoint-ref-panel__label {
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pga-guide-accent-soft);
  text-align: center;
}

#smr-app .smr-checkpoint-ref-panel__frame {
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 9 / 16;
  max-height: min(72vh, 660px);
  margin-inline: auto;
  border-radius: 12px;
  overflow: hidden;
  background: #050505;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.42),
    inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}

#smr-app .smr-checkpoint-ref-panel__video,
#smr-app .smr-checkpoint-ref-panel__video video,
#smr-app .smr-checkpoint-ref-panel__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
}

#smr-app .smr-checkpoint-ref-panel__video {
  background: #000;
}

#smr-app .smr-practice-instruction .smr-checkpoint-ref-board {
  margin-top: 16px;
}

@media (min-width: 769px) {
  #smr-app .smr-checkpoint-ref-board--pair {
    --smr-ref-panel-size: min(440px, calc((100% - 32px) / 2));
  }

  #smr-app .smr-checkpoint-ref-board--pair .smr-checkpoint-ref-board__panels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
    max-width: min(960px, 100%);
    margin-inline: auto;
  }

  #smr-app .smr-checkpoint-ref-board--pair .smr-checkpoint-ref-panel {
    max-width: none;
  }

  #smr-app .smr-checkpoint-ref-board--single {
    --smr-ref-panel-size: min(440px, 100%);
  }

  #smr-app .smr-checkpoint-ref-panel__label {
    font-size: 12px;
  }
}

@media (min-width: 1100px) {
  #smr-app .smr-checkpoint-ref-board--pair {
    --smr-ref-panel-size: min(480px, calc((100% - 40px) / 2));
  }

  #smr-app .smr-checkpoint-ref-board--pair .smr-checkpoint-ref-board__panels {
    max-width: min(1040px, 100%);
    gap: 40px;
  }
}

@media (max-width: 768px) {
  #smr-app .smr-checkpoint-ref-board--pair .smr-checkpoint-ref-board__panels {
    grid-template-columns: minmax(0, min(100%, 320px));
  }
}

.smr-upload-meta,
.smr-compare-label,
.smr-compare-select {
  display: grid;
  gap: 6px;
}

.smr-upload-meta span,
.smr-compare-label span,
.smr-compare-select span {
  color: var(--pga-guide-text-muted);
  font-size: 14px;
}

.smr-compare-select select {
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-button);
  color: var(--pga-guide-text);
  font-size: 16px;
  min-height: 48px;
  padding: 10px 12px;
  width: 100%;
}

.smr-compare-select select:focus-visible {
  border-color: var(--pga-guide-accent);
  box-shadow: 0 0 0 3px rgba(255, 120, 0, 0.16);
  outline: none;
}

.smr-compare-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.smr-history-item {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: 80px minmax(0, 1fr) auto;
}

.smr-banner-wrap {
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-card);
  box-shadow: var(--pga-guide-shadow);
  margin: 0 0 clamp(36px, 5vw, 52px);
  overflow: hidden;
}

.smr-banner {
  display: grid;
  gap: 18px;
  padding: clamp(20px, 3vw, 32px);
}

.smr-banner h3 {
  font-size: clamp(24px, 3.4vw, 34px);
}

.smr-banner-wrap--wide .smr-banner {
  min-height: 220px;
}

.smr-banner-actions {
  margin-top: clamp(18px, 2.5vw, 24px);
}

.smr-portal-cta-shell {
  margin: 16px 0 28px;
}

.smr-portal-cta-wrap {
  background: var(--pga-guide-bg);
  color: var(--pga-guide-text);
}

.smr-portal-cta-wrap .smr-admin-preview-bar {
  margin-bottom: 12px;
}

.smr-portal-cta-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) auto;
  gap: 28px;
  align-items: center;
  padding: 28px;
  border: 1px solid rgba(255, 155, 51, 0.22);
  border-radius: 1px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
    linear-gradient(135deg, rgba(255, 120, 0, 0.12), rgba(255, 210, 122, 0.04) 62%, rgba(255, 255, 255, 0.02));
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

.smr-portal-cta-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 28px;
  width: 120px;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 210, 122, 0.88), rgba(255, 120, 0, 0));
}

.smr-portal-cta__copy {
  display: grid;
  gap: 14px;
}

.smr-portal-cta__eyebrow {
  margin: 0;
  letter-spacing: 0.06em;
  font-size: 12px;
  font-weight: 700;
  color: var(--pga-guide-accent-soft);
  text-transform: uppercase;
}

.smr-portal-cta__title {
  margin: 0;
  font-size: clamp(28px, 4.2vw, 44px);
  line-height: 1.34;
  font-weight: 800;
  letter-spacing: 0;
  background: var(--pga-guide-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.smr-portal-cta__body {
  margin: 0;
  color: var(--pga-guide-text-soft);
  font-size: clamp(18px, 1.75vw, 21px);
  line-height: 1.95;
  font-weight: 400;
  max-width: 34em;
}

.smr-portal-cta__meta {
  display: grid;
  gap: 10px;
  margin-top: 4px;
}

.smr-portal-cta__score {
  display: inline-grid;
  justify-items: flex-start;
  gap: 4px;
}

.smr-portal-cta__score span {
  color: var(--pga-guide-text-muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.smr-portal-cta__score strong {
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1;
  font-weight: 800;
  background: var(--pga-guide-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.smr-portal-cta__detail {
  margin: 0;
  color: var(--pga-guide-text);
  font-size: 16px;
  line-height: 1.7;
  font-weight: 600;
}

.smr-portal-cta__actions {
  display: flex;
  justify-content: flex-end;
}

.smr-portal-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 82px;
  min-width: 320px;
  padding: 18px 30px;
  border-radius: 1px;
  border: none !important;
  background: var(--pga-guide-gradient);
  background-image: var(--pga-guide-gradient);
  color: #ffffff;
  text-decoration: none;
  font-weight: 800;
  font-size: 28px;
  line-height: 1.2;
  letter-spacing: 0;
  transition: transform 0.2s ease, opacity 0.2s ease, background 0.2s ease;
  box-shadow: 0 16px 36px rgba(255, 120, 0, 0.28);
  outline: none !important;
  -webkit-appearance: none;
  appearance: none;
  text-align: center;
}

.smr-portal-cta__button:hover,
.smr-portal-cta__button:focus,
.smr-portal-cta__button:active {
  transform: translateY(-1px);
  opacity: 0.92;
  border: none !important;
  outline: none !important;
  box-shadow: 0 22px 44px rgba(255, 120, 0, 0.36);
}

.smr-banner-follow-up {
  color: var(--pga-guide-text-muted);
  font-size: 14px;
  margin-top: 10px;
}

.smr-banner-identity {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: grid;
  gap: 6px;
  margin-top: 14px;
  padding-top: 14px;
}

.smr-banner-identity strong {
  color: var(--pga-guide-accent-soft);
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 800;
}

.smr-banner-identity p {
  color: var(--pga-guide-text-soft);
  margin: 0;
}

.smr-score-pill,
.smr-score-pill:visited {
  align-items: center;
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  box-shadow: var(--pga-guide-shadow);
  color: var(--pga-guide-text);
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 10px 16px;
  text-decoration: none;
}

.smr-card--step {
  max-width: 760px;
}

.smr-step-progress {
  color: var(--pga-guide-accent-soft);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
  text-transform: uppercase;
}

.smr-score-pill__value {
  color: var(--pga-guide-text);
  font-size: 18px;
  font-weight: 800;
}

.smr-score-pill__note {
  color: var(--pga-guide-text-muted);
  font-size: 12px;
  font-weight: 700;
  width: 100%;
}

.smr-link,
.smr-link:visited {
  color: var(--pga-guide-accent-soft);
  font-weight: 700;
  text-decoration: none;
}

.smr-link:hover,
.smr-link:focus {
  color: #ffd7a8;
}

@media (max-width: 768px) {
  html.smr-consumer-browser-shell .smr-consumer-shell > .smr-app {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    border-radius: 0;
    border-left: none;
    border-right: none;
    box-shadow: none;
  }

  .smr-page,
  .smr-page--practice,
  .smr-locked-message {
    flex: 1 1 auto;
    min-height: 0;
  }

  .smr-page,
  .smr-locked-message {
    padding: var(--smr-space-5) var(--smr-space-4);
  }

  .smr-header-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .smr-step-card,
  .smr-history-item,
  .smr-section-head,
  .smr-compare-grid,
  .smr-model-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .smr-section-head {
    display: grid;
  }

  .smr-actions,
  .smr-checkpoint-nav-shell,
  .smr-checkpoint-top-nav,
  .smr-checkpoint-bottom-nav,
  .smr-radio-row,
  .smr-locked-actions,
  .smr-admin-preview-actions,
  .smr-banner-actions,
  .smr-checkpoint-jump__controls,
  .smr-results-actions {
    flex-direction: column;
  }

  .smr-portal-cta-card {
    grid-template-columns: minmax(0, 1fr);
    padding: 22px 20px;
    gap: 18px;
  }

  .smr-portal-cta-card::before {
    left: 20px;
    width: 96px;
  }

  .smr-portal-cta__actions {
    justify-content: stretch;
  }

  .smr-portal-cta__meta {
    gap: 8px;
  }

  .smr-portal-cta__detail {
    font-size: 15px;
  }

  .smr-checkpoint-nav-shell .smr-checkpoint-jump {
    margin: 0;
    order: 1;
    width: 100%;
  }

  .smr-checkpoint-top-nav {
    order: 2;
  }

  .smr-checkpoint-nav-shell {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr);
  }

  .smr-checkpoint-jump__label {
    font-size: 14px;
  }

  .smr-admin-preview-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .smr-button,
  .smr-banner-button,
  .smr-resource-button {
    font-size: clamp(16px, 4vw, 18px);
    min-height: 52px;
    width: 100%;
  }

  .smr-portal-cta__button {
    min-width: 0;
    width: 100%;
    font-size: 20px;
  }

  .smr-header-home {
    width: 100%;
  }

  .smr-video-controls {
    gap: 14px;
    padding: 12px 14px;
  }

  .smr-video-time {
    min-width: 74px;
  }

  .smr-history-item {
    align-items: flex-start;
  }

  .smr-checkpoint-jump__input {
    width: 100%;
  }
}

/* -------------------------------------------------------------------------
   Swing analyzer workspace (video frame + canvas markup)
   ------------------------------------------------------------------------- */

body.smr-analyzer-open {
  overflow: hidden;
}

/* Reduce iOS background scroll while the analyzer is open on phone. */
body.smr-analyzer-open.smr-analyzer-open--mobile {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
}

.smr-analyzer {
  position: fixed;
  inset: 0;
  z-index: 100000;
  /* Analyzer mounts on body — mirror shell design tokens */
  --pga-guide-bg: #000000;
  --pga-guide-text: #ffffff;
  --pga-guide-text-soft: rgba(255, 255, 255, 0.9);
  --pga-guide-text-muted: rgba(255, 255, 255, 0.72);
  --pga-guide-accent: #ff7800;
  --pga-guide-accent-soft: #ffb15c;
  --pga-guide-gradient: linear-gradient(135deg, #ff7800 0%, #ff9b33 48%, #ffd27a 100%);
  --smr-radius-card: 2px;
  --smr-radius-button: 2px;
  --smr-radius-media: 4px;
  --smr-radius-analyzer-panel: 4px;
  --smr-surface-page: #000000;
  --smr-surface-panel: #0d1118;
  --smr-surface-border: rgba(255, 255, 255, 0.12);
  --smr-surface-border-strong: rgba(255, 255, 255, 0.22);
  --smr-surface-accent-border: rgba(255, 120, 0, 0.55);
  --smr-analyzer-bg: var(--smr-surface-page);
  --smr-analyzer-panel: var(--smr-surface-panel);
  --smr-analyzer-border: var(--smr-surface-border);
  --smr-analyzer-text: var(--pga-guide-text);
  --smr-analyzer-header-h: 56px;
  --smr-analyzer-footer-h: 72px;
  --smr-analyzer-controls-h: 104px;
  --smr-analyzer-workspace-gap: 16px;
  --smr-analyzer-stage-max: calc(
    100dvh - var(--smr-analyzer-header-h) - var(--smr-analyzer-controls-h) - 32px
  );
  --smr-analyzer-header-h: 56px;
  --smr-analyzer-footer-h: 72px;
  --smr-analyzer-controls-h: 104px;
  --smr-analyzer-workspace-gap: 16px;
  --smr-analyzer-stage-max: calc(
    100dvh - var(--smr-analyzer-header-h) - var(--smr-analyzer-controls-h) - 32px
  );
  --smr-type-body: clamp(15.5px, 1.5vw, 17px);
  --smr-lh-body: 1.8;
  --smr-lh-control: 1.4;
  font-family: "Noto Sans JP", sans-serif;
}

.smr-analyzer,
.smr-analyzer * {
  font-family: "Noto Sans JP", sans-serif;
}

.smr-analyzer__backdrop {
  position: absolute;
  inset: 0;
  background: var(--pga-guide-bg);
}

.smr-analyzer__panel {
  position: absolute;
  left: 0;
  top: 0;
  transform: none;
  width: 100%;
  width: 100vw;
  height: 100%;
  height: 100vh;
  height: 100dvh;
  max-width: none;
  max-height: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--smr-analyzer-bg);
  color: var(--pga-guide-text-soft);
  border-radius: 0;
  box-shadow: none;
  border: 0;
}

.smr-analyzer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-shrink: 0;
  min-height: var(--smr-analyzer-header-h, 56px);
  padding: 16px 18px;
  border-bottom: 1px solid var(--smr-surface-border-strong);
  background: var(--smr-analyzer-bg);
}

.smr-analyzer__title {
  margin: 0;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 800;
  color: var(--smr-analyzer-text);
  letter-spacing: 0.012em;
  line-height: 1.38;
}

.smr-analyzer__close {
  border: none;
  background: transparent;
  color: var(--pga-guide-text-muted);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--smr-radius-button);
}

.smr-analyzer__close:hover,
.smr-analyzer__close:focus {
  color: var(--pga-guide-text);
  background: rgba(255, 120, 0, 0.12);
}

.smr-analyzer__hint {
  font-size: 15px;
  color: var(--pga-guide-text-muted);
  line-height: 1.65;
  word-break: break-all;
}

.smr-analyzer__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 16px 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.smr-analyzer__workspace,
.smr-analyzer [data-workspace] {
  min-height: 100%;
  height: auto;
  flex: 0 0 auto;
}

.smr-analyzer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: 24px 32px;
  align-items: stretch;
  min-height: 0;
  height: auto;
  align-content: start;
}

.smr-analyzer__row--top {
  margin-bottom: 0;
}

.smr-analyzer__file-input-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

.smr-analyzer__col-visual {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.smr-analyzer__video-section[data-video-section] {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.smr-analyzer.smr-analyzer--session-video-reuse .smr-analyzer__row--top {
  gap: 8px;
}

.smr-analyzer__col-tools {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
  justify-content: flex-start;
}

.smr-analyzer__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.smr-analyzer__row[hidden],
.smr-analyzer__grid[hidden] {
  display: none !important;
}

.smr-analyzer__hint {
  font-size: 15px;
  color: var(--pga-guide-text-muted);
  line-height: 1.65;
  word-break: break-all;
}

.smr-analyzer__stage {
  position: relative;
  display: block;
  max-width: 100%;
  margin: 0 auto;
  align-self: center;
  background: #030508;
  border-radius: var(--smr-radius-media);
  overflow: hidden;
  max-height: min(52vh, 560px);
  border: 1px solid var(--smr-surface-border-strong);
  line-height: 0;
}

.smr-analyzer__stage-scroll {
  display: block;
  overflow: auto;
  max-height: min(52vh, 560px);
  -webkit-overflow-scrolling: touch;
  touch-action: none;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__col-visual .smr-analyzer__stage {
  display: flex;
  flex-direction: column;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__col-visual .smr-analyzer__stage-scroll {
  max-height: none;
  height: 100%;
  flex: 1 1 auto;
  min-height: 0;
}

.smr-analyzer__zoom-outer {
  display: block;
  margin: 0 auto;
  position: relative;
}

.smr-analyzer__zoom-inner {
  position: relative;
  display: block;
  line-height: 0;
  transform-origin: top left;
}

.smr-analyzer__video {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

.smr-analyzer__row--zoom {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.smr-analyzer__zoom-meta {
  font-size: 13px;
  color: var(--pga-guide-text-muted);
  flex: 1 1 auto;
  min-width: 0;
}

.smr-analyzer__zoom-btn {
  min-width: 40px;
  padding-left: 12px;
  padding-right: 12px;
}

.smr-analyzer__canvas-stack {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  line-height: 0;
}

.smr-analyzer__canvas-stack--inactive {
  opacity: 0;
  pointer-events: none;
}

.smr-analyzer__scrub-preview {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  width: 100%;
  height: auto;
  pointer-events: none;
  display: block;
}

.smr-analyzer.smr-analyzer--scrubbing .smr-analyzer__video {
  pointer-events: none;
  visibility: hidden;
}

.smr-analyzer--mobile.smr-analyzer--practice-freeform:not(.smr-analyzer--coach-mode).smr-analyzer--scrubbing .smr-analyzer__video {
  visibility: hidden !important;
  pointer-events: none;
}

.smr-analyzer.smr-analyzer--scrubbing .smr-analyzer__scrub-preview {
  visibility: visible;
  z-index: 2;
}

.smr-analyzer.smr-analyzer--scrubbing.smr-analyzer--practice-freeform .smr-analyzer__canvas-stack--active {
  pointer-events: none;
  visibility: hidden;
}

.smr-analyzer__canvas-stack--active {
  opacity: 1;
  pointer-events: none;
}

.smr-analyzer__canvas-stack--active .smr-analyzer__canvas-draw {
  pointer-events: auto;
  cursor: crosshair;
  touch-action: none;
  z-index: 4;
}

.smr-analyzer__canvas-stack--active .smr-analyzer__canvas-base {
  z-index: 3;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame .smr-analyzer__canvas-stack--active {
  touch-action: none;
}

.smr-analyzer__canvas-stack--calibration {
  opacity: 1;
  pointer-events: auto;
}

.smr-analyzer__canvas-stack--calibration .smr-analyzer__canvas-draw {
  pointer-events: auto;
  cursor: crosshair;
  touch-action: none;
}

.smr-analyzer__calibration-markers {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  pointer-events: none;
  overflow: visible;
}

.smr-analyzer__calibration-marker {
  position: absolute;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 -11px;
  border-radius: 50%;
  background: #ff7800;
  border: 2px solid #fffaf5;
  box-shadow: 0 0 0 1px rgba(255, 120, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
}

.smr-analyzer__calibration-marker.is-active {
  width: 26px;
  height: 26px;
  margin: -13px 0 0 -13px;
  box-shadow: 0 0 0 2px rgba(255, 177, 92, 0.65);
}

.smr-analyzer__calibration-marker-label {
  color: #fffaf5;
  font: bold 12px/1 system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

.smr-analyzer__cal-armed-hint--retry {
  color: #ffb15c;
}

.smr-analyzer--in-app-browser.smr-analyzer--calibration-active
  .smr-analyzer__canvas-stack--calibration {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.smr-analyzer--in-app-browser.smr-analyzer--cal-dom-markers
  .smr-analyzer__canvas-stack--calibration
  .smr-analyzer__canvas-draw {
  pointer-events: auto;
}

.smr-analyzer__calibration-guide {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}

.smr-analyzer__calibration-guide-line {
  position: absolute;
  display: block;
  background: rgba(255, 255, 255, 0.7);
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.65);
}

.smr-analyzer__calibration-guide-line--v {
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  transform: translateX(-50%);
}

.smr-analyzer__calibration-guide-line--h {
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  transform: translateY(-50%);
}

.smr-analyzer__calibration-guide-line--head,
.smr-analyzer__calibration-guide-line--feet {
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(255, 177, 92, 0.78);
}

.smr-analyzer__calibration-guide-line--head {
  top: 35%;
}

.smr-analyzer__calibration-guide-line--feet {
  top: 84%;
}

/* Address align mode: fixed center crosshair on stage viewport (not transformed with video). */
.smr-analyzer__address-align-guide {
  position: absolute;
  inset: 0;
  z-index: 12;
  pointer-events: none;
}

.smr-analyzer__address-align-guide-line {
  position: absolute;
  display: block;
  background: rgba(255, 120, 0, 0.88);
  box-shadow: 0 0 12px rgba(255, 120, 0, 0.45);
}

.smr-analyzer__address-align-guide-line--v {
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  transform: translateX(-50%);
}

.smr-analyzer__address-align-guide-line--h {
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  transform: translateY(-50%);
}

.smr-analyzer__address-align-guide::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ff7800;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 16px rgba(255, 120, 0, 0.75);
}

.smr-analyzer__address-align-controls {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0;
}

.smr-analyzer__address-align-controls[hidden] {
  display: none !important;
}

.smr-analyzer__address-align-title {
  margin: 0;
  font-size: 1.28rem;
  font-weight: 850;
  line-height: 1.38;
  color: var(--pga-guide-text);
}

.smr-analyzer__address-align-copy,
.smr-analyzer__address-align-helper {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
}

.smr-analyzer__address-align-zoom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 42px 42px auto;
  align-items: center;
  gap: 8px;
}

.smr-analyzer__address-align-lock {
  position: relative;
  z-index: 5;
  min-height: 64px;
  width: 100%;
  font-size: 18px;
  font-weight: 800;
  border: none;
  background: linear-gradient(135deg, #ff7800 0%, #ff9b33 48%, #ffb15c 100%);
  color: #0c0c0c;
  box-shadow: 0 10px 24px rgba(255, 120, 0, 0.42);
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
}

.smr-analyzer__address-align-lock:active {
  transform: translateY(1px);
  box-shadow: 0 6px 16px rgba(255, 120, 0, 0.36);
}

/* Mobile: while「画面を移動」is on, let one-finger pan hit the stage under the draw layer. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-view-pan .smr-analyzer__canvas-stack--active .smr-analyzer__canvas-draw {
  pointer-events: none !important;
  touch-action: auto;
}

/* Calibration (mobile): move/zoom — pass drags through draw overlay to the stage. */
.smr-analyzer.smr-analyzer--calibration-input-move .smr-analyzer__canvas-stack--calibration .smr-analyzer__canvas-draw {
  pointer-events: none !important;
  touch-action: auto;
}

.smr-analyzer__canvas-base,
.smr-analyzer__canvas-draw {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.smr-analyzer__canvas-base {
  pointer-events: none;
  z-index: 3;
}

.smr-analyzer__canvas-draw {
  z-index: 4;
}

.smr-analyzer__seek-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  background: rgba(255, 255, 255, 0.03);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

.smr-analyzer__seek-stack[hidden] {
  display: none !important;
}

.smr-analyzer__seek-stack[hidden] {
  display: none !important;
}

.smr-analyzer__frame-step {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  padding: 10px 12px;
  border-bottom: 1px solid var(--smr-surface-border);
  background: rgba(0, 0, 0, 0.35);
}

.smr-analyzer .smr-analyzer__frame-nav.smr-button.smr-button-secondary {
  flex: 0 0 auto;
  width: 48px;
  min-width: 48px;
  height: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--smr-radius-button);
  line-height: 0;
  color: var(--pga-guide-accent-soft) !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid var(--smr-surface-border-strong) !important;
  box-shadow: none;
  font-size: 0;
}

.smr-analyzer .smr-analyzer__frame-nav.smr-button.smr-button-secondary:hover:not(:disabled) {
  color: var(--pga-guide-accent) !important;
  background: rgba(255, 120, 0, 0.14) !important;
  border-color: var(--smr-surface-accent-border) !important;
  box-shadow: none;
  transform: translateY(-1px);
}

.smr-analyzer .smr-analyzer__frame-nav.smr-button.smr-button-secondary:focus:not(:focus-visible) {
  box-shadow: none;
  transform: none;
}

.smr-analyzer .smr-analyzer__frame-nav.smr-button.smr-button-secondary:disabled {
  opacity: 0.4;
  transform: none;
  box-shadow: none;
  color: var(--pga-guide-text-muted) !important;
  border-color: var(--smr-surface-border) !important;
  background: rgba(255, 255, 255, 0.02) !important;
}

.smr-analyzer .smr-analyzer__frame-nav.smr-button.smr-button-secondary:disabled:hover {
  transform: none;
  box-shadow: none;
}

.smr-analyzer__frame-nav-icon {
  display: block;
  flex-shrink: 0;
  pointer-events: none;
}

.smr-analyzer__seek-label {
  display: block;
  width: 100%;
  min-width: 0;
  padding: 10px 12px 12px;
  box-sizing: border-box;
}

.smr-analyzer__seek {
  width: 100%;
  accent-color: #ff7800;
  touch-action: none;
}

.smr-analyzer.smr-analyzer--scrubbing .smr-analyzer__seek {
  touch-action: none;
}

.smr-analyzer__scrub-touch {
  display: none;
  padding: 10px 12px 12px;
  touch-action: none;
  position: relative;
  z-index: 2;
}

.smr-analyzer.smr-analyzer--touch-scrub .smr-analyzer__seek-stack {
  position: relative;
}

.smr-analyzer.smr-analyzer--touch-scrub .smr-analyzer__scrub-touch {
  display: block;
}

.smr-analyzer.smr-analyzer--touch-scrub .smr-analyzer__seek-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
  visibility: hidden;
}

.smr-analyzer.smr-analyzer--touch-scrub .smr-analyzer__seek {
  opacity: 0;
  pointer-events: none;
  touch-action: none;
  width: 1px;
  height: 1px;
}

.smr-analyzer__scrub-track {
  position: relative;
  height: 44px;
  display: flex;
  align-items: center;
  touch-action: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  --scrub-ratio: 0;
}

.smr-analyzer__scrub-track::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 4px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.2);
  pointer-events: none;
}

.smr-analyzer__scrub-fill {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 4px;
  width: 0%;
  border-radius: 2px;
  background: #ff7800;
  pointer-events: none;
  z-index: 1;
}

.smr-analyzer__scrub-thumb {
  position: absolute;
  top: 50%;
  left: 0;
  width: 22px;
  height: 22px;
  transform: translate3d(0, -50%, 0);
  border-radius: 50%;
  background: #ff7800;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
  pointer-events: none;
  z-index: 2;
  will-change: transform;
}

.smr-analyzer.smr-analyzer--scrub-lock-scroll .smr-analyzer__body,
.smr-analyzer.smr-analyzer--scrub-lock-scroll .smr-analyzer__seek-stack,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--scrub-lock-scroll.smr-analyzer--mobile-prelock-scroll [data-workspace] {
  overflow: hidden !important;
  touch-action: none;
  overscroll-behavior: none;
}

.smr-analyzer__help {
  margin: 0;
  font-size: 15px;
  color: var(--pga-guide-text-soft);
  line-height: 1.75;
}

.smr-analyzer__help strong {
  color: var(--pga-guide-text);
}

.smr-analyzer__help--compact {
  font-size: 15px;
  color: var(--pga-guide-text-soft);
  line-height: 1.7;
  padding: 12px 14px;
  border-radius: var(--smr-radius-card);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--smr-surface-border);
}

.smr-analyzer__hint-details {
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  background: rgba(255, 255, 255, 0.03);
  padding: 0 12px;
}

.smr-analyzer__hint-summary {
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  color: var(--pga-guide-accent-soft);
  padding: 10px 4px;
  list-style: none;
}

.smr-analyzer__hint-summary::-webkit-details-marker {
  display: none;
}

.smr-analyzer__hint-body {
  font-size: 15px;
  color: var(--pga-guide-text-soft);
  line-height: 1.75;
  padding: 0 4px 12px;
}

.smr-analyzer__tools-card {
  padding: 14px 14px 16px;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  background: rgba(255, 255, 255, 0.04);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.smr-analyzer__tools-card[hidden] {
  display: none !important;
}

.smr-analyzer__calibration-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 14px 16px;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-accent-border);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.smr-analyzer__calibration-card[hidden] {
  display: none !important;
}

.smr-analyzer__calibration-title {
  margin: 0;
  color: #ffffff;
  font-size: 1rem;
  line-height: 1.35;
  font-weight: 800;
}

.smr-analyzer__calibration-copy {
  color: var(--pga-guide-text-soft);
  font-size: 15px;
  line-height: 1.75;
}

.smr-analyzer__calibration-anchors {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-analyzer__calibration-anchor {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 9px;
  border-radius: 2px;
  border: 1px solid var(--smr-surface-border);
  color: var(--pga-guide-text-muted);
  background: rgba(255, 255, 255, 0.04);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 700;
}

.smr-analyzer__calibration-anchor.is-active {
  color: #fff7ed;
  border-color: rgba(255, 177, 92, 0.72);
  background: rgba(255, 120, 0, 0.2);
}

.smr-analyzer__calibration-anchor.is-done {
  color: #dcfce7;
  border-color: rgba(34, 197, 94, 0.55);
  background: rgba(22, 101, 52, 0.32);
}

.smr-analyzer__calibration-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.smr-analyzer__calibration-step {
  display: none;
  margin: 0 0 6px;
  padding: 8px 10px;
  border-radius: var(--smr-radius-card);
  background: rgba(255, 120, 0, 0.12);
  border: 1px solid rgba(255, 120, 0, 0.38);
  color: #fff7ed;
  font-weight: 800;
  font-size: 15px;
  line-height: 1.45;
}

.smr-analyzer__calibration-step:not([hidden]) {
  display: block;
}

.smr-analyzer__calibration-longhelp {
  margin: 0;
  padding: 0;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  background: rgba(255, 255, 255, 0.03);
}

.smr-analyzer__calibration-longhelp[hidden] {
  display: none !important;
}

.smr-analyzer__calibration-longhelp-summary {
  cursor: pointer;
  font-size: 14px;
  font-weight: 800;
  color: var(--pga-guide-accent-soft);
  padding: 8px 12px;
  list-style: none;
}

.smr-analyzer__calibration-longhelp-summary::-webkit-details-marker {
  display: none;
}

.smr-analyzer__calibration-longhelp-body {
  font-size: 15px;
  color: var(--pga-guide-text-soft);
  line-height: 1.75;
  padding: 0 12px 12px;
}

.smr-analyzer__calibration-debug {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: var(--smr-radius-card);
  border: 1px dashed var(--smr-surface-border);
  background: rgba(0, 0, 0, 0.64);
}

.smr-analyzer__calibration-debug[hidden] {
  display: none !important;
}

.smr-analyzer__calibration-debug-title {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  color: #ffb15c;
  letter-spacing: 0.04em;
}

.smr-analyzer__calibration-debug-grid {
  display: grid;
  grid-template-columns: minmax(90px, auto) 1fr;
  gap: 5px 10px;
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
}

.smr-analyzer__calibration-debug-grid dt {
  color: var(--pga-guide-text-muted);
  font-weight: 700;
}

.smr-analyzer__calibration-debug-grid dd {
  margin: 0;
  color: var(--pga-guide-text-soft);
  overflow-wrap: anywhere;
}

.smr-analyzer__calibration-debug-json {
  margin: 0;
  max-height: 160px;
  overflow: auto;
  padding: 10px;
  border-radius: var(--smr-radius-card);
  background: rgba(0, 0, 0, 0.85);
  color: var(--pga-guide-text-soft);
  font-size: 11px;
  line-height: 1.45;
}

.smr-analyzer__calibration-debug-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-analyzer--calibration-active .smr-analyzer__stage {
  max-height: min(72vh, 760px);
}

.smr-analyzer--calibration-invalid .smr-analyzer__calibration-copy {
  white-space: pre-line;
}

.smr-analyzer__cal-armed-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  padding: 10px 16px;
  border-radius: var(--smr-radius-card);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
  color: #000000;
  background: linear-gradient(180deg, #fff3d6, #ffc14a);
  border: 1px solid rgba(255, 160, 60, 0.85);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

@media (min-width: 769px) {
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active .smr-analyzer__panel {
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active .smr-analyzer__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active [data-workspace] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active .smr-analyzer__grid {
    flex: 0 1 auto;
    min-height: 0;
    overflow: visible;
    align-items: start;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active .smr-analyzer__col-visual {
    min-height: 0;
    flex: 0 1 auto;
    align-self: flex-start;
    overflow: visible;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active .smr-analyzer__col-tools {
    position: sticky;
    top: 0;
    align-self: stretch;
    flex: 1 1 auto;
    min-height: 0;
    max-height: min(calc(96vh - 220px), 880px);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 24px;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active .smr-analyzer__calibration-card {
    max-height: none;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active .smr-analyzer__calibration-copy {
    font-size: 13px;
    line-height: 1.45;
  }

  /* Desktop: wizard hides analyzer chrome so the right column is only the current step. */
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard .smr-analyzer__hint-details,
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard .smr-analyzer__tools-card,
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard .smr-analyzer__practice-card,
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard .smr-analyzer__actions,
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard .smr-analyzer__row--zoom {
    display: none !important;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard.smr-analyzer--calibration-anchors .smr-analyzer__seek-stack {
    display: none !important;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard .smr-analyzer__col-tools {
    align-self: stretch;
    flex: 1 1 auto;
    min-height: 0;
    max-height: min(calc(96vh - 220px), 880px);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 24px;
  }

  /* Desktop calibration wizard: keep seek under the stage inside the panel. */
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard .smr-analyzer__cal-flow-visual {
    flex: 1 1 auto;
    min-height: 0;
    max-height: min(62vh, 680px);
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard .smr-analyzer__cal-flow-visual .smr-analyzer__stage {
    flex: 0 1 auto;
    max-height: min(48vh, 520px);
    min-height: 200px;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-wizard .smr-analyzer__cal-flow-seek {
    flex-shrink: 0;
  }

  /* Desktop assessment: expand visual column; keep transport + tools reachable. */
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__panel {
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill [data-workspace] {
    flex: 0 0 auto;
    min-height: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__grid {
    flex: 0 1 auto;
    min-height: 0;
    overflow: visible;
    align-items: start;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__col-visual {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 0 1 auto;
    align-self: flex-start;
    overflow: visible;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__video-section[data-video-section] {
    display: flex;
    flex-direction: column;
    flex: 0 1 auto;
    min-height: 0;
    overflow: visible;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__col-visual .smr-analyzer__stage {
    flex: 0 1 auto;
    min-height: 0;
    max-height: var(--smr-analyzer-stage-max);
    align-self: center;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill:not(.smr-analyzer--frame-locked)
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    min-height: 0;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active.smr-analyzer--calibration-wizard
    .smr-analyzer__col-tools
    .smr-analyzer__calibration-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active.smr-analyzer--calibration-wizard
    .smr-analyzer__col-tools
    .smr-analyzer__calibration-actions
    .smr-button {
    width: 100%;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__row--zoom,
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__seek-stack,
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill [data-analyzer-freeze-row] {
    flex-shrink: 0;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__zoom-outer {
    margin-left: auto;
    margin-right: auto;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__col-tools {
    align-self: stretch;
    flex: 1 1 auto;
    min-height: 0;
    max-height: calc(100dvh - var(--smr-analyzer-header-h) - 24px);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 24px;
    gap: 12px;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--frame-locked .smr-analyzer__col-tools {
    max-height: calc(100dvh - var(--smr-analyzer-header-h) - var(--smr-analyzer-footer-h) - 24px);
  }

  /* Desktop: portrait phone video — narrow visual column */
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--desktop-portrait .smr-analyzer__col-visual {
    max-width: var(--smr-portrait-visual-width, min(520px, 48vw));
    flex: 0 1 auto;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--desktop-portrait .smr-analyzer__col-visual .smr-analyzer__stage {
    width: var(--smr-portrait-stage-width, fit-content);
    max-width: 100%;
    height: var(--smr-portrait-stage-height, auto);
    max-height: var(--smr-portrait-stage-max-height, none);
    align-self: center;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--desktop-portrait .smr-analyzer__zoom-outer {
    margin-left: auto;
    margin-right: auto;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--desktop-portrait.smr-analyzer--calibration-active
    .smr-analyzer__video-section[data-video-section] {
    flex: 0 0 auto;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--desktop-portrait.smr-analyzer--calibration-active
    .smr-analyzer__cal-visual-bundle {
    flex: 0 0 auto;
    overflow: visible;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--desktop-portrait.smr-analyzer--calibration-active
    .smr-analyzer__col-visual {
    flex: 0 1 auto;
    align-self: flex-start;
  }

  /* Desktop: scroll stage inside bundle; keep freeze + transport visible */
  .smr-analyzer:not(.smr-analyzer--mobile) .smr-analyzer__col-visual {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .smr-analyzer:not(.smr-analyzer--mobile) .smr-analyzer__video-section[data-video-section] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active .smr-analyzer__cal-visual-bundle {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--calibration-active:not(.smr-analyzer--desktop-portrait)
    .smr-analyzer__cal-visual-bundle {
    flex: 1 1 auto;
    overflow: auto;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--frame-locked
    .smr-analyzer__seek-stack,
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--frame-locked
    .smr-analyzer__row--zoom {
    display: none !important;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--frame-locked
    [data-analyzer-freeze-row] {
    display: block;
    margin-top: 8px;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--frame-locked
    .smr-analyzer__freeze-btn {
    width: 100%;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill .smr-analyzer__cal-visual-bundle {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--frame-locked
    .smr-analyzer__cal-visual-bundle {
    overflow: visible;
  }

  /* Post-cal pre-lock: portrait column hugs video */
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait:not(
      .smr-analyzer--frame-locked
    )
    .smr-analyzer__col-visual {
    flex: 0 1 auto;
    align-self: flex-start;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait:not(
      .smr-analyzer--frame-locked
    )
    .smr-analyzer__cal-visual-bundle {
    flex: 0 0 auto;
    overflow: visible;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait:not(
      .smr-analyzer--frame-locked
    )
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: var(--smr-portrait-stage-max-height, none);
    height: var(--smr-portrait-stage-height, auto);
  }

  /* Frame-locked drawing: stop video section growing; cap visual column */
  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--frame-locked.smr-analyzer--desktop-portrait
    .smr-analyzer__video-section[data-video-section] {
    flex: 0 0 auto;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--frame-locked.smr-analyzer--desktop-portrait
    .smr-analyzer__col-visual {
    flex: 0 1 auto;
    align-self: flex-start;
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--frame-locked.smr-analyzer--desktop-portrait
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: var(--smr-portrait-stage-max-height, none);
    height: var(--smr-portrait-stage-height, auto);
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait:not(
      .smr-analyzer--frame-locked
    )
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: var(--smr-portrait-stage-max-height, none);
    width: var(--smr-portrait-stage-width, fit-content);
    max-width: 100%;
    height: var(--smr-portrait-stage-height, auto);
  }

  .smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    width: var(--smr-portrait-stage-width, fit-content);
    max-width: 100%;
    height: var(--smr-portrait-stage-height, auto);
  }

  .smr-analyzer:not(.smr-analyzer--mobile) .smr-analyzer__col-visual [data-analyzer-freeze-row] {
    flex-shrink: 0;
  }

  .smr-analyzer:not(.smr-analyzer--mobile) .smr-analyzer__col-tools .smr-analyzer__actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
    background: var(--pga-guide-bg);
    padding-top: 8px;
    margin-top: 4px;
    border-top: 1px solid var(--smr-surface-border);
  }
}

/* Hide generic frame lock during guided calibration (all platforms). */
.smr-analyzer.smr-analyzer--calibration-wizard [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--calibration-active.smr-analyzer--calibration-video [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--calibration-active.smr-analyzer--calibration-address [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--calibration-active.smr-analyzer--calibration-anchors [data-analyzer-freeze-row] {
  display: none !important;
}

/* Desktop/tablet workspace redesign (>=769px only; scoped to smr-analyzer--desktop-workspace) */
@media (min-width: 769px) {
  .smr-analyzer--desktop-workspace .smr-analyzer__panel {
    left: 0;
    top: 0;
    transform: none;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    max-height: none;
    max-width: none;
    border-radius: 0;
    border: 0;
    box-shadow: none;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__head {
    position: sticky;
    top: 0;
    z-index: 20;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__body {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: max(32px, env(safe-area-inset-bottom, 0px));
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .smr-analyzer--desktop-workspace [data-workspace] {
    min-height: auto;
    height: auto;
    flex: 0 0 auto;
    max-width: 1320px;
    width: 100%;
    margin-inline: auto;
  }

  /* Default workbench grid — single column narrow tablet */
  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    align-items: start;
    gap: clamp(16px, 2vw, 24px);
    height: auto;
    min-height: auto;
    align-content: start;
    max-width: 560px;
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workbench [data-desktop-workflow-pane] {
    display: grid;
    gap: 14px;
    min-width: 0;
  }

  .smr-analyzer--desktop-workbench [data-desktop-stage-pane] {
    width: 100%;
    max-width: 560px;
    margin-inline: auto;
    display: grid;
    justify-items: center;
    gap: 12px;
    min-width: 0;
  }

  .smr-analyzer--desktop-workbench [data-desktop-inspector-pane] {
    width: 100%;
    display: grid;
    justify-items: stretch;
    gap: 12px;
    position: static;
    max-height: none;
    overflow: visible;
    padding-bottom: 0;
    min-width: 0;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-step {
    width: 100%;
    margin-inline: 0;
    padding: 16px 18px;
    border: 1px solid var(--smr-surface-border-strong);
    border-top: 3px solid var(--pga-guide-accent);
    border-radius: var(--smr-radius-card);
    background: rgba(255, 255, 255, 0.04);
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-checklist {
    margin: 0;
    padding: 0 0 0 18px;
    color: var(--pga-guide-text-soft);
    font-size: 15px;
    line-height: 1.75;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-checklist li {
    margin-bottom: 6px;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__stage {
    width: min(100%, 520px);
    max-height: min(72vh, 780px);
    margin-inline: auto;
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.1);
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__seek-stack,
  .smr-analyzer--desktop-workbench .smr-analyzer__row--zoom,
  .smr-analyzer--desktop-workbench [data-analyzer-freeze-row] {
    width: min(100%, 520px);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__freeze-btn {
    width: 100%;
    max-width: none;
    min-height: 52px;
    font-size: 17px;
    font-weight: 800;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__actions {
    display: grid;
    gap: 10px;
    margin-top: 4px;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__actions .smr-analyzer__submit,
  .smr-analyzer--desktop-workbench .smr-analyzer__actions .smr-button {
    width: 100%;
    justify-content: center;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__practice-card {
    width: 100%;
    margin: 0;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-footer,
  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-actionbar {
    display: none !important;
  }

  /* Upload: workflow + stage centered, inspector hidden */
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload .smr-analyzer__grid {
    max-width: 640px;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload [data-desktop-inspector-pane] {
    display: none;
  }

  /* Legacy single-column fallback when workbench class absent */
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench) .smr-analyzer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    align-items: start;
    gap: 18px;
    height: auto;
    min-height: auto;
    align-content: start;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__col-visual {
    width: min(620px, 100%);
    display: grid;
    justify-items: center;
    gap: 12px;
    min-width: 0;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__col-tools {
    width: min(620px, 100%);
    display: grid;
    justify-items: stretch;
    gap: 12px;
    position: static;
    max-height: none;
    overflow: visible;
    padding-bottom: 0;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-portrait .smr-analyzer__col-visual {
    width: min(720px, 100%);
    max-width: min(720px, 100%);
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-portrait .smr-analyzer__stage {
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-portrait .smr-analyzer__video-section,
  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-portrait .smr-analyzer__cal-visual-bundle {
    display: grid;
    justify-items: center;
    width: 100%;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__seek-stack {
    width: min(520px, 100%);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__row--zoom {
    width: min(520px, 100%);
    margin-inline: auto;
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace [data-analyzer-freeze-row] {
    width: min(520px, 100%);
    margin-inline: auto;
    display: flex;
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__freeze-btn {
    width: 100%;
    max-width: 360px;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-inline-tools {
    width: min(520px, 100%);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-inline-tools .smr-analyzer__tools-card {
    width: 100%;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__tool-row {
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__edit-row {
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-step {
    width: min(620px, 100%);
    margin-inline: auto;
    padding: 14px 16px;
    border: 1px solid var(--pga-guide-border, rgba(255, 255, 255, 0.12));
    background: rgba(255, 255, 255, 0.04);
    border-radius: var(--smr-radius-card);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-step-kicker {
    margin: 0 0 4px;
    color: var(--pga-guide-accent-soft, #ffb15c);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-step-title {
    margin: 0 0 6px;
    color: #fff;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.35;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-step-copy {
    margin: 0;
    color: var(--pga-guide-text-soft);
    font-size: 15px;
    line-height: 1.75;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer,
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-actionbar {
    position: sticky;
    bottom: 0;
    z-index: 18;
    flex-shrink: 0;
    margin-top: 20px;
    box-shadow: 0 -10px 28px rgba(0, 0, 0, 0.5);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer[hidden] {
    display: none;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer:not([hidden]),
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-actionbar:not([hidden]) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
    border-top: 1px solid var(--smr-surface-border-strong);
    background: rgba(0, 0, 0, 0.96);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer:not([hidden]),
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-actionbar:not([hidden]) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
    border-top: 1px solid var(--smr-surface-border-strong);
    background: rgba(0, 0, 0, 0.96);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-left,
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-center,
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-right {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-center {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-right {
    margin-left: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-center .smr-analyzer__practice-card {
    width: 100%;
    max-width: 420px;
    margin: 0;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__submit {
    min-width: 220px;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__actions--moved-to-footer {
    display: none !important;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--calibration-wizard .smr-analyzer__desktop-footer {
    display: none !important;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__stage {
    max-height: var(--smr-analyzer-stage-max);
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.1);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__video {
    display: block;
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__canvas-stack {
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__hint-details {
    opacity: 0.92;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__hint-summary {
    cursor: pointer;
  }

  /* Upload: one column, no side rail (legacy non-workbench) */
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-upload .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    max-width: min(760px, 100%);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-upload .smr-analyzer__col-visual {
    width: min(680px, 100%);
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-upload .smr-analyzer__col-tools {
    display: none;
  }

  /* Drawing / rating: legacy canvas-first single column (non-workbench only) */
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    max-width: min(900px, 100%);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__col-visual {
    width: min(760px, 100%);
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing.smr-analyzer--desktop-portrait .smr-analyzer__col-visual {
    width: min(720px, 100%);
    max-width: min(720px, 100%);
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__col-tools {
    display: none;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__seek-stack,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__row--zoom,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing [data-analyzer-freeze-row],
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__desktop-inline-tools {
    width: min(760px, 100%);
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__desktop-step {
    width: min(760px, 100%);
    padding: 10px 14px;
    display: grid;
    gap: 3px;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__desktop-step-title {
    font-size: 16px;
    line-height: 1.35;
    margin: 0;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__desktop-step-copy {
    font-size: 13px;
    line-height: 1.45;
  }

  /* Workbench: drawing keeps all three panes */
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-drawing .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-drawing [data-desktop-inspector-pane] {
    display: grid;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--wb-phase-drawing .smr-analyzer__tools-card[data-toolbar]:not([hidden]) {
    display: grid;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--wb-phase-locking .smr-analyzer__hint-details {
    /* collapsed by default in locking — JS removes open attr */
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-calibration .smr-analyzer__calibration-card:not([hidden]) {
    display: block;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--practice-freeform .smr-analyzer__practice-card,
  .smr-analyzer--desktop-workbench.smr-analyzer--practice-freeform .smr-analyzer__actions,
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-freeform .smr-analyzer__practice-card,
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-freeform .smr-analyzer__actions {
    display: none !important;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-freeform .smr-analyzer__hint-details {
    display: none !important;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--practice-rep .smr-analyzer__calibration-card,
  .smr-analyzer--desktop-workbench.smr-analyzer--practice-rep .smr-analyzer__assessment-override {
    display: none !important;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--wb-phase-freeform [data-analyzer-freeze-row] {
    display: none;
  }

  /* Edit-existing-test: collapsed answer drawer in footer center */
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-answer-summary {
    display: none;
    max-width: 420px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-edit-answer-collapsed .smr-analyzer__desktop-answer-summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-edit-answer-collapsed
    .smr-analyzer__desktop-footer-center
    .smr-analyzer__practice-card,
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-edit-answer-collapsed
    [data-desktop-inspector-pane]
    .smr-analyzer__practice-card {
    display: none;
  }

  /* Post-calibration locking: stage cap — content below (scrubber/freeze) stays in document flow */
  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-phase-locking.smr-analyzer--assessment-stage-fill
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: min(72vh, 820px);
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-phase-locking.smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: min(68vh, 760px);
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--practice-rep.smr-analyzer--desktop-phase-locking
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: min(68vh, 760px);
  }
}

@media (min-width: 769px) and (max-width: 1119px) {
  .smr-analyzer--desktop-workspace .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    height: auto;
    min-height: auto;
    align-content: start;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__col-visual {
    width: min(720px, 100%);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__col-tools {
    width: min(620px, 100%);
    flex: 0 0 auto;
    max-height: none;
    overflow: visible;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--assessment-stage-fill .smr-analyzer__grid,
  .smr-analyzer--desktop-workspace.smr-analyzer--calibration-active .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--assessment-stage-fill .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace.smr-analyzer--calibration-active .smr-analyzer__col-tools {
    position: static;
    align-self: center;
  }
}

@media (min-width: 1120px) {
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench) [data-workspace] {
    min-height: auto;
    height: auto;
  }

  /* Legacy two-column calibration + locking (non-workbench) */
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration .smr-analyzer__grid,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking .smr-analyzer__grid {
    grid-template-columns: minmax(420px, 680px) minmax(280px, 360px);
    justify-content: center;
    align-items: start;
    column-gap: 32px;
    max-width: 1080px;
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration .smr-analyzer__col-visual,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking .smr-analyzer__col-visual,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking .smr-analyzer__col-tools {
    width: 100%;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration.smr-analyzer--assessment-stage-fill .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration.smr-analyzer--calibration-active .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking.smr-analyzer--assessment-stage-fill .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking.smr-analyzer--calibration-active .smr-analyzer__col-tools {
    position: static;
    align-self: start;
    padding-bottom: 0;
    max-height: calc(100dvh - var(--smr-analyzer-header-h) - 24px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (min-width: 1440px) {
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration .smr-analyzer__grid,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking .smr-analyzer__grid {
    max-width: 1100px;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__grid {
    max-width: min(920px, 100%);
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__stage {
    max-height: min(74vh, 820px);
  }
}

@media (max-width: 768px) {
  .smr-analyzer__desktop-footer,
  .smr-analyzer__desktop-step,
  .smr-analyzer__desktop-inline-tools,
  [data-desktop-workflow-pane],
  .smr-analyzer__desktop-checklist {
    display: none !important;
  }
}

/* Hide generic frame lock during guided calibration (all platforms). */
.smr-analyzer.smr-analyzer--calibration-wizard [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--calibration-active.smr-analyzer--calibration-video [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--calibration-active.smr-analyzer--calibration-address [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--calibration-active.smr-analyzer--calibration-anchors [data-analyzer-freeze-row] {
  display: none !important;
}

/* Desktop/tablet workspace redesign (>=769px only; scoped to smr-analyzer--desktop-workspace) */
@media (min-width: 769px) {
  .smr-analyzer--desktop-workspace .smr-analyzer__panel {
    left: 0;
    top: 0;
    transform: none;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    max-height: none;
    max-width: none;
    border-radius: 0;
    border: 0;
    box-shadow: none;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__head {
    position: sticky;
    top: 0;
    z-index: 20;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__body {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: max(32px, env(safe-area-inset-bottom, 0px));
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .smr-analyzer--desktop-workspace [data-workspace] {
    min-height: auto;
    height: auto;
    flex: 0 0 auto;
    max-width: 1320px;
    width: 100%;
    margin-inline: auto;
  }

  /* Default workbench grid — single column narrow tablet */
  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    align-items: start;
    gap: clamp(16px, 2vw, 24px);
    height: auto;
    min-height: auto;
    align-content: start;
    max-width: 560px;
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workbench [data-desktop-workflow-pane] {
    display: grid;
    gap: 14px;
    min-width: 0;
  }

  .smr-analyzer--desktop-workbench [data-desktop-stage-pane] {
    width: 100%;
    max-width: 560px;
    margin-inline: auto;
    display: grid;
    justify-items: center;
    gap: 12px;
    min-width: 0;
  }

  .smr-analyzer--desktop-workbench [data-desktop-inspector-pane] {
    width: 100%;
    display: grid;
    justify-items: stretch;
    gap: 12px;
    position: static;
    max-height: none;
    overflow: visible;
    padding-bottom: 0;
    min-width: 0;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-step {
    width: 100%;
    margin-inline: 0;
    padding: 16px 18px;
    border: 1px solid var(--smr-surface-border-strong);
    border-top: 3px solid var(--pga-guide-accent);
    border-radius: var(--smr-radius-card);
    background: rgba(255, 255, 255, 0.04);
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-checklist {
    margin: 0;
    padding: 0 0 0 18px;
    color: var(--pga-guide-text-soft);
    font-size: 15px;
    line-height: 1.75;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-checklist li {
    margin-bottom: 6px;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__stage {
    width: min(100%, 520px);
    max-height: min(72vh, 780px);
    margin-inline: auto;
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.1);
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__seek-stack,
  .smr-analyzer--desktop-workbench .smr-analyzer__row--zoom,
  .smr-analyzer--desktop-workbench [data-analyzer-freeze-row] {
    width: min(100%, 520px);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__freeze-btn {
    width: 100%;
    max-width: none;
    min-height: 52px;
    font-size: 17px;
    font-weight: 800;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__actions {
    display: grid;
    gap: 10px;
    margin-top: 4px;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__actions .smr-analyzer__submit,
  .smr-analyzer--desktop-workbench .smr-analyzer__actions .smr-button {
    width: 100%;
    justify-content: center;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__practice-card {
    width: 100%;
    margin: 0;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-footer,
  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-actionbar {
    display: none !important;
  }

  /* Upload: workflow + stage centered, inspector hidden */
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload .smr-analyzer__grid {
    max-width: 640px;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload [data-desktop-inspector-pane] {
    display: none;
  }

  /* No-video calibration import: keep inspector visible (pick UI lives here on desktop). */
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-calibration [data-desktop-inspector-pane] {
    display: grid;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--calibration-active.smr-analyzer--calibration-wizard [data-desktop-inspector-pane] {
    display: grid;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__col-visual {
    width: min(620px, 100%);
    display: grid;
    justify-items: center;
    gap: 12px;
    min-width: 0;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__col-tools {
    width: min(620px, 100%);
    display: grid;
    justify-items: stretch;
    gap: 12px;
    position: static;
    max-height: none;
    overflow: visible;
    padding-bottom: 0;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-portrait .smr-analyzer__col-visual {
    width: min(720px, 100%);
    max-width: min(720px, 100%);
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-portrait .smr-analyzer__stage {
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-portrait .smr-analyzer__video-section,
  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-portrait .smr-analyzer__cal-visual-bundle {
    display: grid;
    justify-items: center;
    width: 100%;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__seek-stack {
    width: min(520px, 100%);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__row--zoom {
    width: min(520px, 100%);
    margin-inline: auto;
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace [data-analyzer-freeze-row] {
    width: min(520px, 100%);
    margin-inline: auto;
    display: flex;
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__freeze-btn {
    width: 100%;
    max-width: 360px;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-inline-tools {
    width: min(520px, 100%);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-inline-tools .smr-analyzer__tools-card {
    width: 100%;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__tool-row {
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__edit-row {
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-step {
    width: min(620px, 100%);
    margin-inline: auto;
    padding: 14px 16px;
    border: 1px solid var(--pga-guide-border, rgba(255, 255, 255, 0.12));
    background: rgba(255, 255, 255, 0.04);
    border-radius: var(--smr-radius-card);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-step-kicker {
    margin: 0 0 4px;
    color: var(--pga-guide-accent-soft, #ffb15c);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-step-title {
    margin: 0 0 6px;
    color: #fff;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.35;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-step-copy {
    margin: 0;
    color: var(--pga-guide-text-soft);
    font-size: 15px;
    line-height: 1.75;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer,
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-actionbar {
    position: sticky;
    bottom: 0;
    z-index: 18;
    flex-shrink: 0;
    margin-top: 20px;
    box-shadow: 0 -10px 28px rgba(0, 0, 0, 0.5);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer[hidden] {
    display: none;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-left,
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-center,
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-right {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-center {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-right {
    margin-left: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-footer-center .smr-analyzer__practice-card {
    width: 100%;
    max-width: 420px;
    margin: 0;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__submit {
    min-width: 220px;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__actions--moved-to-footer {
    display: none !important;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--calibration-wizard .smr-analyzer__desktop-footer {
    display: none !important;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__stage {
    max-height: var(--smr-analyzer-stage-max);
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.1);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__video {
    display: block;
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__canvas-stack {
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__hint-details {
    opacity: 0.92;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__hint-summary {
    cursor: pointer;
  }

  /* Upload: one column, no side rail (legacy non-workbench) */
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-upload .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    max-width: min(760px, 100%);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-upload .smr-analyzer__col-visual {
    width: min(680px, 100%);
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-upload .smr-analyzer__col-tools {
    display: none;
  }

  /* Drawing / rating: legacy canvas-first single column (non-workbench only) */
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    max-width: min(900px, 100%);
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__col-visual {
    width: min(760px, 100%);
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing.smr-analyzer--desktop-portrait .smr-analyzer__col-visual {
    width: min(720px, 100%);
    max-width: min(720px, 100%);
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__col-tools {
    display: none;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__seek-stack,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__row--zoom,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing [data-analyzer-freeze-row],
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__desktop-inline-tools {
    width: min(760px, 100%);
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__desktop-step {
    width: min(760px, 100%);
    padding: 10px 14px;
    display: grid;
    gap: 3px;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__desktop-step-title {
    font-size: 16px;
    line-height: 1.35;
    margin: 0;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__desktop-step-copy {
    font-size: 13px;
    line-height: 1.45;
  }

  /* Workbench: drawing keeps all three panes */
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-drawing .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-drawing [data-desktop-inspector-pane] {
    display: grid;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--wb-phase-drawing .smr-analyzer__tools-card[data-toolbar]:not([hidden]) {
    display: grid;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--wb-phase-locking .smr-analyzer__hint-details {
    /* collapsed by default in locking — JS removes open attr */
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-calibration .smr-analyzer__calibration-card:not([hidden]) {
    display: block;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--practice-freeform .smr-analyzer__practice-card,
  .smr-analyzer--desktop-workbench.smr-analyzer--practice-freeform .smr-analyzer__actions,
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-freeform .smr-analyzer__practice-card,
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-freeform .smr-analyzer__actions {
    display: none !important;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-freeform .smr-analyzer__hint-details {
    display: none !important;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--practice-rep .smr-analyzer__calibration-card,
  .smr-analyzer--desktop-workbench.smr-analyzer--practice-rep .smr-analyzer__assessment-override {
    display: none !important;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--wb-phase-freeform [data-analyzer-freeze-row] {
    display: none;
  }

  /* Edit-existing-test: collapsed answer drawer in footer center */
  .smr-analyzer--desktop-workspace .smr-analyzer__desktop-answer-summary {
    display: none;
    max-width: 420px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-edit-answer-collapsed .smr-analyzer__desktop-answer-summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-edit-answer-collapsed
    .smr-analyzer__desktop-footer-center
    .smr-analyzer__practice-card,
  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-edit-answer-collapsed
    [data-desktop-inspector-pane]
    .smr-analyzer__practice-card {
    display: none;
  }

  /* Post-calibration locking: stage cap — content below (scrubber/freeze) stays in document flow */
  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-phase-locking.smr-analyzer--assessment-stage-fill
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: min(72vh, 820px);
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--desktop-phase-locking.smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: min(68vh, 760px);
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--practice-rep.smr-analyzer--desktop-phase-locking
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: min(68vh, 760px);
  }
}

@media (min-width: 769px) and (max-width: 1119px) {
  .smr-analyzer--desktop-workspace .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    height: auto;
    min-height: auto;
    align-content: start;
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__col-visual {
    width: min(720px, 100%);
  }

  .smr-analyzer--desktop-workspace .smr-analyzer__col-tools {
    width: min(620px, 100%);
    flex: 0 0 auto;
    max-height: none;
    overflow: visible;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--assessment-stage-fill .smr-analyzer__grid,
  .smr-analyzer--desktop-workspace.smr-analyzer--calibration-active .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
  }

  .smr-analyzer--desktop-workspace.smr-analyzer--assessment-stage-fill .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace.smr-analyzer--calibration-active .smr-analyzer__col-tools {
    position: static;
    align-self: center;
  }
}

@media (min-width: 1120px) {
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench) [data-workspace] {
    min-height: auto;
    height: auto;
  }

  /* Legacy two-column calibration + locking (non-workbench) */
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration .smr-analyzer__grid,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking .smr-analyzer__grid {
    grid-template-columns: minmax(420px, 680px) minmax(280px, 360px);
    justify-content: center;
    align-items: start;
    column-gap: 32px;
    max-width: 1080px;
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration .smr-analyzer__col-visual,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking .smr-analyzer__col-visual,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking .smr-analyzer__col-tools {
    width: 100%;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration.smr-analyzer--assessment-stage-fill .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration.smr-analyzer--calibration-active .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking.smr-analyzer--assessment-stage-fill .smr-analyzer__col-tools,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking.smr-analyzer--calibration-active .smr-analyzer__col-tools {
    position: static;
    align-self: start;
    padding-bottom: 0;
    max-height: calc(100dvh - var(--smr-analyzer-header-h) - 24px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (min-width: 1440px) {
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-calibration .smr-analyzer__grid,
  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-locking .smr-analyzer__grid {
    max-width: 1100px;
  }

  .smr-analyzer--desktop-workspace:not(.smr-analyzer--desktop-workbench).smr-analyzer--desktop-phase-drawing .smr-analyzer__grid {
    max-width: min(920px, 100%);
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__stage {
    max-height: min(74vh, 820px);
  }
}

@media (max-width: 768px) {
  .smr-analyzer__desktop-footer,
  .smr-analyzer__desktop-step,
  .smr-analyzer__desktop-inline-tools,
  [data-desktop-workflow-pane],
  .smr-analyzer__desktop-checklist {
    display: none !important;
  }
}

.smr-analyzer__section-label {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--pga-guide-text-muted);
}

.smr-analyzer__tool-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-analyzer__edit-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-analyzer__edit-btn {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 44px;
  font-size: 14px;
  padding: 8px 12px;
  border-radius: var(--smr-radius-button);
}

.smr-analyzer__freeze-btn {
  width: 100%;
  justify-content: center;
  font-weight: 700;
}

/* Free form: no frame lock, no green submit / cancel row (close via header or mobile chrome). */
.smr-analyzer.smr-analyzer--practice-freeform [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--practice-freeform .smr-analyzer__actions {
  display: none !important;
}

.smr-analyzer.smr-analyzer--practice-freeform [data-auto-draw-start],
.smr-analyzer.smr-analyzer--practice-freeform [data-auto-draw-panel] {
  display: none !important;
}

.smr-analyzer__freeform-chrome {
  display: grid;
  gap: 10px;
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 1px solid var(--smr-surface-border-strong, rgba(255, 255, 255, 0.18));
  border-radius: 1px;
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.08), rgba(0, 0, 0, 0.25));
}

.smr-analyzer__freeform-chrome-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.smr-analyzer__freeform-mode-toggle,
.smr-analyzer__freeform-draw-target {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.smr-analyzer__freeform-draw-target[hidden],
.smr-analyzer__freeform-compare-grid[hidden],
.smr-analyzer__freeform-link-toggle[hidden],
.smr-analyzer__freeform-record[hidden] {
  display: none !important;
}

.smr-analyzer__freeform-draw-target-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pga-guide-text-soft, rgba(255, 255, 255, 0.68));
}

.smr-analyzer__freeform-pill {
  border: 1px solid var(--smr-surface-border-strong, rgba(255, 255, 255, 0.22));
  border-radius: 1px;
  background: rgba(0, 0, 0, 0.35);
  color: var(--pga-guide-text, #fff);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  padding: 8px 14px;
}

.smr-analyzer__freeform-pill.is-active {
  border-color: rgba(255, 120, 0, 0.55);
  background: rgba(255, 120, 0, 0.18);
}

.smr-analyzer__freeform-link-toggle {
  border: 1px solid var(--smr-surface-border-strong, rgba(255, 255, 255, 0.22));
  border-radius: 1px;
  background: rgba(0, 0, 0, 0.35);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 16px;
  line-height: 1;
  min-height: 40px;
  min-width: 44px;
  padding: 8px 12px;
}

.smr-analyzer__freeform-link-toggle.is-active {
  border-color: rgba(255, 120, 0, 0.55);
  background: rgba(255, 120, 0, 0.18);
}

.smr-analyzer--freeform-compare [data-cal-visual-bundle] {
  display: grid;
  gap: 12px;
}

.smr-analyzer__freeform-compare-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.smr-analyzer__freeform-compare-panel {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 1px;
  background: rgba(0, 0, 0, 0.22);
}

.smr-analyzer__freeform-compare-panel.is-active {
  border-color: rgba(255, 120, 0, 0.45);
  box-shadow: inset 3px 0 0 #ff7800;
}

.smr-analyzer__freeform-compare-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.smr-analyzer__freeform-compare-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.smr-analyzer__freeform-compare-stage {
  min-height: 180px;
}

.smr-analyzer__freeform-preview {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: rgba(0, 0, 0, 0.45);
  border: 1px dashed rgba(255, 255, 255, 0.16);
  border-radius: 1px;
}

.smr-analyzer__freeform-compare-panel.is-active .smr-analyzer__freeform-preview {
  display: none;
}

.smr-analyzer__freeform-record-sheet {
  position: fixed;
  inset: 0;
  z-index: 1000005;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(0, 0, 0, 0.72);
}

.smr-analyzer__freeform-record-sheet-panel {
  width: min(420px, 100%);
  padding: 20px;
  border: 1px solid rgba(255, 120, 0, 0.35);
  border-radius: 1px;
  background: #111;
  color: #fff;
  display: grid;
  gap: 12px;
}

.smr-analyzer__freeform-record-sheet-actions {
  display: grid;
  gap: 8px;
}

@media (max-width: 900px) {
  .smr-analyzer__freeform-compare-grid {
    grid-template-columns: 1fr;
  }
}

.smr-analyzer__tool {
  flex: 1 1 calc(33.333% - 8px);
  min-width: 5.5rem;
  min-height: 44px;
  border: 1px solid var(--smr-surface-border-strong);
  background: rgba(255, 255, 255, 0.04);
  color: var(--pga-guide-text-soft);
  padding: 11px 12px;
  border-radius: var(--smr-radius-button);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.smr-analyzer__tool-icon {
  display: block;
  flex-shrink: 0;
}

.smr-analyzer:not(.smr-analyzer--mobile) .smr-analyzer__tool-icon {
  display: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__tool-text {
  display: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__tool {
  color: var(--pga-guide-text-soft);
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__tool.is-active {
  color: var(--pga-guide-accent-soft);
}

.smr-analyzer__tool.is-active {
  border-color: var(--pga-guide-accent);
  background: rgba(255, 120, 0, 0.18);
  color: #fff7ed;
}

.smr-analyzer__tool--auto-draw {
  border-color: rgba(255, 120, 0, 0.42);
  background: linear-gradient(135deg, rgba(255, 120, 0, 0.16), rgba(255, 177, 92, 0.08));
}

.smr-analyzer__tool--auto-draw .smr-analyzer__tool-icon {
  align-items: center;
  background: linear-gradient(135deg, #ffcc83, #ff7800);
  border-radius: 50%;
  color: #141414;
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  height: 22px;
  justify-content: center;
  width: 22px;
}

.smr-analyzer__auto-draw-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 14px 16px;
  border-radius: var(--smr-radius-card);
  border: 1px solid rgba(255, 120, 0, 0.42);
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.13), rgba(255, 255, 255, 0.045));
}

.smr-analyzer__auto-draw-panel[hidden] {
  display: none !important;
}

.smr-analyzer__auto-draw-head {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.smr-analyzer__auto-draw-step {
  background: rgba(255, 120, 0, 0.18);
  border: 1px solid rgba(255, 120, 0, 0.38);
  border-radius: 999px;
  color: #fff7ed;
  font-size: 12px;
  font-weight: 800;
  padding: 4px 9px;
}

.smr-analyzer__auto-draw-copy {
  color: var(--pga-guide-text);
  font-weight: 700;
  margin: 0;
}

.smr-analyzer__auto-draw-progress {
  color: var(--pga-guide-text-soft);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0;
}

.smr-analyzer__auto-draw-confirm {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.smr-analyzer__auto-draw-confirm[hidden] {
  display: none !important;
}

.smr-analyzer__auto-draw-confirm .smr-analyzer__auto-draw-next {
  min-height: 52px;
  width: 100%;
}

.smr-analyzer.smr-analyzer--multi-position-flow .smr-analyzer__tools-card[data-toolbar] {
  display: none !important;
}

.smr-analyzer.smr-analyzer--multi-position-flow .smr-analyzer__edit-row {
  display: none !important;
}

.smr-analyzer.smr-analyzer--multi-position-tap .smr-analyzer__seek-stack,
.smr-analyzer.smr-analyzer--multi-position-tap [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--multi-position-tap .smr-analyzer__row--zoom,
.smr-analyzer.smr-analyzer--multi-position-confirm .smr-analyzer__seek-stack,
.smr-analyzer.smr-analyzer--multi-position-confirm [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--multi-position-confirm .smr-analyzer__row--zoom {
  display: none !important;
}

.smr-analyzer.smr-analyzer--multi-position-seek .smr-analyzer__seek-stack,
.smr-analyzer.smr-analyzer--multi-position-seek [data-analyzer-freeze-row],
.smr-analyzer.smr-analyzer--multi-position-seek .smr-analyzer__row--zoom {
  display: block;
}

.smr-analyzer.smr-analyzer--multi-position-seek [data-desktop-inline-tools],
.smr-analyzer.smr-analyzer--multi-position-seek [data-desktop-inspector-pane] .smr-analyzer__practice-card,
.smr-analyzer.smr-analyzer--multi-position-seek [data-desktop-inspector-pane] .smr-analyzer__tools-card:not([data-toolbar]),
.smr-analyzer.smr-analyzer--multi-position-seek .smr-analyzer__auto-draw-controls,
.smr-analyzer.smr-analyzer--multi-position-seek .smr-analyzer__auto-draw-progress {
  display: none !important;
}

.smr-analyzer.smr-analyzer--multi-position-seek .smr-analyzer__auto-draw-panel {
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: none;
}

.smr-analyzer.smr-analyzer--multi-position-confirm .smr-analyzer__auto-draw-panel {
  border-color: rgba(255, 120, 0, 0.62);
  box-shadow: 0 10px 28px rgba(255, 120, 0, 0.14);
}

.smr-analyzer__auto-draw-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-analyzer__auto-draw-debug summary {
  color: var(--pga-guide-text-soft);
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
}

.smr-analyzer__auto-draw-debug textarea {
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid var(--smr-surface-border);
  border-radius: var(--smr-radius-card);
  color: var(--pga-guide-text-soft);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  margin-top: 8px;
  min-height: 130px;
  width: 100%;
}

.smr-analyzer__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--smr-surface-border);
}

.smr-analyzer__practice-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 14px 16px;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-accent-border);
  background: rgba(255, 120, 0, 0.06);
}

.smr-analyzer__practice-card[hidden] {
  display: none !important;
}

.smr-analyzer__practice-okay-title {
  margin: 0;
  font-size: 15px;
  color: var(--pga-guide-text);
  line-height: 1.55;
}

.smr-analyzer__practice-okay-note {
  display: block;
  margin-top: 4px;
  font-size: 14px;
  font-weight: 400;
  color: var(--pga-guide-text-muted);
  line-height: 1.65;
}

.smr-analyzer__practice-okay-btns {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-analyzer__assessment-override {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 12px;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  background: rgba(255, 255, 255, 0.03);
}

/* [hidden] must win over display:flex (otherwise override row stays visible when JS sets hidden). */
.smr-analyzer__assessment-override[hidden] {
  display: none !important;
}

.smr-analyzer.smr-analyzer--practice .smr-analyzer__assessment-override {
  display: none !important;
}

/* Practice rep: belt-and-suspenders — no calibration / 診断 chrome (JS gates are primary). */
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) [data-change-session-video],
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) .smr-analyzer__draw-fs-reset-view,
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) [data-zoom-reset],
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) .smr-analyzer__hint-details,
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) [data-cal-flow],
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) .smr-analyzer__cal-flow,
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) [data-calibration-card],
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) .smr-analyzer__calibration-card,
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) [data-calibration-step],
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) .smr-analyzer__calibration-step,
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) .smr-analyzer__calibration-guide,
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) .smr-analyzer__calibration-copy,
.smr-analyzer.smr-analyzer--practice:not(.smr-analyzer--practice-rep) .smr-analyzer__calibration-actions,
.smr-analyzer.smr-analyzer--practice-rep [data-cal-flow],
.smr-analyzer.smr-analyzer--practice-rep .smr-analyzer__cal-flow,
.smr-analyzer.smr-analyzer--practice-rep [data-calibration-card],
.smr-analyzer.smr-analyzer--practice-rep .smr-analyzer__calibration-card,
.smr-analyzer.smr-analyzer--practice-rep [data-calibration-step],
.smr-analyzer.smr-analyzer--practice-rep .smr-analyzer__calibration-step,
.smr-analyzer.smr-analyzer--practice-rep .smr-analyzer__calibration-guide,
.smr-analyzer.smr-analyzer--practice-rep .smr-analyzer__calibration-copy,
.smr-analyzer.smr-analyzer--practice-rep .smr-analyzer__calibration-actions {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  min-height: 0 !important;
}

.smr-analyzer.smr-analyzer--practice.smr-analyzer--practice-import-awaiting-video [data-cal-visual-bundle] {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--consumer-import-awaiting [data-cal-visual-bundle] {
  display: none !important;
}

/* Consumer mobile draw: top chrome is frame change + pan + chevron only (no auto-position reset). */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint .smr-analyzer__draw-fs-reset-view,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint .smr-analyzer__mobile-build-badge,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint .smr-analyzer__mobile-build-watermark {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint .smr-analyzer__row--top [data-change-session-video],
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint [data-consumer-mobile-head-import],
body > .smr-analyzer__consumer-mobile-exit[data-consumer-mobile-exit] {
  display: none !important;
}

.smr-analyzer__override-toggle {
  align-items: center;
  display: inline-flex;
  gap: 10px;
  margin: 0;
  cursor: pointer;
  font-size: 15px;
  font-weight: 700;
  color: var(--pga-guide-text-soft);
}

.smr-analyzer__override-hint {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--pga-guide-text-muted);
}

/* Match ライン / 角度 / 円: same idle + selected treatment, no primary vs secondary fill */
.smr-analyzer__override-toggle input {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: var(--pga-guide-accent);
  flex-shrink: 0;
}

.smr-analyzer__okay-choice {
  flex: 1 1 calc(50% - 4px);
  min-width: 6.5rem;
  margin: 0;
  border: 1px solid var(--smr-surface-border-strong);
  background: rgba(255, 255, 255, 0.04);
  color: var(--pga-guide-text-soft);
  padding: 11px 12px;
  border-radius: var(--smr-radius-button);
  font-size: 15px;
  font-weight: 600;
  font-family: inherit;
  line-height: 1.35;
  cursor: pointer;
  text-align: center;
  min-height: 48px;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.smr-analyzer__okay-choice:hover {
  border-color: var(--smr-surface-accent-border);
  color: var(--pga-guide-text);
}

.smr-analyzer__okay-choice:focus {
  outline: none;
}

.smr-analyzer__okay-choice:focus-visible {
  outline: 2px solid #ffb15c;
  outline-offset: 2px;
}

.smr-analyzer__okay-choice.is-selected,
.smr-analyzer__okay-choice[aria-pressed="true"],
.smr-analyzer__okay-choice[aria-checked="true"] {
  border-color: #ff7800;
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.3), rgba(255, 120, 0, 0.14));
  color: #fff7ed;
  box-shadow:
    inset 0 0 0 1px rgba(255, 177, 92, 0.34),
    0 0 0 1px rgba(255, 120, 0, 0.2),
    0 10px 24px rgba(255, 120, 0, 0.2);
}

.smr-analyzer__okay-choice:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.smr-analyzer__okay-choice.is-selected:disabled {
  opacity: 0.55;
}

.smr-analyzer__loading {
  position: fixed;
  inset: 0;
  z-index: 100020;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(16px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px))
    max(16px, env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
  box-sizing: border-box;
}

/* `.smr-analyzer__loading { display:flex }` overrides the browser default for `[hidden]`; hide explicitly */
.smr-analyzer__loading[hidden] {
  display: none !important;
}

.smr-analyzer__loading-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
}

.smr-analyzer__loading-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 28px 32px;
  width: min(460px, 100%);
  max-width: calc(100vw - 32px);
  box-sizing: border-box;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  background: rgba(0, 0, 0, 0.95);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
}

.smr-analyzer__loading-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid var(--smr-surface-border);
  border-top-color: var(--pga-guide-accent);
  border-radius: 50%;
  animation: smr-analyzer-spin 0.75s linear infinite;
}

.smr-analyzer__loading-text {
  margin: 0;
  font-size: 15px;
  color: var(--pga-guide-text-soft);
  text-align: center;
  line-height: 1.65;
  white-space: pre-line;
}

@media (max-width: 480px) {
  .smr-analyzer__loading-panel {
    gap: 12px;
    padding: 24px 20px;
    max-width: calc(100vw - 24px);
  }

  .smr-analyzer__loading-text {
    font-size: 14px;
    line-height: 1.55;
  }
}

@keyframes smr-analyzer-spin {
  to {
    transform: rotate(360deg);
  }
}

.smr-analyzer__workspace {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
}

/* Dedicated calibration wizard (mobile primary; desktop may use card instead). */
.smr-analyzer__cal-flow[hidden] {
  display: none !important;
}

.smr-analyzer__cal-flow:not([hidden]) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  gap: 0;
  box-sizing: border-box;
}

.smr-analyzer__cal-screen[hidden] {
  display: none !important;
}

.smr-analyzer__cal-screen:not([hidden]) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  gap: 14px;
  padding: 12px 16px max(18px, env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
}

.smr-analyzer__cal-screen[data-cal-screen='video']:not([hidden]) {
  justify-content: center;
  text-align: center;
}

.smr-analyzer__cal-screen[data-cal-screen='video']:not([hidden]) .smr-analyzer__cal-flow-actions {
  max-width: 22rem;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.smr-analyzer__cal-screen--visual:not([hidden]) {
  padding-top: 8px;
}

.smr-analyzer__cal-flow-eyebrow {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--pga-guide-text-muted);
}

.smr-analyzer__cal-flow-heading {
  margin: 0;
  font-size: 1.28rem;
  font-weight: 850;
  line-height: 1.38;
  color: var(--pga-guide-text);
}

.smr-analyzer__cal-flow-heading--compact {
  font-size: 1.05rem;
}

.smr-analyzer__cal-flow-copy {
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: var(--pga-guide-text-soft);
}

.smr-analyzer__cal-flow-step {
  margin: 0;
  padding: 10px 14px;
  border-radius: var(--smr-radius-card);
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.4;
  flex: 0 0 auto;
}

.smr-analyzer__cal-flow-visual {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.smr-analyzer__cal-flow-seek {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  padding-top: 2px;
}

.smr-analyzer__cal-flow-seek[hidden] {
  display: none !important;
}

.smr-analyzer__cal-flow-seek-hint {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
  text-align: center;
}

.smr-analyzer__cal-flow-seek .smr-analyzer__seek-stack {
  flex-shrink: 0;
  width: 100%;
}

.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-seek {
  display: block;
  width: 100%;
  margin: 12px 0 18px;
  padding: 12px 14px;
  border: 1px solid var(--smr-surface-border);
  border-radius: var(--smr-radius-card);
  background: rgba(0, 0, 0, 0.88);
  box-sizing: border-box;
  position: relative;
  z-index: 2;
}

.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-seek[hidden] {
  display: none !important;
}

.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-seek .smr-analyzer__seek-stack {
  display: grid !important;
  gap: 10px;
  width: 100%;
  position: static !important;
  transform: none !important;
  inset: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  overflow: visible;
}

.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-seek .smr-analyzer__frame-step {
  display: flex !important;
  justify-content: center;
  gap: 16px;
  padding: 0 0 10px;
  border-bottom: 0;
  background: transparent;
}

.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-seek .smr-analyzer__frame-nav.smr-button.smr-button-secondary {
  position: static !important;
  transform: none !important;
  width: 56px;
  min-width: 56px;
  height: 48px;
  min-height: 48px;
}

.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-seek .smr-analyzer__seek-label {
  display: block !important;
  width: 100%;
}

.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-seek input[type='range'] {
  width: 100%;
  display: block;
}

.smr-analyzer__cal-visual-bundle {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.smr-analyzer__cal-flow-visual .smr-analyzer__cal-visual-bundle,
.smr-analyzer__cal-flow-visual .smr-analyzer__stage {
  flex: 1 1 auto;
  min-height: 0;
}

.smr-analyzer__cal-flow-footer {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.smr-analyzer__cal-flow-actions {
  display: grid;
  gap: 10px;
}

.smr-analyzer.smr-analyzer--calibration-invalid [data-cal-wiz-copy-result] {
  white-space: pre-line;
}

.smr-analyzer__rating {
  padding: 8px 0 4px;
}

.smr-analyzer__rating-sub {
  font-size: 14px;
  color: var(--pga-guide-text-muted);
  line-height: 1.65;
  margin: 0 0 16px;
}

.smr-analyzer__rating-error {
  font-size: 13px;
  color: #fecaca;
  margin: 0 0 12px;
}

.smr-analyzer__rating-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* Modal buttons: visible surfaces, keyboard-only focus ring, brand orange primary CTA */
.smr-analyzer .smr-button {
  min-height: 48px;
  font-size: 15px;
  font-weight: 700;
  padding: 12px 16px;
  border-radius: var(--smr-radius-button);
}

.smr-analyzer .smr-button:focus {
  outline: none;
}

.smr-analyzer .smr-button:focus-visible {
  outline: 2px solid #ffb15c;
  outline-offset: 2px;
}

.smr-analyzer .smr-button:focus:not(:focus-visible) {
  opacity: 1;
  transform: none;
}

.smr-analyzer .smr-button:not(.smr-button-secondary):not(.smr-analyzer__submit) {
  box-shadow: 0 8px 22px rgba(255, 120, 0, 0.28);
}

.smr-analyzer .smr-button:not(.smr-button-secondary):not(.smr-analyzer__submit):hover {
  box-shadow: 0 12px 28px rgba(255, 120, 0, 0.34);
  opacity: 0.96;
  transform: translateY(-1px);
}

.smr-analyzer .smr-button:not(.smr-button-secondary):not(.smr-analyzer__submit):focus:not(:focus-visible) {
  box-shadow: 0 8px 22px rgba(255, 120, 0, 0.28);
}

.smr-analyzer .smr-button-secondary {
  background: rgba(255, 120, 0, 0.14) !important;
  border: 1px solid rgba(255, 160, 80, 0.55) !important;
  box-shadow: 0 4px 14px rgba(255, 120, 0, 0.12);
  color: #fff7ed !important;
}

.smr-analyzer .smr-button-secondary:hover {
  background: rgba(255, 120, 0, 0.24) !important;
  border-color: rgba(255, 200, 140, 0.65) !important;
  box-shadow: 0 6px 18px rgba(255, 120, 0, 0.2);
  opacity: 1;
  transform: translateY(-1px);
}

.smr-analyzer .smr-button-secondary:focus:not(:focus-visible) {
  box-shadow: 0 4px 14px rgba(255, 120, 0, 0.12);
  opacity: 1;
  transform: none;
}

.smr-analyzer .smr-analyzer__submit {
  background: var(--pga-guide-gradient) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 12px 28px rgba(255, 120, 0, 0.28) !important;
  color: #ffffff !important;
  font-weight: 850;
}

.smr-analyzer .smr-analyzer__submit:hover {
  box-shadow: 0 14px 32px rgba(255, 120, 0, 0.38);
  opacity: 0.97;
  transform: translateY(-1px);
}

.smr-analyzer .smr-analyzer__submit:focus:not(:focus-visible) {
  box-shadow: 0 12px 28px rgba(255, 120, 0, 0.28);
  opacity: 1;
  transform: none;
}

.smr-analyzer .smr-analyzer__submit:disabled,
.smr-analyzer .smr-analyzer__submit[aria-disabled="true"] {
  opacity: 0.42;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
  filter: grayscale(0.15);
}

.smr-analyzer .smr-analyzer__submit:disabled:hover,
.smr-analyzer .smr-analyzer__submit[aria-disabled="true"]:hover {
  transform: none;
  box-shadow: none;
  opacity: 0.42;
}

.smr-analyzer .smr-analyzer__zoom-btn.smr-button:not(.smr-button-secondary) {
  min-height: 40px;
  min-width: 44px;
  padding: 8px 12px;
  font-size: 18px;
  font-weight: 800;
  box-shadow: 0 4px 14px rgba(255, 120, 0, 0.28);
}

.smr-analyzer .smr-analyzer__zoom-btn.smr-button:not(.smr-button-secondary):focus:not(:focus-visible) {
  box-shadow: 0 4px 14px rgba(255, 120, 0, 0.28);
}

.smr-analyzer .smr-analyzer__zoom-btn.smr-button-secondary {
  min-height: 40px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 700;
}

.smr-analyzer__tool:focus {
  outline: none;
}

.smr-analyzer__tool:focus-visible {
  outline: 2px solid #ffb15c;
  outline-offset: 2px;
}

.smr-analyzer__tool:focus:not(:focus-visible) {
  box-shadow: none;
}

/* Mobile analyzer: stack height for positioning tool float above bottom transport (frame row + scrubber). */
.smr-analyzer.smr-analyzer--mobile {
  --smr-mobile-transport-stack-h: 132px;
  --smr-mobile-tool-float-lift: 56px;
  /* Top offset matches fullscreen stage padding under chrome — float grows downward from here.
     JS may override via syncMobileToolFloatLayout() when locked draw chrome is measured. */
  --smr-mobile-tool-float-top: max(52px, calc(env(safe-area-inset-top, 0px) + 44px));
  --smr-mobile-tool-float-bottom-gap: calc(
    var(--smr-mobile-transport-stack-h) + var(--smr-mobile-tool-float-lift) +
      env(safe-area-inset-bottom, 0px)
  );
}

@media (max-width: 768px) and (max-height: 460px) {
  .smr-analyzer.smr-analyzer--mobile {
    --smr-mobile-transport-stack-h: 112px;
    --smr-mobile-tool-float-lift: 44px;
  }
}

/* Free-form: top chrome is two full-width buttons — tool column clears that bar. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--practice-freeform {
  --smr-mobile-tool-float-top: max(50px, calc(env(safe-area-inset-top, 0px) + 48px));
}

/* Consumer freeform draw: clip pinned display box. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--practice-freeform:not(.smr-analyzer--coach-mode).smr-analyzer--phase-freeform-drawing
  .smr-analyzer__zoom-inner {
  overflow: hidden;
}

/* Consumer freeform scrub: preview canvas uses JS-pinned box (not 100% width / auto height). */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--practice-freeform:not(.smr-analyzer--coach-mode).smr-analyzer--phase-freeform-drawing.smr-analyzer--scrubbing
  .smr-analyzer__scrub-preview {
  width: auto;
  height: auto;
  max-width: none;
  object-fit: fill;
}

/* Consumer freeform: no import-hub resume button or assessment-style lock hints. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--practice-freeform:not(.smr-analyzer--coach-mode) .smr-analyzer__resume-freeform,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--practice-freeform:not(.smr-analyzer--coach-mode) .smr-analyzer__hint-details,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--practice-freeform:not(.smr-analyzer--coach-mode) [data-frame-help],
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--practice-freeform:not(.smr-analyzer--coach-mode) .smr-analyzer__help--compact {
  display: none !important;
}

/* Non–free-form (tabbed assessment): same two-button top chrome when frame is locked. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen:not(
    .smr-analyzer--practice-freeform
  ) {
  --smr-mobile-tool-float-top: max(50px, calc(env(safe-area-inset-top, 0px) + 48px));
}

/* Mobile: bottom dock flush to screen bottom — scrubber + frame arrows stay at the thumb zone. */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  width: auto;
  max-width: none;
  z-index: 100002;
  display: flex;
  flex-direction: column;
  gap: 0;
  max-height: min(46vh, 440px);
  overflow: hidden;
  padding-top: 0;
  padding-bottom: max(8px, env(safe-area-inset-bottom, 0px));
  padding-left: max(8px, env(safe-area-inset-left, 0px));
  padding-right: max(8px, env(safe-area-inset-right, 0px));
  box-sizing: border-box;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.96) 0%,
    rgba(0, 0, 0, 0.88) 50%,
    rgba(0, 0, 0, 0) 100%
  );
  pointer-events: none;
}

/* Free-form: bottom strip is transport-only; tools live in .smr-analyzer__draw-dock-tool-float */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock--freeform {
  max-height: none;
  background: rgba(0, 0, 0, 0.96);
}

/* Assessment (tabbed) mobile: same idea — tabs + export + bottom transport; tools in tool-float. */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock--assess-mobile {
  max-height: none;
  background: rgba(0, 0, 0, 0.96);
}

/* Seek/scrub stay in the column while locked (hidden there); no orphan transport chrome. */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock--assess-mobile .smr-analyzer__draw-dock-transport:empty {
  display: none !important;
}

/* Fixed right column: top-anchored so the chevron stays put when the rail collapses (no downward jump). */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tool-float {
  position: fixed;
  z-index: 100003;
  top: var(--smr-mobile-tool-float-top);
  right: max(6px, env(safe-area-inset-right, 0px));
  bottom: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: min(34vw, 7.5rem);
  max-width: 7.5rem;
  min-width: 5.5rem;
  max-height: min(
    var(--smr-mobile-tool-float-max-h, 100vh),
    calc(100vh - var(--smr-mobile-tool-float-top) - var(--smr-mobile-tool-float-bottom-gap) - 8px)
  );
  min-height: min(7.5rem, 28vh);
  pointer-events: none;
  border-radius: var(--smr-radius-card);
  overflow: hidden;
  box-shadow: 0 6px 26px rgba(0, 0, 0, 0.5);
  background: rgba(0, 0, 0, 0.96);
  box-sizing: border-box;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tool-float[hidden] {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tool-float > * {
  pointer-events: auto;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tool-float .smr-analyzer__draw-dock-side-rail {
  flex: 1 1 auto;
  min-height: min(5rem, 18vh);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border-left: none;
  margin-left: 0;
  padding: 6px 8px 18px;
  border-radius: 0;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tool-float .smr-analyzer__draw-dock-collapse-hit {
  border-top: none;
  border-bottom: 1px solid var(--smr-surface-border);
  border-radius: 0;
  flex-shrink: 0;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-tools-collapsed
  .smr-analyzer__draw-dock-tool-float
  .smr-analyzer__draw-dock-side-rail {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--practice-freeform.smr-analyzer--mobile-draw-tools-collapsed
  .smr-analyzer__draw-dock-tool-float {
  min-height: 0;
  max-height: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock[hidden] {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-panel--draw.smr-analyzer__draw-dock-panel--mobile-rail {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  /* Pass taps through to the video/canvas except on the rail + transport (see below). */
  pointer-events: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-main {
  display: flex;
  flex-direction: row;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  align-items: flex-start;
  pointer-events: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-main-spacer {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  pointer-events: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-side-rail {
  flex: 0 0 auto;
  width: min(34vw, 7.5rem);
  max-width: 7.5rem;
  min-width: 5.5rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border-left: 1px solid var(--smr-surface-border);
  padding: 4px 0 4px 8px;
  margin-left: 2px;
  box-sizing: border-box;
  pointer-events: auto;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-side-rail .smr-analyzer__tools-card {
  margin: 0;
  padding: 8px 6px 10px;
  gap: 8px;
  border-radius: var(--smr-radius-card);
  flex: 0 0 auto;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame.smr-analyzer--mobile-drawing
  .smr-analyzer__draw-dock-tool-float
  [data-toolbar]:not([hidden]) {
  display: flex !important;
}

/* Locked assessment draw: frame is frozen — hide scrubber/transport row; tabs only. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame.smr-analyzer--mobile-drawing
  .smr-analyzer__draw-dock--assess-mobile[data-dock-tab="draw"]
  .smr-analyzer__draw-dock-transport {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame.smr-analyzer--mobile-drawing
  .smr-analyzer__draw-dock--assess-mobile[data-dock-tab="draw"]
  .smr-analyzer__seek-stack {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-side-rail .smr-analyzer__tool-row {
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 6px;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-side-rail .smr-analyzer__tool {
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  padding: 10px 6px;
  font-size: 12px;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-side-rail .smr-analyzer__edit-row {
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 6px;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-side-rail .smr-analyzer__edit-btn {
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  font-size: 12px;
  padding: 8px 8px;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-transport {
  flex-shrink: 0;
  width: 100%;
  box-sizing: border-box;
  padding-top: 8px;
  margin-top: 4px;
  border-top: 1px solid var(--smr-surface-border-strong);
  pointer-events: auto;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-transport .smr-analyzer__seek-stack {
  margin: 0;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-transport .smr-analyzer__frame-step {
  padding: 8px 10px;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-transport .smr-analyzer__frame-nav.smr-button.smr-button-secondary {
  width: 48px;
  min-width: 48px;
  min-height: 44px;
  height: 44px;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__draw-dock--freeform {
  max-height: none;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock--freeform
  .smr-analyzer__draw-dock-transport {
  flex: 0 0 auto;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock--assess-mobile
  .smr-analyzer__draw-dock-transport {
  flex: 0 0 auto;
}

/* 「出力」: taller dock, scroll inside panel, sticky submit row (mobile locked). */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock[data-dock-tab="export"] {
  max-height: min(50vh, 560px);
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock[data-dock-tab="export"] .smr-analyzer__draw-dock-tabs {
  flex-shrink: 0;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock[data-dock-tab="export"] .smr-analyzer__draw-dock-panel--export:not([hidden]) {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-panel--export .smr-analyzer__actions {
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding-top: 10px;
  padding-bottom: 4px;
  background: rgba(0, 0, 0, 0.98);
  pointer-events: auto;
}

/* [hidden] must win over layout rules — otherwise both tabpanels stack and cover the canvas. */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-panel[hidden] {
  display: none !important;
}

/* Tabbed (non–free-form): default draw panel does not steal height before fullscreen rules. */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform) > .smr-analyzer__draw-dock-panel--draw:not([hidden]) {
  flex: 0 1 auto;
  min-height: 0;
  min-width: 0;
}

.smr-analyzer.smr-analyzer--mobile
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform)
  .smr-analyzer__draw-dock-panel--draw:not([hidden])
  .smr-analyzer__draw-dock-main {
  flex: 0 1 auto;
  min-height: 0;
}

/* Locked fullscreen + 描画: seek/scrub stay hidden (column); tabs first; full-width tools with scroll. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform)[data-dock-tab="draw"]
  > .smr-analyzer__draw-dock-panel--draw:not([hidden]) {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform)[data-dock-tab="draw"]
  .smr-analyzer__draw-dock-main {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  align-items: stretch;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform)[data-dock-tab="draw"]
  .smr-analyzer__draw-dock-main-spacer {
  display: none;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform)[data-dock-tab="draw"]
  .smr-analyzer__draw-dock-side-rail {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  max-width: none;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border-left: none;
  margin-left: 0;
  padding: 6px 8px 10px;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform)[data-dock-tab="draw"]
  .smr-analyzer__draw-dock-side-rail
  .smr-analyzer__tool-row {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform)[data-dock-tab="draw"]
  .smr-analyzer__draw-dock-side-rail
  .smr-analyzer__tool {
  flex: 1 1 28%;
  min-width: 3.25rem;
  max-width: 5.75rem;
  width: auto;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform)[data-dock-tab="draw"]
  .smr-analyzer__draw-dock-side-rail
  .smr-analyzer__edit-row {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform)[data-dock-tab="draw"]
  .smr-analyzer__draw-dock-side-rail
  .smr-analyzer__edit-btn {
  flex: 1 1 42%;
  min-width: 8.25rem;
  width: auto;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tabs {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
  pointer-events: auto;
  flex-shrink: 0;
  min-height: 0;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tab {
  flex: 1 1 0;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 8px 10px;
  border-radius: var(--smr-radius-button);
  border: 1px solid var(--smr-surface-border-strong);
  background: rgba(255, 255, 255, 0.04);
  color: var(--pga-guide-text-soft);
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tab.is-active {
  border-color: var(--pga-guide-accent);
  background: rgba(255, 120, 0, 0.22);
  color: #fff7ed;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tab:focus {
  outline: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tab:focus-visible {
  outline: 2px solid #ffb15c;
  outline-offset: 2px;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-panel {
  pointer-events: auto;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-panel--export:not([hidden]) {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-panel--export .smr-analyzer__practice-card {
  margin: 0;
  pointer-events: auto;
  flex-shrink: 0;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-panel--export .smr-analyzer__okay-choice {
  pointer-events: auto;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__submit-tap-catcher {
  pointer-events: auto;
  width: 100%;
  min-height: 48px;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(255, 120, 0, 0.25);
  display: block;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__submit-tap-catcher .smr-analyzer__submit {
  width: 100%;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__submit-tap-catcher.is-tapped .smr-analyzer__submit {
  filter: brightness(1.1);
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__submit-toast {
  margin: 0 10px 6px;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.4;
  color: #fffaf5;
  background: rgba(255, 120, 0, 0.22);
  border: 1px solid rgba(255, 120, 0, 0.45);
  border-radius: var(--smr-radius-card);
  text-align: center;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__submit-toast.is-error {
  color: #ffe8e0;
  background: rgba(180, 40, 20, 0.35);
  border-color: rgba(255, 90, 60, 0.55);
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__submit-toast[hidden] {
  display: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock .smr-analyzer__tools-card {
  pointer-events: auto;
  margin: 0;
  padding: 8px 8px 10px;
  gap: 8px;
  border-radius: var(--smr-radius-card);
  border-color: var(--smr-surface-border);
  background: rgba(0, 0, 0, 0.94);
  box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.35);
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock .smr-analyzer__section-label {
  display: none;
}

/* 「描画ツール」見出しはモバイルでは非表示（フロート／サイドレールは .draw-dock 外のため別セレクタ）。 */
.smr-analyzer.smr-analyzer--mobile [data-toolbar] > .smr-analyzer__section-label {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-side-rail .smr-analyzer__tool.is-active {
  border-color: #ff7800;
  background: rgba(255, 120, 0, 0.22);
  color: #ffb15c;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock .smr-analyzer__tool {
  flex: 1 1 calc(33.333% - 6px);
  min-width: 0;
  padding: 10px 6px;
  font-size: 13px;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock .smr-analyzer__edit-btn {
  flex: 1 1 calc(50% - 4px);
  min-width: 0;
  font-size: 13px;
  padding: 9px 10px;
}

/* Mobile: draw fullscreen — top chrome (unlock only). */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-fs-chrome {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  z-index: 100003;
  display: flex;
  justify-content: center;
  box-sizing: border-box;
  padding-top: max(4px, env(safe-area-inset-top, 0px));
  padding-left: max(10px, env(safe-area-inset-left, 0px));
  padding-right: max(10px, env(safe-area-inset-right, 0px));
  padding-bottom: 4px;
  pointer-events: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-fs-chrome[hidden] {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-fs-chrome-inner {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: stretch;
  justify-content: space-between;
  width: 100%;
  max-width: min(380px, calc(100vw - 20px));
  padding: 2px 8px 4px;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border-strong);
  background: rgba(0, 0, 0, 0.94);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
  pointer-events: auto;
  box-sizing: border-box;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__mobile-build-badge {
  flex: 0 0 auto;
  align-self: center;
  margin-left: auto;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(255, 120, 0, 0.75);
  background: rgba(255, 120, 0, 0.28);
  color: #fff7ed;
  font-size: 10px;
  font-weight: 800;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: 0.02em;
  line-height: 1.2;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}

/* QA deploy marker — visible for entire mobile assessment session (incl. address-align pre-lock). */
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__mobile-build-watermark {
  position: fixed;
  left: max(8px, env(safe-area-inset-left, 0px));
  bottom: max(148px, calc(env(safe-area-inset-bottom, 0px) + 132px));
  z-index: 100010;
  padding: 7px 11px;
  border-radius: 8px;
  border: 2px solid #ff7800;
  background: rgba(0, 0, 0, 0.94);
  color: #ffb15c;
  font-size: 14px;
  font-weight: 800;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: 0.04em;
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  box-shadow: 0 0 14px rgba(255, 120, 0, 0.5);
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__mobile-build-watermark[hidden] {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-collapse-hit {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 8px 12px;
  box-sizing: border-box;
  min-height: 44px;
  border: 0;
  border-top: 1px solid var(--smr-surface-border-strong);
  border-radius: 0;
  background: rgba(0, 0, 0, 0.96);
  color: var(--pga-guide-accent);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  pointer-events: auto;
  position: relative;
  z-index: 2;
  flex-shrink: 0;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-collapse-hit:focus {
  outline: none;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-collapse-hit:focus-visible {
  box-shadow: 0 0 0 2px rgba(255, 120, 0, 0.35);
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-collapse-icon {
  display: block;
  flex-shrink: 0;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-collapse-icon[hidden] {
  display: none !important;
}

/* Assessment mobile keeps the tool rail visible; the top chrome owns frame change/back. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-drawing .smr-analyzer__draw-dock-collapse-hit,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-export .smr-analyzer__draw-dock-collapse-hit {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-fs-chrome-inner .smr-button {
  flex: 1 1 0;
  min-width: 0;
  min-height: 44px;
  padding: 8px 10px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  border-radius: var(--smr-radius-button);
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-fs-chrome-inner .smr-analyzer__draw-fs-tool-toggle {
  flex: 0 0 42px;
  width: 42px;
  min-width: 42px;
  padding: 6px;
  align-items: center;
  justify-content: center;
  color: #ff9800 !important;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-fs-tool-toggle .smr-analyzer__draw-dock-collapse-icon {
  width: 24px;
  height: 24px;
}

/* Mobile: hide line/angle/circle rail only; scrubber + tabs stay (OnForm-style). */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-tools-collapsed
  .smr-analyzer__draw-dock-panel--draw:not([hidden])
  .smr-analyzer__draw-dock-main {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-tools-collapsed:not(
    .smr-analyzer--practice-freeform
  )
  .smr-analyzer__draw-dock-tool-float {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__head,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__row--top,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__col-tools {
  display: none !important;
}

/* Mobile draw fullscreen: bottom dock covers the orange/white hint strip — hide it (controls stay in toolbar/dock). */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__hint-details,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen [data-frame-help],
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__help--compact {
  display: none !important;
}

/* Practice · mobile fullscreen: no bottom transport row — collapse stray flex gap under tabs. */
.smr-analyzer.smr-analyzer--practice.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock--assess-mobile {
  gap: 0;
  row-gap: 0;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__col-visual > .smr-analyzer__seek-stack,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__cal-visual-bundle
  > .smr-analyzer__seek-stack,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__col-visual
  > .smr-analyzer__row:not(.smr-analyzer__row--zoom),
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen [data-analyzer-freeze-row] {
  display: none !important;
}

/* Stage is media/canvas viewport only — top chrome (.smr-analyzer__draw-fs-chrome) overlays fixed above it. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--frame-locked .smr-analyzer__canvas-stack {
  width: auto;
  height: auto;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--frame-locked .smr-analyzer__canvas-draw,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--frame-locked .smr-analyzer__canvas-base {
  object-fit: contain;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__col-visual
  .smr-analyzer__stage {
  width: 100%;
  align-self: stretch;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__stage-scroll {
  width: 100%;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__zoom-outer {
  max-width: 100%;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--frame-locked .smr-analyzer__canvas-stack {
  width: auto;
  height: auto;
}

/* Single-position portrait draw: center the complete source frame inside the control-safe viewport.
   JS supplies a proportional width/height; two-position workbenches retain their exact A/B viewport. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-single-position-fit
  .smr-analyzer__stage-scroll {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-single-position-fit
  .smr-analyzer__zoom-outer {
  flex: 0 0 auto;
  margin: auto !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__col-visual
  .smr-analyzer__stage {
  width: 100%;
  align-self: stretch;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__stage-scroll {
  width: 100%;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__zoom-outer {
  max-width: 100%;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--frame-locked .smr-analyzer__canvas-stack {
  width: auto;
  height: auto;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__stage {
  padding-top: 0;
  box-sizing: border-box;
}

/* Export tab needs a tall dock + internal scroll; draw tab stays shorter to leave room for the stage. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__draw-dock {
  min-height: 0;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__draw-dock-tabs {
  flex-shrink: 0;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--freeform):not(
    .smr-analyzer__draw-dock--assess-mobile
  )[data-dock-tab="draw"] {
  max-height: min(42vh, 400px);
}

/* Assess draw tab: dock is only tabs + scrubber — no legacy in-dock tool panel height cap. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock--assess-mobile[data-dock-tab="draw"] {
  max-height: none;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__draw-dock[data-dock-tab="export"] {
  max-height: min(52vh, 620px);
}

/* Assessment: tool column hides on 出力 — give the submit / ゾーン panel more vertical room. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen
  .smr-analyzer__draw-dock--assess-mobile[data-dock-tab="export"] {
  max-height: min(58vh, 700px);
  padding-bottom: max(12px, calc(env(safe-area-inset-bottom, 0px) + 8px));
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill .smr-analyzer__body {
  padding-top: max(8px, env(safe-area-inset-top, 0px));
}

.smr-upload-analyzer-row {
  margin-bottom: 12px;
}

.smr-practice-entry {
  margin-top: 8px;
}

.smr-practice-entry__banner {
  margin-bottom: 14px;
}

.smr-practice-admin-preview {
  border: 1px dashed rgba(255, 120, 0, 0.5);
  border-radius: 1px;
  padding-top: 2px;
  background: rgba(255, 120, 0, 0.03);
}

.smr-practice-preview-chart {
  margin: 0 0 18px;
  padding: 16px 18px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.08), rgba(255, 255, 255, 0.02));
}

.smr-practice-preview-chart__title {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--pga-guide-text-soft);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.smr-practice-preview-chart__row {
  display: grid;
  grid-template-columns: minmax(0, 9.5rem) 1fr 2.75rem;
  gap: 10px;
  align-items: center;
  margin-bottom: 8px;
  font-size: 13px;
}

.smr-practice-preview-chart__row:last-child {
  margin-bottom: 0;
}

.smr-practice-preview-chart__when {
  color: var(--pga-guide-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.smr-practice-preview-chart__track {
  height: 11px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.smr-practice-preview-chart__fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #ff9c3c, #ff6600);
  min-width: 4px;
}

.smr-practice-preview-chart__val {
  text-align: right;
  font-weight: 700;
  color: var(--pga-guide-text);
}

.smr-page--practice {
  min-height: 50vh;
}

.smr-practice-shell {
  max-width: 960px;
  margin: 0 auto;
  position: relative;
  min-height: 200px;
}

.smr-practice-shell__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: clamp(28px, 4vw, 36px);
  padding-bottom: clamp(16px, 2.5vw, 20px);
  border-bottom: 1px solid var(--smr-surface-border);
}

.smr-practice-shell__bar-text {
  flex: 1 1 240px;
  min-width: 0;
}

.smr-practice-shell__headline {
  margin: 4px 0 0;
  font-size: clamp(1.25rem, 2.5vw, 1.65rem);
  line-height: 1.25;
  color: var(--pga-guide-text);
}

.smr-practice-shell__sub {
  margin: 8px 0 0;
  font-size: 14px;
  color: var(--pga-guide-text-muted);
}

.smr-practice-shell__bar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}

.smr-practice-shell__body {
  padding-top: 4px;
}

.smr-practice-set-hero {
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  border-top: 3px solid var(--pga-guide-accent);
  padding: clamp(18px, 3vw, 28px);
  margin-bottom: clamp(28px, 4vw, 40px);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

.smr-practice-set-hero__line {
  margin: 0 0 10px;
  font-size: clamp(15.5px, 1.5vw, 17px);
  line-height: 1.8;
  color: var(--pga-guide-text-soft);
}

.smr-practice-set-hero__line:last-child {
  margin-bottom: 0;
}

.smr-practice-rep-delete-bar {
  margin: -8px 0 16px;
}

.smr-practice-rep-delete-bar__btn {
  width: 100%;
  max-width: 320px;
}

.smr-practice-set-hint {
  font-size: 15px;
  line-height: 1.6;
  color: var(--pga-guide-text-muted);
  margin: 0 0 20px;
}

.smr-practice-mastery-test-guide {
  margin-bottom: 20px;
  padding: 18px 20px;
  border: 1px solid rgba(255, 165, 92, 0.38);
  border-radius: 1px;
  background: rgba(255, 120, 40, 0.07);
}

.smr-practice-mastery-test-guide__title {
  margin: 0 0 12px;
  font-size: 1.08rem;
  font-weight: 800;
  color: var(--pga-guide-text);
}

.smr-practice-mastery-test-guide__p {
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.65;
  color: var(--pga-guide-text-muted);
}

.smr-practice-mastery-test-guide__p:last-child {
  margin-bottom: 0;
}

.smr-practice-mastery-test-guide__p--outcome {
  color: var(--pga-guide-text-soft);
}

.smr-practice-mastery-test-guide--official {
  border-left: 3px solid rgba(255, 200, 120, 0.95);
  padding-left: 16px;
}

.smr-practice-banner--mastery-done .smr-practice-mastery-outcome {
  font-size: 1.05rem;
  margin: 0.4rem 0 0;
}

.smr-practice-mastery-outcome--pass {
  color: #2e7d32;
}

.smr-practice-mastery-outcome--fail {
  color: #c62828;
}

.smr-practice-inline-actions--stack {
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
}

.smr-practice-instruction {
  margin-bottom: clamp(32px, 5vw, 44px);
  padding: clamp(18px, 3vw, 24px);
  border: 1px solid var(--smr-surface-border);
  border-radius: var(--smr-radius-card);
  background: rgba(255, 255, 255, 0.03);
}

.smr-practice-instruction__copy {
  margin: 0 0 14px;
  font-size: clamp(15.5px, 1.5vw, 17px);
  line-height: 1.8;
  color: var(--pga-guide-text-soft);
}

.smr-practice-instruction__title {
  margin: 0 0 10px;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--pga-guide-text);
}

.smr-practice-instruction__title {
  margin: 0 0 10px;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--pga-guide-text);
}

.smr-practice-instruction__copy:last-child {
  margin-bottom: 0;
}

.smr-practice-instruction__copy--muted {
  font-size: 13px;
}

.smr-practice-set-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-top: 8px;
}

.smr-practice-set-actions--secondary {
  margin-top: 0;
  margin-bottom: 16px;
  justify-content: flex-start;
  gap: 12px;
}

.smr-practice-set-actions--row {
  margin-top: 0;
  margin-bottom: 12px;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
}

.smr-practice-more-menu {
  position: relative;
  display: inline-block;
  z-index: 0;
}

.smr-practice-more-menu[open] {
  z-index: 1000;
}

.smr-practice-more-menu summary {
  list-style: none;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  color: var(--pga-guide-text-soft);
  padding: 8px 10px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: var(--pga-guide-panel);
}

.smr-practice-more-menu summary::-webkit-details-marker {
  display: none;
}

.smr-practice-more-menu__summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 40px;
  padding: 8px 14px;
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.08em;
}

.smr-practice-more-menu--banner {
  margin-top: 14px;
}

.smr-practice-more-menu--banner .smr-practice-more-menu__summary {
  display: inline-flex;
}

.smr-practice-more-menu__panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 999;
  min-width: 220px;
  width: max-content;
  max-width: min(320px, 90vw);
  padding: 8px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  background: #111111;
  background-color: #111111;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.55);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-sizing: border-box;
}

.smr-practice-more-menu__btn {
  display: inline-flex;
  align-items: center;
  width: 100%;
  justify-content: flex-start;
  white-space: nowrap;
  margin: 0;
  padding: 10px 12px;
  border-radius: 1px;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: var(--pga-guide-text);
  box-shadow: none;
}

.smr-practice-more-menu__btn:hover,
.smr-practice-more-menu__btn:focus {
  background: rgba(255, 120, 0, 0.14);
  border-color: rgba(255, 120, 0, 0.45);
  outline: none;
}

.smr-practice-more-menu__btn:focus-visible {
  outline: 2px solid rgba(255, 120, 0, 0.65);
  outline-offset: 2px;
}

.smr-practice-more-menu__btn.is-danger {
  color: #ffb4b4;
  background: #1a1010;
  border-color: rgba(255, 120, 120, 0.4);
}

.smr-practice-more-menu__btn.is-danger:hover,
.smr-practice-more-menu__btn.is-danger:focus {
  background: rgba(255, 80, 80, 0.18);
  border-color: rgba(255, 140, 140, 0.55);
}

.smr-practice-more-menu__btn.is-danger:focus-visible {
  outline-color: rgba(255, 160, 160, 0.75);
}

/* Mobile: full-screen scrim + bottom sheet so the menu never clips off-screen */
.smr-practice-more-menu__scrim {
  display: none;
}

@media (max-width: 768px) {
  .smr-practice-more-menu__scrim {
    display: block;
    position: fixed;
    inset: 0;
    left: max(0px, env(safe-area-inset-left, 0px));
    right: max(0px, env(safe-area-inset-right, 0px));
    top: max(0px, env(safe-area-inset-top, 0px));
    bottom: max(0px, env(safe-area-inset-bottom, 0px));
    z-index: 99998;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(0, 0, 0, 0.45);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .smr-practice-more-menu[open] .smr-practice-more-menu__panel {
    position: fixed;
    left: max(12px, env(safe-area-inset-left, 0px));
    right: max(12px, env(safe-area-inset-right, 0px));
    bottom: max(12px, env(safe-area-inset-bottom, 0px));
    top: auto;
    width: auto;
    max-width: none;
    min-width: 0;
    z-index: 99999;
    background: #111111;
    border: 1px solid var(--pga-guide-border-strong);
    box-shadow: 0 -18px 44px rgba(0, 0, 0, 0.65);
  }
}

.smr-practice-rep-edit__shot {
  margin: 12px 0 14px;
}

.smr-practice-rep-edit__shot-label {
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--pga-guide-text-soft);
}

.smr-practice-rep-edit__shot-img {
  display: block;
  width: 100%;
  max-height: 200px;
  object-fit: contain;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: #0a0a0a;
}

.smr-practice-img-frame {
  position: relative;
  margin: 0;
  min-height: 120px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: #0a0a0a;
}

.smr-practice-img-frame--rep-edit {
  min-height: 200px;
}

.smr-practice-img-frame--set-best {
  min-height: 140px;
}

.smr-practice-img-frame .smr-managed-evidence-img {
  display: block;
  width: 100%;
  max-height: 200px;
  object-fit: contain;
  border-radius: 1px;
}

.smr-practice-img-frame .smr-practice-rep-edit__shot-img {
  border: none;
}

.smr-practice-img-frame__fail {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 12px;
  text-align: center;
  min-height: 120px;
  box-sizing: border-box;
}

.smr-practice-img-frame__fail-title {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--pga-guide-text-soft);
}

.smr-practice-img-frame__fail-copy {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--pga-guide-text-muted);
}

.smr-practice-img-frame__retry {
  margin-top: 4px;
}

.smr-practice-rep-edit__status {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.45;
}

.smr-practice-rep-timeline-wrap {
  margin: 14px 0 10px;
}

.smr-practice-rep-timeline__label {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--pga-guide-text-muted);
}

.smr-practice-rep-timeline__loading {
  color: var(--pga-guide-text-muted);
  font-size: 14px;
  font-weight: 600;
  margin: 0;
}

.smr-practice-rep-timeline {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  justify-content: space-between;
  overflow-x: auto;
  padding-bottom: 4px;
  -webkit-overflow-scrolling: touch;
}

.smr-practice-rep-cell {
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 6px 4px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: var(--pga-guide-panel);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  color: var(--pga-guide-text);
  cursor: default;
}

button.smr-practice-rep-cell {
  cursor: pointer;
}

.smr-practice-rep-cell--ok {
  border-color: rgba(46, 160, 100, 0.45);
  background: rgba(46, 160, 100, 0.08);
}

.smr-practice-rep-cell--miss {
  border-color: rgba(200, 80, 70, 0.45);
  background: rgba(200, 80, 70, 0.07);
}

.smr-practice-rep-cell--empty {
  opacity: 0.55;
}

.smr-practice-rep-cell__sym {
  font-size: 15px;
  line-height: 1;
}

.smr-practice-rep-cell__mini {
  font-size: 9px;
  font-weight: 600;
  color: var(--pga-guide-text-muted);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.smr-practice-rep-edit {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right))
    max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  box-sizing: border-box;
  overscroll-behavior: none;
}

@media (min-width: 560px) {
  .smr-practice-rep-edit {
    align-items: center;
  }
}

.smr-practice-rep-edit__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 6, 10, 0.86);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.smr-practice-rep-edit--safe-top .smr-practice-rep-edit__backdrop {
  top: 0;
  background: rgba(4, 6, 10, 0.86);
}

.smr-practice-rep-edit__panel {
  position: relative;
  z-index: 1;
  width: min(420px, 100%);
  max-height: min(88vh, 640px);
  overflow: auto;
  overflow-anchor: none;
  overscroll-behavior: contain;
  padding: 20px 20px 18px;
  margin: 0;
  background: linear-gradient(180deg, #1a1f2a 0%, #12151c 100%);
  background-color: #161a22;
  border: 1px solid var(--pga-guide-border-strong);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.72);
}

.smr-practice-rep-edit__panel h3 {
  margin: 0 0 12px;
  font-size: 18px;
}

.smr-practice-rep-edit__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: rgba(0, 0, 0, 0.2);
}

.smr-practice-rep-edit__navbtn {
  flex: 1 1 auto;
  min-width: 0;
}

.smr-practice-rep-edit__navpos {
  font-size: 13px;
  font-weight: 700;
  color: var(--pga-guide-text-muted);
  flex: 0 0 auto;
}

.smr-practice-rep-edit__warn {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--pga-guide-text-muted);
}

.smr-practice-rep-edit__ok {
  display: flex;
  gap: 10px;
  margin-bottom: 12px;
}

.smr-practice-rep-edit__panel button {
  touch-action: manipulation;
}

.smr-practice-rep-edit__okbtn {
  flex: 1;
  padding: 12px 10px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: var(--pga-guide-panel);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.smr-practice-rep-edit__okbtn.is-selected,
.smr-practice-rep-edit__okbtn[aria-pressed="true"] {
  border-color: var(--pga-guide-accent, #ff7800);
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.3), rgba(255, 120, 0, 0.14));
  color: #ffffff;
  box-shadow:
    inset 0 0 0 1px rgba(255, 177, 92, 0.34),
    0 0 0 1px rgba(255, 120, 0, 0.2),
    0 10px 24px rgba(255, 120, 0, 0.2);
}

.smr-practice-rep-edit__miss {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.5;
}

.smr-practice-rep-edit__missbtn {
  margin-bottom: 14px;
}

.smr-practice-rep-edit__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 8px;
}

.smr-practice-rep-edit__busy {
  position: sticky;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 14px -4px -4px;
  padding: 12px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  background: rgba(12, 16, 24, 0.94);
  color: var(--pga-guide-text);
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 -10px 28px rgba(0, 0, 0, 0.32);
}

.smr-practice-rep-edit__spinner {
  width: 18px;
  height: 18px;
  border: 2px solid var(--pga-guide-border-strong);
  border-top-color: var(--pga-guide-accent, #ff7800);
  border-radius: 50%;
  animation: smr-practice-spin 0.75s linear infinite;
  flex: 0 0 auto;
}

.smr-practice-set-hint--muted {
  font-size: 13px;
  color: var(--pga-guide-text-muted);
}

.smr-practice-banner--notice {
  border-color: var(--pga-guide-border-strong);
}

/* Fixed to the viewport so the spinner stays visible even when the shell content is tall and the user is scrolled to the top (mobile + desktop). */
.smr-practice-loading {
  position: fixed;
  inset: 0;
  z-index: 99990;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right))
    max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  box-sizing: border-box;
}

.smr-practice-loading__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 18, 22, 0.55);
}

.smr-practice-loading__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 28px 32px;
  max-width: min(420px, 92vw);
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: var(--pga-guide-panel);
  box-shadow: var(--pga-guide-shadow);
}

.smr-practice-loading__spinner {
  width: 40px;
  height: 40px;
  border: 3px solid var(--pga-guide-border-strong);
  border-top-color: var(--pga-guide-accent, #e85a24);
  border-radius: 50%;
  animation: smr-practice-spin 0.75s linear infinite;
}

.smr-practice-loading__text {
  margin: 0;
  font-size: 15px;
  color: var(--pga-guide-text);
  text-align: center;
}

@keyframes smr-practice-spin {
  to {
    transform: rotate(360deg);
  }
}

.smr-practice-resume-banner {
  margin: 0 0 20px;
  padding: 18px 20px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: var(--pga-guide-panel);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.smr-practice-resume-banner p {
  margin: 0 0 14px;
  line-height: 1.5;
  color: var(--pga-guide-text);
}

.smr-practice-resume-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.smr-practice-link-btn {
  border: none;
  background: none;
  padding: 8px 0;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--pga-guide-text-soft);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.smr-practice-link-btn:hover,
.smr-practice-link-btn:focus {
  color: var(--pga-guide-accent-soft);
  outline: none;
}

.smr-practice-link-btn--danger {
  color: #c62828;
}

.smr-practice-link-btn--danger:hover,
.smr-practice-link-btn--danger:focus {
  color: #b71c1c;
}

.smr-practice-panel {
  width: min(100%, 520px);
  background: var(--pga-guide-panel);
  color: var(--pga-guide-text);
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  box-shadow: var(--pga-guide-shadow);
  padding: clamp(18px, 3vw, 24px);
  margin-bottom: clamp(32px, 5vw, 44px);
}

.smr-practice-panel--wide {
  width: min(100%, 920px);
}

.smr-practice-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.smr-practice-panel__head h3 {
  margin: 0;
  font-size: 1.28rem;
  color: var(--pga-guide-text);
}

.smr-practice-icon-btn {
  border: none;
  background: transparent;
  color: var(--pga-guide-text-muted);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  padding: 0 4px;
}

.smr-practice-mode-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.smr-practice-tab {
  flex: 1 1 auto;
  min-width: 120px;
  padding: 10px 12px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  background: var(--pga-guide-panel);
  color: var(--pga-guide-text-soft);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.smr-practice-tab.is-active {
  border-color: var(--pga-guide-accent);
  background: rgba(255, 120, 0, 0.12);
  color: var(--pga-guide-text);
}

.smr-practice-panel__hint,
.smr-practice-panel__meta {
  font-size: clamp(16px, 0.35vw + 14.5px, 18px);
  color: var(--pga-guide-text-muted);
  line-height: 1.65;
  margin: 0 0 14px;
  font-weight: 500;
}

.smr-practice-hub-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.smr-practice-pick-card {
  text-align: left;
  border: 1px solid var(--pga-guide-border-strong);
  background: var(--pga-guide-panel);
  color: var(--pga-guide-text);
  border-radius: 1px;
  padding: 14px;
  cursor: pointer;
  font: inherit;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.smr-practice-pick-card:hover {
  border-color: rgba(255, 120, 0, 0.55);
  box-shadow: 0 8px 24px rgba(255, 120, 0, 0.12);
}

.smr-practice-pick-index {
  display: block;
  font-size: 13px;
  color: var(--pga-guide-accent-soft);
  margin-bottom: 6px;
}

.smr-practice-pick-card p {
  margin: 8px 0 0;
  font-size: 14px;
  color: var(--pga-guide-text-muted);
}

.smr-practice-panel__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.smr-practice-banner {
  border-radius: 2px;
  padding: 16px;
  margin-bottom: 16px;
  font-size: clamp(14.5px, 1.4vw, 15.5px);
  line-height: 1.7;
}

.smr-practice-banner--retest {
  background: rgba(255, 120, 0, 0.1);
  border: 1px solid rgba(255, 120, 0, 0.38);
  color: var(--pga-guide-text-soft);
}

.smr-practice-banner--done {
  background: rgba(255, 120, 0, 0.12);
  border: 1px solid rgba(255, 160, 80, 0.45);
  color: var(--pga-guide-text-soft);
}

.smr-practice-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.smr-practice-inline-actions__danger {
  border-color: rgba(198, 40, 40, 0.45);
  color: #b71c1c;
}

.smr-practice-video {
  margin-bottom: 0;
}

.smr-practice-video--embedded {
  margin-top: 16px;
}

.smr-practice-video--embedded .smr-resource__video {
  min-height: 180px;
}

.smr-practice-video--embedded .smr-video-frame {
  aspect-ratio: 16 / 9;
  background: #000;
}

.smr-practice-video__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  font-size: 14px;
  font-weight: 700;
  color: var(--pga-guide-text-soft);
}

.smr-practice-video__label {
  color: var(--pga-guide-accent-soft);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 12px;
}

.smr-link-like {
  border: none;
  background: none;
  color: var(--pga-guide-accent-soft);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  font: inherit;
  padding: 0;
}

.smr-practice-video-hidden-note {
  font-size: 13px;
  color: var(--pga-guide-text-muted);
  margin: 12px 0 0;
}

.smr-practice-panel__busy {
  min-height: 1.25em;
  font-size: 14px;
  color: var(--pga-guide-text-muted);
  margin: 0 0 12px;
}

.smr-practice-table-wrap {
  overflow-x: auto;
  margin-bottom: 14px;
}

.smr-practice-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.smr-practice-table td {
  color: var(--pga-guide-text-muted);
}

.smr-practice-table th,
.smr-practice-table td {
  border: 1px solid var(--pga-guide-border-strong);
  padding: 8px 10px;
  text-align: left;
}

.smr-practice-table th {
  background: var(--pga-guide-panel);
  color: var(--pga-guide-accent-soft);
  font-weight: 800;
}

@media (max-width: 768px) {
  @supports (min-height: 100dvh) {
    .smr-analyzer__panel {
      min-height: 100dvh;
    }
  }

  /* Narrow viewports: panel fills overlay and only the body scrolls (avoids trap when body is overflow:hidden). */
  .smr-analyzer__panel {
    position: absolute;
    inset: 0;
    left: 0;
    top: 0;
    transform: none;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    min-height: 0;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .smr-analyzer__head {
    flex-shrink: 0;
    padding: 12px 14px;
    padding-top: max(12px, env(safe-area-inset-top, 0px));
  }

  .smr-analyzer__title {
    font-size: 1.15rem;
  }

  .smr-analyzer__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    padding: 12px 14px 16px;
    padding-bottom: max(16px, env(safe-area-inset-bottom, 0px));
  }

  /* When zoomed, pan/zoom lives in the stage — do not let the panel body steal vertical drags. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-zoom-pan .smr-analyzer__body {
    overflow-y: hidden;
  }

  .smr-analyzer__grid {
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: stretch;
  }

  .smr-analyzer__col-tools {
    order: 2;
    gap: 12px;
  }

  .smr-analyzer__col-visual {
    order: 1;
  }

  .smr-analyzer:not(.smr-analyzer--mobile-fill) .smr-analyzer__stage {
    max-height: min(40vh, 320px);
  }

  .smr-analyzer__tool {
    flex: 1 1 calc(50% - 4px);
    min-width: calc(50% - 8px);
  }

  /* Phone layout (class set at open from matchMedia): hide zoom buttons, reorder 固定 under stage. */
  .smr-analyzer.smr-analyzer--mobile {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__col-visual {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__col-visual .smr-analyzer__stage {
    order: 1;
    align-self: stretch;
    overscroll-behavior: contain;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__zoom-outer {
    touch-action: pan-x pan-y;
  }

  .smr-analyzer.smr-analyzer--mobile:not(.smr-analyzer--mobile-fill) .smr-analyzer__col-visual .smr-analyzer__stage {
    max-height: min(38vh, 300px);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active:not(.smr-analyzer--mobile-fill)
    .smr-analyzer__col-visual
    .smr-analyzer__stage {
    max-height: min(58vh, 560px);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__col-visual .smr-analyzer__stage {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding: 0 18px max(12px, env(safe-area-inset-bottom, 0px));
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill [data-workspace] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__grid {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__col-visual {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__video-section[data-video-section] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__col-tools {
    flex: 0 1 auto;
    max-height: min(30vh, 220px);
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__head {
    padding-top: max(6px, env(safe-area-inset-top, 0px));
    padding-bottom: 10px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill .smr-analyzer__title {
    font-size: 1.05rem;
  }

  /* Mobile assessment: post-cal lock step is a document flow screen, not a trapped fill viewport. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-postcal-lock .smr-analyzer__body {
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: max(96px, calc(env(safe-area-inset-bottom, 0px) + 72px));
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-postcal-lock [data-workspace],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-postcal-lock .smr-analyzer__grid,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-postcal-lock .smr-analyzer__col-visual,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-postcal-lock .smr-analyzer__video-section[data-video-section] {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-postcal-lock .smr-analyzer__col-tools {
    flex: 0 0 auto;
    max-height: none;
    overflow: visible;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-postcal-lock [data-analyzer-freeze-row] {
    margin-bottom: max(8px, env(safe-area-inset-bottom, 0px));
  }

  /* Mobile assessment: pre-lock workspace scrolls naturally; freeze button stays in document flow below scrubber. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-prelock-scroll .smr-analyzer__body {
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 96px);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-prelock-scroll [data-workspace],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-prelock-scroll .smr-analyzer__grid,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-prelock-scroll .smr-analyzer__col-visual,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-prelock-scroll .smr-analyzer__video-section[data-video-section] {
    height: auto;
    min-height: auto;
    overflow: visible;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-prelock-scroll .smr-analyzer__col-tools {
    flex: 0 0 auto;
    max-height: none;
    overflow: visible;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-prelock-scroll [data-analyzer-freeze-row] {
    position: static;
    z-index: auto;
    margin: 16px 0 calc(env(safe-area-inset-bottom, 0px) + 24px);
    padding: 0;
    background: transparent;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-prelock-scroll .smr-analyzer__freeze-btn {
    width: 100%;
    min-height: 58px;
    justify-content: center;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__col-visual > .smr-analyzer__row:not(.smr-analyzer__row--zoom),
  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__video-section > .smr-analyzer__row:not(.smr-analyzer__row--zoom) {
    order: 2;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__col-visual > .smr-analyzer__seek-stack,
  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__cal-visual-bundle > .smr-analyzer__seek-stack {
    order: 3;
    margin: 0;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__col-visual > .smr-analyzer__seek-stack .smr-analyzer__frame-nav.smr-button.smr-button-secondary,
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__cal-visual-bundle
    > .smr-analyzer__seek-stack
    .smr-analyzer__frame-nav.smr-button.smr-button-secondary {
    width: 52px;
    min-width: 52px;
    min-height: 48px;
    height: 48px;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__row--zoom {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__freeze-btn {
    width: 100%;
    justify-content: center;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__tools-card {
    padding: 12px 12px 14px;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__practice-card {
    padding: 12px 12px 14px;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__actions {
    padding-top: 12px;
  }

  .smr-analyzer.smr-analyzer--mobile .smr-analyzer__calibration-card {
    padding: 12px;
    gap: 10px;
  }

  /* Mobile: guided calibration — large stage, fixed bottom sheet, no body scroll. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding: 0 12px max(10px, env(safe-area-inset-bottom, 0px));
    display: flex;
    flex-direction: column;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active [data-workspace] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__grid {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__col-visual {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding: 6px 0 4px;
    gap: 8px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__col-tools {
    flex: 0 0 auto;
    max-height: min(38dvh, 300px);
    overflow: hidden;
    padding-top: 0;
    gap: 8px;
    min-height: 0;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__stage {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    width: 100%;
    overflow: hidden;
    border-radius: var(--smr-radius-media);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-tap-mode .smr-analyzer__stage {
    box-shadow: 0 0 0 2px rgba(255, 178, 92, 0.55);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__calibration-card {
    margin: 0;
    max-height: none;
    overflow: visible;
    border-radius: var(--smr-radius-card) var(--smr-radius-card) 0 0;
    padding: 12px 14px max(12px, env(safe-area-inset-bottom, 0px));
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__calibration-copy {
    font-size: 15px;
    line-height: 1.65;
    max-height: 4.6em;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__calibration-actions {
    display: grid;
    gap: 8px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__calibration-actions .smr-button {
    min-height: 48px;
    font-size: 16px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--calibration-address .smr-analyzer__calibration-title,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--calibration-anchors .smr-analyzer__calibration-title {
    display: none;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--calibration-address
    .smr-analyzer__section-label[data-calibration-kicker],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--calibration-anchors
    .smr-analyzer__section-label[data-calibration-kicker] {
    display: none;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active .smr-analyzer__help--compact[data-frame-help] {
    display: none;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--mobile-calibration-fill .smr-analyzer__col-tools {
    max-height: min(38dvh, 300px);
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--mobile-calibration-fill .smr-analyzer__col-visual .smr-analyzer__stage {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
  }

  /* Phase-owned mobile layout (authoritative via analyzerPhase / syncPhaseClasses). */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-video .smr-analyzer__body {
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-postcal-prelock .smr-analyzer__body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 120px);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-postcal-prelock [data-workspace],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-postcal-prelock .smr-analyzer__grid,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-postcal-prelock .smr-analyzer__col-visual,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-postcal-prelock .smr-analyzer__video-section[data-video-section] {
    height: auto !important;
    min-height: auto !important;
    overflow: visible !important;
    flex: 0 0 auto !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-postcal-prelock [data-analyzer-freeze-row] {
    position: static !important;
    z-index: auto !important;
    margin: 16px 0 calc(env(safe-area-inset-bottom, 0px) + 32px) !important;
    padding: 0 !important;
    background: transparent !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-drawing .smr-analyzer__body,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-export .smr-analyzer__body {
    overflow: hidden;
  }

  /* Full-screen calibration wizard: one step at a time, no cramped split / inner scroll. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard {
    position: fixed;
    inset: 0;
    z-index: 99999;
    width: 100vw;
    max-width: 100vw;
    height: 100vh;
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
    background: var(--pga-guide-bg);
    box-sizing: border-box;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__panel {
    width: 100vw;
    max-width: 100vw;
    height: 100%;
    max-height: 100dvh;
    border-radius: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__body {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    max-height: none;
    overflow: hidden;
    padding: 0;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard [data-workspace] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__grid {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    gap: 0;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__col-visual {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding: 10px 12px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__col-tools {
    flex: 0 0 auto;
    max-height: none !important;
    min-height: 0;
    overflow: visible !important;
    padding: 10px 12px max(14px, env(safe-area-inset-bottom, 0px));
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__stage {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: none !important;
    border-radius: var(--smr-radius-media);
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__calibration-card {
    margin: 0;
    border-radius: var(--smr-radius-card);
    padding: 12px;
    max-height: none;
    overflow: visible;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__calibration-copy {
    max-height: none;
    overflow: visible;
    font-size: 15px;
    line-height: 1.75;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__hint-details,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__tools-card,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__practice-card,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__actions,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__row--zoom {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard.smr-analyzer--calibration-anchors .smr-analyzer__seek-stack {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__workspace {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    gap: 0;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow:not([hidden]) {
    position: absolute;
    inset: 0;
    z-index: 8;
    max-height: 100%;
    background: var(--pga-guide-bg);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-video
    .smr-analyzer__workspace {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: max(96px, calc(env(safe-area-inset-bottom, 0px) + 72px));
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-video
    .smr-analyzer__cal-flow:not([hidden]) {
    position: relative;
    inset: auto;
    min-height: 100%;
    max-height: none;
    overflow: visible;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-screen:not([hidden]) {
    padding-left: max(14px, env(safe-area-inset-left, 0px));
    padding-right: max(14px, env(safe-area-inset-right, 0px));
  }

  /* Top step pill over video during anchor calibration (mobile). */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--calibration-address .smr-analyzer__row--top,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--calibration-anchors .smr-analyzer__row--top {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--cal-anchor-step-overlay
    .smr-analyzer__col-visual {
    position: relative;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-active.smr-analyzer--cal-anchor-step-overlay
    .smr-analyzer__calibration-step:not([hidden]) {
    position: absolute;
    left: 10px;
    right: 10px;
    top: max(4px, env(safe-area-inset-top, 0px));
    z-index: 5;
    margin: 0;
    padding: 9px 12px;
    border-radius: var(--smr-radius-card);
    background: rgba(0, 0, 0, 0.58);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.25;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
    pointer-events: none;
  }

  /* Minimized calibration sheet: maximize video, single expand control. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-sheet-collapsed .smr-analyzer__calibration-card {
    padding: 8px 10px max(10px, env(safe-area-inset-bottom, 0px));
    background: transparent;
    box-shadow: none;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-sheet-collapsed .smr-analyzer__calibration-card .smr-analyzer__section-label,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-sheet-collapsed .smr-analyzer__calibration-card .smr-analyzer__calibration-title,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-sheet-collapsed .smr-analyzer__calibration-card .smr-analyzer__calibration-copy,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-sheet-collapsed .smr-analyzer__calibration-card .smr-analyzer__calibration-longhelp {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-sheet-collapsed .smr-analyzer__calibration-actions {
    display: flex;
    justify-content: center;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-sheet-collapsed.smr-analyzer--calibration-active .smr-analyzer__col-tools {
    flex: 0 0 0 !important;
    max-height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    opacity: 0;
    pointer-events: none;
  }

  /* Mobile calibration address: video frame in [data-cal-flow-visual]; scrubber is a sibling below it. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address
    .smr-analyzer__cal-flow-visual {
    position: relative;
    flex: 0 0 auto;
    height: auto;
    min-height: 0;
    margin: 0;
    display: block;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-anchors
    .smr-analyzer__cal-flow-visual {
    position: relative;
    flex: 1 1 auto;
    min-height: min(54dvh, 420px);
    margin: 0;
    display: flex;
    flex-direction: column;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address
    .smr-analyzer__cal-visual-bundle {
    height: clamp(240px, 38vh, 340px);
    height: clamp(240px, 38svh, 340px);
    min-height: 0 !important;
    max-height: clamp(240px, 38vh, 340px) !important;
    max-height: clamp(240px, 38vh, 340px) !important;
    max-height: clamp(240px, 38svh, 340px) !important;
    flex: 0 0 auto;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-anchors
    .smr-analyzer__cal-visual-bundle {
    flex: 1 1 auto;
    min-height: min(54dvh, 420px) !important;
    max-height: none !important;
    height: auto;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address .smr-analyzer__stage {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0 !important;
    max-height: none !important;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-anchors .smr-analyzer__stage {
    position: relative;
    width: 100%;
    flex: 1 1 auto;
    min-height: min(54dvh, 420px) !important;
    max-height: none !important;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address .smr-analyzer__zoom-outer {
    max-width: 100%;
    max-height: 100%;
    margin: auto;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-anchors .smr-analyzer__zoom-outer {
    max-width: 100%;
    max-height: 100%;
    margin: auto;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address .smr-analyzer__video {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-anchors .smr-analyzer__video {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address
    [data-cal-flow-seek]:not([hidden]) {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    z-index: auto;
    pointer-events: auto;
    touch-action: auto;
    width: 100%;
    height: 72px;
    min-height: 72px;
    max-height: 72px;
    padding: 7px 12px 8px;
    margin: 0;
    display: grid;
    grid-template-rows: 36px 18px;
    gap: 5px;
    align-content: center;
    border: 1px solid var(--smr-surface-border-strong);
    border-radius: var(--smr-radius-card);
    background: rgba(0, 0, 0, 0.88);
    box-shadow: none;
    box-sizing: border-box;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address
    .smr-analyzer__cal-flow-seek-hint {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address
    [data-cal-flow-seek]:not([hidden])
    .smr-analyzer__seek-stack {
    display: contents !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    gap: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address
    [data-cal-flow-seek]:not([hidden])
    .smr-analyzer__frame-step {
    grid-row: 1;
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 18px;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address
    [data-cal-flow-seek]:not([hidden])
    .smr-analyzer__frame-nav.smr-button.smr-button-secondary {
    width: 40px;
    min-width: 40px;
    height: 36px;
    min-height: 36px;
    padding: 0;
    border-radius: var(--smr-radius-button);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address
    [data-cal-flow-seek]:not([hidden])
    .smr-analyzer__seek-label {
    grid-row: 2;
    display: flex !important;
    align-items: center;
    width: 100%;
    height: 18px;
    padding: 0 !important;
    margin: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address
    [data-cal-flow-seek]:not([hidden])
    input[type='range'] {
    width: 100%;
    height: 18px;
    margin: 0;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address .smr-analyzer__cal-flow-footer {
    position: relative;
    flex: 0 0 auto;
    padding-top: 4px;
    gap: 8px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address .smr-analyzer__cal-flow-heading {
    font-size: 1.28rem;
    line-height: 1.2;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address .smr-analyzer__cal-flow-copy {
    font-size: 14px;
    line-height: 1.45;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address .smr-analyzer__cal-flow-actions {
    gap: 9px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile.smr-analyzer--calibration-address .smr-analyzer__cal-flow-actions .smr-button {
    min-height: 54px;
    font-size: 17px;
  }

  /*
   * Phase-owned calibration shell (must follow all wizard + cal-flow-mobile rules).
   * Unlocks the full parent chain first, then stage/zoom surface.
   */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__body,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors .smr-analyzer__body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address [data-workspace],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors [data-workspace],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__workspace,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors .smr-analyzer__workspace {
    overflow: visible !important;
    min-height: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__grid,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors .smr-analyzer__grid {
    overflow: visible !important;
    min-height: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__col-visual,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors .smr-analyzer__col-visual {
    overflow: visible !important;
    min-height: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__cal-flow:not([hidden]),
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors .smr-analyzer__cal-flow:not([hidden]) {
    position: relative !important;
    inset: auto !important;
    z-index: auto !important;
    max-height: none !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__cal-flow-actions,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors .smr-analyzer__cal-flow-actions {
    position: relative !important;
    z-index: 5 !important;
    pointer-events: auto !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__stage {
    overflow: hidden !important;
    overscroll-behavior: contain !important;
    touch-action: none !important;
    height: 100% !important;
    max-height: 100% !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors .smr-analyzer__stage {
    overflow: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    touch-action: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__zoom-outer,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors .smr-analyzer__zoom-outer {
    max-width: none !important;
    max-height: none !important;
    touch-action: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__zoom-inner,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors .smr-analyzer__zoom-inner {
    transform-origin: top left !important;
  }

  /* Address: video positioning only — draw canvas must not steal touches from footer/actions. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address
    .smr-analyzer__canvas-stack--calibration,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address
    .smr-analyzer__canvas-stack--calibration
    .smr-analyzer__canvas-draw {
    pointer-events: none !important;
    touch-action: auto !important;
  }

  /* Keep calibration wizard UI clean. Do not expose generic zoom controls. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard.smr-analyzer--phase-calibration-address .smr-analyzer__row--zoom,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard.smr-analyzer--phase-calibration-anchors .smr-analyzer__row--zoom,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address [data-cal-visual-bundle] .smr-analyzer__row--zoom,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-anchors [data-cal-visual-bundle] .smr-analyzer__row--zoom {
    display: none !important;
  }

  /* Compact calibration zoom controls (wizard-only; generic row stays hidden). */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__cal-zoom-strip[hidden] {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__cal-zoom-strip:not([hidden]) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42px 42px auto;
    align-items: center;
    gap: 8px;
    margin: 8px 0 10px;
    padding: 0;
    pointer-events: auto;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__cal-zoom-meta {
    color: rgba(255, 255, 255, 0.68);
    font-size: 12px;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__cal-zoom-btn,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__cal-zoom-reset {
    appearance: none;
    border: 1px solid rgba(255, 120, 0, 0.5);
    border-radius: 2px;
    background: rgba(255, 120, 0, 0.12);
    color: #fff;
    font-weight: 800;
    height: 38px;
    min-height: 38px;
    padding: 0 10px;
    line-height: 1;
    box-shadow: none;
    pointer-events: auto;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__cal-zoom-btn {
    width: 42px;
    min-width: 42px;
    font-size: 20px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__cal-zoom-reset {
    font-size: 12px;
    min-width: 64px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__cal-flow-footer {
    pointer-events: auto;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--calibration-wizard .smr-analyzer__cal-flow-actions {
    pointer-events: auto;
  }

  /*
   * Address phase: vertical scroll layout (must follow all wizard + phase rules above).
   * step → video → scrubber → zoom/CTA in normal document flow; body is the scroll owner.
   */
  .smr-analyzer__cal-address-cta-hint {
    display: none;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: max(16px, env(safe-area-inset-bottom, 0px)) !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address [data-workspace],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__workspace {
    flex: 0 0 auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__cal-flow:not([hidden]) {
    flex: 0 0 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address
    .smr-analyzer__cal-screen--visual:not([hidden]) {
    display: flex !important;
    flex-direction: column !important;
    flex: 0 0 auto !important;
    gap: 12px !important;
    overflow: visible !important;
    padding-bottom: max(18px, env(safe-area-inset-bottom, 0px)) !important;
    min-height: 0 !important;
    box-sizing: border-box;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__cal-flow-step {
    flex: 0 0 auto;
    order: 0;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address [data-cal-flow-visual] {
    flex: 0 0 auto !important;
    order: 1;
    position: relative !important;
    z-index: auto !important;
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    display: block !important;
    margin: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address
    [data-cal-flow-seek]:not([hidden]) {
    flex: 0 0 auto !important;
    order: 2;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: auto !important;
    pointer-events: auto !important;
    touch-action: auto !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__cal-flow-footer {
    flex: 0 0 auto !important;
    order: 3;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: auto !important;
    pointer-events: auto !important;
    background: transparent !important;
    padding: 0 !important;
    margin-top: 4px !important;
    border-top: none !important;
    box-shadow: none !important;
    gap: 10px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__cal-visual-bundle {
    height: clamp(240px, 38vh, 340px) !important;
    height: clamp(240px, 38svh, 340px) !important;
    max-height: clamp(240px, 38vh, 340px) !important;
    max-height: clamp(240px, 38svh, 340px) !important;
    min-height: 0 !important;
    flex: 0 0 auto !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__cal-address-cta-hint {
    display: block;
    margin: 0 0 4px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.92);
    text-align: center;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address .smr-analyzer__cal-flow-actions {
    position: relative !important;
    z-index: auto !important;
    pointer-events: auto !important;
    gap: 10px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address
    .smr-analyzer__cal-flow-actions
    [data-calibration-action='address'] {
    position: relative !important;
    z-index: auto !important;
    pointer-events: auto !important;
    min-height: 64px !important;
    width: 100% !important;
    margin-top: 8px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    border: none !important;
    background: linear-gradient(135deg, #ff7800 0%, #ff9b33 48%, #ffb15c 100%) !important;
    color: #0c0c0c !important;
    box-shadow: 0 10px 24px rgba(255, 120, 0, 0.42) !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-calibration-address
    .smr-analyzer__cal-flow-actions
    [data-calibration-action='address']:active {
    transform: translateY(1px);
    box-shadow: 0 6px 16px rgba(255, 120, 0, 0.36) !important;
  }

  /*
   * Address align pre-lock uses mobile-draw-fullscreen + mobile-address-align (see file end).
   */

  .smr-analyzer__cal-sheet-reveal-btn {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: max(14px, env(safe-area-inset-bottom, 0px));
    z-index: 20;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
    white-space: nowrap;
    pointer-events: auto;
  }
}

/* —— Practice plan wizard + hub card —— */
.smr-practice-plan-loading {
  padding: 2rem 1rem;
  text-align: center;
  color: var(--pga-guide-text-muted);
}

.smr-practice-plan-wizard {
  max-width: 36rem;
  margin: 0 auto;
  padding: 0.5rem 0 1.5rem;
}

.smr-practice-plan-wizard .smr-button,
.smr-practice-plan-wizard .smr-button-secondary,
.smr-practice-plan-card__actions .smr-button,
.smr-practice-plan-card__actions .smr-button-secondary {
  font-size: 16px;
  font-weight: 700;
  min-height: 46px;
  padding: 12px 20px;
  line-height: 1.25;
}

.smr-practice-plan-admin-preview-banner {
  margin-bottom: 1rem;
  padding: 0.9rem 1.15rem;
  border-radius: 1px;
  border: 1px solid rgba(255, 120, 0, 0.38);
  background: rgba(255, 120, 0, 0.08);
  font-size: clamp(1rem, 0.45vw + 0.92rem, 1.14rem);
  line-height: 1.62;
  color: var(--pga-guide-text-soft);
  font-weight: 500;
}

.smr-practice-plan-admin-preview-banner .smr-eyebrow {
  display: block;
  margin-bottom: 0.35rem;
}

.smr-practice-plan-admin-preview-banner code {
  font-size: 0.9em;
  word-break: break-all;
  color: var(--pga-guide-text);
  background: rgba(0, 0, 0, 0.35);
  padding: 0.15em 0.4em;
  border-radius: 2px;
}

.smr-practice-plan-admin-preview-banner--compact {
  margin-bottom: 0.65rem;
  padding: 0.75rem 1rem;
  font-size: clamp(0.96rem, 0.4vw + 0.88rem, 1.1rem);
}

.smr-practice-plan-preview-inline {
  color: var(--pga-guide-accent-soft, #ffb15c);
  font-weight: 600;
}

.smr-practice-plan-wizard__scope-note {
  margin: 0 0 1.1rem;
  font-size: clamp(1.02rem, 0.45vw + 0.94rem, 1.18rem);
  line-height: 1.65;
  color: var(--pga-guide-accent-soft, #ffb15c);
  font-weight: 600;
}

.smr-practice-plan-wizard__title {
  font-size: clamp(1.38rem, 0.9vw + 1.15rem, 1.65rem);
  font-weight: 800;
  margin: 0 0 0.85rem;
  color: var(--pga-guide-text);
  line-height: 1.28;
}

.smr-practice-plan-wizard__lead {
  font-size: clamp(1.05rem, 0.45vw + 0.96rem, 1.22rem);
  line-height: 1.68;
  margin: 0 0 1.35rem;
  color: var(--pga-guide-text-muted);
  font-weight: 500;
}

.smr-practice-plan-wizard__fields {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin-bottom: 1.15rem;
}

.smr-practice-plan-field {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.smr-practice-plan-field__label {
  font-weight: 700;
  font-size: clamp(1rem, 0.35vw + 0.94rem, 1.12rem);
  line-height: 1.45;
  color: var(--pga-guide-text);
}

.smr-practice-plan-field__input {
  max-width: 12rem;
  padding: 0.6rem 0.75rem;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  font-size: clamp(1.06rem, 0.35vw + 1rem, 1.22rem);
  background: rgba(0, 0, 0, 0.45);
  color: var(--pga-guide-text);
  font-weight: 500;
}

.smr-practice-plan-field__input:focus-visible {
  outline: 2px solid rgba(255, 120, 0, 0.55);
  outline-offset: 2px;
}

.smr-practice-plan-field__hint {
  font-size: clamp(0.95rem, 0.4vw + 0.86rem, 1.08rem);
  line-height: 1.62;
  color: var(--pga-guide-text-soft);
  font-weight: 500;
}

.smr-practice-plan-wizard__footnote {
  font-size: clamp(0.96rem, 0.4vw + 0.88rem, 1.08rem);
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
  margin: 0 0 1.35rem;
  font-weight: 500;
}

.smr-practice-plan-wizard__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.smr-practice-plan-card {
  margin-top: clamp(36px, 5vw, 52px);
  margin-bottom: 1.25rem;
  padding: clamp(18px, 3vw, 24px);
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--smr-surface-border);
  background: rgba(255, 255, 255, 0.03);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

.smr-practice-plan-card__title {
  margin: 0 0 0.5rem;
  font-size: 1.22rem;
  font-weight: 800;
  color: var(--pga-guide-text);
}

.smr-practice-plan-card__meta,
.smr-practice-plan-card__progress,
.smr-practice-plan-card__next {
  font-size: clamp(1rem, 0.35vw + 0.96rem, 1.12rem);
  line-height: 1.62;
  margin: 0 0 0.6rem;
  color: var(--pga-guide-text-muted);
  font-weight: 500;
}

.smr-practice-plan-card__table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(0.97rem, 0.2vw + 0.94rem, 1.05rem);
  margin: 0.5rem 0 0.75rem;
  color: var(--pga-guide-text);
}

.smr-practice-plan-card__table th,
.smr-practice-plan-card__table td {
  padding: 0.4rem 0.35rem;
  text-align: left;
  border-bottom: 1px solid var(--pga-guide-border);
}

.smr-practice-plan-card__table thead th {
  color: var(--pga-guide-text-soft);
  font-weight: 700;
  background: rgba(0, 0, 0, 0.25);
}

.smr-practice-plan-card__mastery {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.5rem 0 0.75rem;
}

.smr-practice-plan-chip {
  display: inline-block;
  padding: 0.36rem 0.65rem;
  border-radius: 999px;
  font-size: clamp(0.9rem, 0.35vw + 0.85rem, 0.98rem);
  font-weight: 500;
  line-height: 1.35;
  background: rgba(255, 255, 255, 0.06);
  color: var(--pga-guide-text-muted);
  border: 1px solid var(--pga-guide-border);
}

.smr-practice-plan-chip--ok {
  background: rgba(34, 197, 94, 0.18);
  color: #b6f7c8;
  border-color: rgba(34, 197, 94, 0.35);
}

.smr-practice-plan-card__actions {
  margin-top: 0.5rem;
}

.smr-practice-plan-card__fineprint {
  font-size: clamp(0.94rem, 0.35vw + 0.86rem, 1.08rem);
  color: var(--pga-guide-text-soft);
  margin: 0.6rem 0 0;
  line-height: 1.62;
  font-weight: 500;
}

.smr-practice-hub-result-row {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
}

.smr-practice-hub-result-row .smr-button-secondary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.smr-practice-hub-result-hint {
  margin: 0;
  font-size: clamp(1rem, 0.35vw + 0.94rem, 1.08rem);
  line-height: 1.62;
  color: var(--pga-guide-text-soft);
  flex: 1 1 200px;
  font-weight: 500;
}

.smr-practice-result-summary {
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: var(--pga-guide-panel);
  padding: 1.1rem 1.15rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

.smr-practice-result-summary__score {
  font-size: clamp(2rem, 5vw, 2.6rem);
  font-weight: 800;
  color: var(--pga-guide-text);
  margin: 0 0 0.35rem;
  letter-spacing: 0.005em;
}

.smr-practice-result-summary__suffix {
  font-size: 0.45em;
  font-weight: 700;
  opacity: 0.88;
  margin-left: 0.05em;
}

.smr-practice-result-summary__meta {
  margin: 0 0 1rem;
  font-size: clamp(1rem, 0.35vw + 0.94rem, 1.08rem);
  color: var(--pga-guide-text-muted);
  line-height: 1.62;
  font-weight: 500;
}

.smr-practice-result-summary__list-title {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--pga-guide-text-soft);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.smr-practice-result-summary__list {
  margin: 0 0 1rem;
  padding-left: 1.15rem;
  color: var(--pga-guide-text-muted);
  font-size: 0.9rem;
  line-height: 1.55;
}

.smr-practice-result-summary__preview-note {
  margin: 0 0 1rem;
  font-size: 0.82rem;
  color: var(--pga-guide-text-soft);
}

.smr-practice-shell__bar-actions .smr-button-secondary:hover,
.smr-practice-shell__bar-actions .smr-button-secondary:focus {
  background: rgba(255, 120, 0, 0.08);
  border-color: rgba(255, 120, 0, 0.42);
  color: #ffd7a8;
  outline: none;
}

.smr-practice-tab--locked {
  opacity: 0.45;
  cursor: not-allowed;
}

.smr-practice-pick-card--not-target {
  opacity: 0.45;
}

.smr-practice-pick-note {
  display: block;
  font-size: 0.75rem;
  margin-top: 0.35rem;
  color: var(--pga-guide-accent-soft, #ffb15c);
}

/* Practice overlay: wider column + scaled type on large viewports (scoped to practice page only). */
@media (min-width: 1100px) {
  .smr-page--practice .smr-practice-shell {
    max-width: min(1180px, 100%);
  }

  .smr-page--practice .smr-practice-panel,
  .smr-page--practice .smr-practice-panel--wide {
    width: min(100%, 1180px);
    max-width: none;
  }

  .smr-page--practice .smr-practice-plan-wizard {
    max-width: min(44rem, 100%);
    padding: 0.75rem 0 2rem;
  }

  .smr-page--practice .smr-practice-plan-wizard__title {
    font-size: clamp(1.55rem, 2vw, 1.88rem);
  }

  .smr-page--practice .smr-practice-plan-wizard__lead {
    font-size: clamp(1.1rem, 0.55vw + 1rem, 1.28rem);
  }

  .smr-page--practice .smr-practice-plan-field__label {
    font-size: clamp(1.04rem, 0.35vw + 0.98rem, 1.14rem);
  }

  .smr-page--practice .smr-practice-plan-field__input {
    max-width: 14rem;
    min-width: 10rem;
    font-size: clamp(1.12rem, 0.4vw + 1.04rem, 1.28rem);
    padding: 0.65rem 0.85rem;
  }

  .smr-page--practice .smr-practice-plan-field__hint {
    font-size: clamp(1rem, 0.25vw + 0.96rem, 1.12rem);
  }

  .smr-page--practice .smr-practice-plan-wizard__footnote {
    font-size: clamp(1rem, 0.3vw + 0.94rem, 1.12rem);
  }

  .smr-page--practice .smr-practice-plan-admin-preview-banner {
    font-size: clamp(1.06rem, 0.35vw + 1rem, 1.18rem);
    padding: 1rem 1.25rem;
  }

  .smr-page--practice .smr-practice-plan-admin-preview-banner--compact {
    font-size: clamp(1.02rem, 0.3vw + 0.96rem, 1.12rem);
    padding: 0.85rem 1.05rem;
  }

  .smr-page--practice .smr-practice-plan-wizard__scope-note {
    font-size: clamp(1.08rem, 0.4vw + 1rem, 1.22rem);
  }

  .smr-page--practice .smr-practice-plan-wizard__actions {
    gap: 0.85rem;
  }

  .smr-page--practice .smr-practice-plan-card {
    padding: 1.15rem 1.35rem;
    max-width: none;
  }

  .smr-page--practice .smr-practice-plan-card__title {
    font-size: 1.3rem;
  }

  .smr-page--practice .smr-practice-plan-card__meta,
  .smr-page--practice .smr-practice-plan-card__progress,
  .smr-page--practice .smr-practice-plan-card__next {
    font-size: clamp(1.06rem, 0.2vw + 1.02rem, 1.14rem);
  }

  .smr-page--practice .smr-practice-plan-card__table {
    font-size: clamp(1.02rem, 0.15vw + 0.99rem, 1.09rem);
  }

  .smr-page--practice .smr-practice-plan-card__table th,
  .smr-page--practice .smr-practice-plan-card__table td {
    padding: 0.55rem 0.6rem;
  }

  .smr-page--practice .smr-practice-plan-chip {
    font-size: clamp(0.96rem, 0.2vw + 0.92rem, 1.04rem);
    padding: 0.38rem 0.68rem;
  }

  .smr-page--practice .smr-practice-plan-card__actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .smr-page--practice .smr-practice-plan-card__actions .smr-button,
  .smr-page--practice .smr-practice-plan-card__actions .smr-button-secondary {
    width: 100%;
  }

  .smr-page--practice .smr-practice-hub-grid {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
  }

  .smr-page--practice .smr-practice-pick-card {
    padding: 16px 18px;
    min-height: 48px;
  }

  .smr-page--practice .smr-practice-pick-index {
    font-size: 14px;
  }

  .smr-page--practice .smr-practice-pick-card p {
    font-size: 15px;
  }

  .smr-page--practice .smr-practice-mode-tabs .smr-practice-tab {
    min-height: 44px;
    font-size: 15px;
  }

  .smr-page--practice .smr-practice-hub-result-row {
    flex-wrap: nowrap;
    align-items: center;
    gap: 1rem 1.5rem;
  }

  .smr-page--practice .smr-practice-hub-result-hint {
    flex: 1 1 auto;
    min-width: 200px;
    font-size: clamp(1.04rem, 0.25vw + 1rem, 1.12rem);
  }

  .smr-page--practice .smr-practice-panel__hint,
  .smr-page--practice .smr-practice-panel__meta {
    font-size: clamp(17px, 0.35vw + 15px, 19px);
  }
}

@media (max-width: 600px) {
  .smr-page--practice .smr-practice-panel__hint,
  .smr-page--practice .smr-practice-panel__meta {
    font-size: clamp(17px, 0.6vw + 14px, 19px);
    line-height: 1.68;
  }

  .smr-page--practice .smr-practice-plan-wizard {
    padding: 0.35rem 0 1.5rem;
  }

  .smr-page--practice .smr-practice-plan-wizard__title {
    font-size: clamp(1.32rem, 1.1vw + 1.05rem, 1.55rem);
  }

  .smr-page--practice .smr-practice-plan-wizard__lead {
    font-size: clamp(1.06rem, 0.75vw + 0.96rem, 1.22rem);
  }

  .smr-page--practice .smr-practice-plan-wizard__scope-note {
    font-size: clamp(1.04rem, 0.7vw + 0.94rem, 1.18rem);
  }

  .smr-page--practice .smr-practice-plan-wizard__footnote {
    font-size: clamp(0.98rem, 0.65vw + 0.9rem, 1.1rem);
  }

  .smr-page--practice .smr-practice-plan-field__label {
    font-size: clamp(1.02rem, 0.6vw + 0.92rem, 1.1rem);
  }

  .smr-page--practice .smr-practice-plan-field__input {
    font-size: clamp(1.08rem, 0.6vw + 0.98rem, 1.2rem);
    max-width: 100%;
  }

  .smr-page--practice .smr-practice-plan-field__hint {
    font-size: clamp(0.98rem, 0.65vw + 0.88rem, 1.08rem);
  }

  .smr-page--practice .smr-practice-plan-admin-preview-banner {
    font-size: clamp(0.98rem, 0.65vw + 0.9rem, 1.12rem);
    padding: 0.85rem 1rem;
  }

  .smr-page--practice .smr-practice-plan-admin-preview-banner--compact {
    font-size: clamp(0.96rem, 0.6vw + 0.88rem, 1.06rem);
  }

  .smr-page--practice .smr-practice-mastery-board__dl dd {
    font-size: clamp(1.08rem, 0.6vw + 1rem, 1.22rem);
  }

  .smr-page--practice .smr-practice-mastery-board__dl dt {
    font-size: clamp(0.86rem, 0.35vw + 0.8rem, 0.96rem);
  }

  .smr-page--practice .smr-practice-plan-card__fineprint {
    font-size: clamp(0.96rem, 0.5vw + 0.9rem, 1.06rem);
  }

  .smr-page--practice .smr-practice-hub-result-hint {
    font-size: clamp(1.02rem, 0.55vw + 0.94rem, 1.12rem);
  }

  .smr-page--practice .smr-practice-mastery-card__reps,
  .smr-page--practice .smr-practice-mastery-card__next,
  .smr-page--practice .smr-practice-mastery-card__meta,
  .smr-page--practice .smr-practice-mastery-card__best {
    font-size: clamp(1.02rem, 0.45vw + 0.96rem, 1.12rem);
  }

  .smr-page--practice .smr-practice-mastery-card__title {
    font-size: clamp(1.08rem, 0.5vw + 1.02rem, 1.2rem);
  }

  .smr-page--practice .smr-practice-tab {
    min-height: 44px;
    padding: 12px 14px;
  }

  .smr-page--practice .smr-practice-pick-card {
    min-height: 44px;
  }

  .smr-page--practice .smr-practice-hub-result-row {
    flex-direction: column;
    align-items: stretch;
  }

  .smr-page--practice .smr-practice-hub-result-row .smr-button-secondary {
    width: 100%;
  }
}

.smr-practice-trends-dummy-note {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 1px;
  border: 1px solid rgba(255, 120, 0, 0.38);
  background: rgba(255, 120, 0, 0.08);
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--pga-guide-text-soft);
}

.smr-practice-trends-metrics {
  margin: 0 0 14px;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--pga-guide-text-muted);
}

.smr-practice-trends-metrics li {
  margin-bottom: 6px;
}

.smr-practice-trends-charts {
  margin-bottom: 16px;
}

.smr-practice-trends-chart-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin: 12px 0 8px;
}

.smr-practice-trends-chart-label {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--pga-guide-text-soft);
}

.smr-practice-trends-series {
  min-width: 12rem;
  max-width: 100%;
  padding: 8px 10px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  background: rgba(0, 0, 0, 0.45);
  color: var(--pga-guide-text);
  font-size: 0.9rem;
}

.smr-practice-trends-series-delta {
  margin: 0 0 10px;
  font-size: 0.82rem;
  color: var(--pga-guide-text-muted);
  line-height: 1.45;
}

.smr-practice-trends-chart-wrap {
  position: relative;
  width: 100%;
  height: 220px;
  margin-bottom: 8px;
}

.smr-practice-plan-card__actions--edit {
  margin-bottom: 8px;
}

.smr-practice-plan-card__actions--edit .smr-button {
  width: 100%;
}

/* Mastery loop — scoreboard, checkpoint cards, pace notices */
.smr-practice-mastery-board {
  margin: 0 0 20px;
  padding: 18px 20px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  background: rgba(0, 0, 0, 0.35);
}

.smr-practice-mastery-board__title {
  margin: 0 0 14px;
  font-size: clamp(1.22rem, 0.55vw + 1.08rem, 1.4rem);
  font-weight: 800;
  line-height: 1.3;
  color: var(--pga-guide-text);
}

.smr-practice-mastery-board__dl {
  margin: 0;
  display: grid;
  gap: 12px 20px;
}

@media (min-width: 560px) {
  .smr-practice-mastery-board__dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.smr-practice-mastery-board__dl > div {
  display: grid;
  gap: 6px;
}

.smr-practice-mastery-board__dl dt {
  margin: 0;
  font-size: clamp(0.9rem, 0.28vw + 0.8rem, 1rem);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--pga-guide-text-muted);
  font-weight: 600;
}

.smr-practice-mastery-board__dl dd {
  margin: 0;
  font-size: clamp(1.05rem, 0.45vw + 0.95rem, 1.28rem);
  line-height: 1.5;
  color: var(--pga-guide-text-soft);
  font-weight: 500;
}

.smr-practice-behind-notice {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 1px;
  border: 1px solid rgba(255, 184, 92, 0.35);
  background: rgba(255, 140, 40, 0.08);
  font-size: clamp(0.98rem, 0.3vw + 0.92rem, 1.06rem);
  line-height: 1.62;
  color: var(--pga-guide-text-soft);
  font-weight: 500;
}

.smr-practice-behind-notice p {
  margin: 0 0 8px;
}

.smr-practice-behind-notice p:last-child {
  margin-bottom: 0;
}

.smr-practice-mastery-cards {
  display: grid;
  gap: 14px;
  margin: 16px 0 8px;
}

@media (min-width: 720px) {
  .smr-practice-mastery-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .smr-practice-mastery-cards--multifocus {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }
}

.smr-practice-hub-studio-entry {
  margin: 12px 0 4px;
}

.smr-practice-customize-hub {
  margin: 18px 0 8px;
  padding: 18px 20px 20px;
  border: 1px solid rgba(255, 122, 0, 0.28);
  background: linear-gradient(180deg, rgba(255, 122, 0, 0.07), rgba(0, 0, 0, 0.38));
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
}

.smr-practice-customize-hub__title {
  margin: 0 0 12px;
  color: #fff;
  font-size: 17px;
  font-weight: 900;
  line-height: 1.45;
}

.smr-practice-customize-hub__copy {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}

.smr-practice-customize-hub__copy p {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.65;
}

.smr-practice-customize-hub__button {
  width: 100%;
}

.smr-practice-pace-card {
  margin: 18px 0 8px;
  padding: 18px 20px 20px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.04);
}

.smr-practice-pace-card__title {
  margin: 0 0 10px;
  color: #fff;
  font-size: 17px;
  font-weight: 900;
}

.smr-practice-pace-card__copy {
  margin: 0 0 8px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.6;
}

.smr-practice-pace-card__current {
  margin: 0 0 14px;
  color: rgba(255, 177, 92, 0.95);
  font-size: 13px;
  font-weight: 700;
}

.smr-practice-pace-card__button {
  width: 100%;
}

.smr-practice-focus-link-card {
  padding: 14px 16px;
  border: 1px solid rgba(255, 122, 0, 0.24);
  background: rgba(0, 0, 0, 0.35);
}

.smr-practice-focus-link-card__eyebrow {
  margin: 0 0 6px;
  color: #ff9a2f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.smr-practice-focus-link-card__copy {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
}

.smr-practice-mastery-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 16px 18px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  background: rgba(0, 0, 0, 0.42);
}

.smr-practice-mastery-card--mastered {
  border-color: rgba(82, 196, 106, 0.45);
}

.smr-practice-mastery-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}

.smr-practice-mastery-card__badge {
  font-size: clamp(0.78rem, 0.2vw + 0.74rem, 0.86rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 165, 92, 0.45);
  color: var(--pga-guide-text-muted);
}

.smr-practice-mastery-card__title {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: clamp(1.08rem, 0.35vw + 1rem, 1.18rem);
  font-weight: 800;
  line-height: 1.25;
  color: var(--pga-guide-text);
}

.smr-practice-mastery-card__reps,
.smr-practice-mastery-card__next,
.smr-practice-mastery-card__meta,
.smr-practice-mastery-card__best {
  margin: 0;
  font-size: clamp(1rem, 0.45vw + 0.9rem, 1.15rem);
  line-height: 1.58;
  color: var(--pga-guide-text-muted);
  font-weight: 500;
}

.smr-practice-mastery-card__reps--sub {
  margin-top: -2px;
  font-size: clamp(0.95rem, 0.3vw + 0.9rem, 1.04rem);
  font-weight: 500;
}

.smr-practice-mastery-card__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
}

.smr-practice-mastery-card__actions .smr-button {
  width: 100%;
}

.smr-practice-plan-card__preview-note {
  margin: 8px 0 0;
  font-size: clamp(0.95rem, 0.25vw + 0.9rem, 1.04rem);
  color: var(--pga-guide-text-muted);
  font-weight: 500;
  line-height: 1.58;
}

.smr-section--mastery-summary .smr-section-copy {
  margin-bottom: 12px;
}

.smr-mastery-summary-table-wrap {
  overflow-x: auto;
}

.smr-mastery-summary-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}

.smr-mastery-summary-table th,
.smr-mastery-summary-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--pga-guide-border-strong);
  text-align: left;
  vertical-align: top;
}

.smr-mastery-summary-table th {
  font-weight: 700;
  color: var(--pga-guide-text-soft);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.smr-results-actions-sub {
  margin: 10px 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--pga-guide-text-muted);
}

.smr-results-actions--secondary {
  margin-top: 12px;
}

.smr-mastery-test-select {
  max-width: 900px;
  margin: 0 auto;
}

.smr-mastery-test-select--empty {
  text-align: center;
}

.smr-mastery-test-select__title {
  margin: 0 0 8px;
  font-size: 1.15rem;
  color: var(--pga-guide-text);
}

.smr-mastery-test-select__lead {
  margin: 0 0 18px;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--pga-guide-text-muted);
}

.smr-mastery-test-select__grid {
  display: grid;
  gap: 14px;
}

@media (min-width: 720px) {
  .smr-mastery-test-select__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.smr-mastery-test-select-card__meta {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--pga-guide-text-muted);
}

.smr-mastery-test-select-card__action {
  margin-top: auto;
}

.smr-mastery-test-select-card__action .smr-button {
  width: 100%;
}

/* Early mastery test recommendation (600 OK-zone reps) */
.smr-modal-overlay--practice {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 16px;
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(4px);
}

.smr-modal-overlay--practice .smr-modal-panel {
  width: 100%;
  max-width: 420px;
  padding: 22px 20px 20px;
  border-radius: 2px;
  border: 1px solid var(--pga-guide-border-strong);
  background: rgba(12, 12, 14, 0.96);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.55);
}

.smr-modal-panel__title {
  margin: 0 0 12px;
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--pga-guide-text);
}

.smr-modal-panel__lead {
  margin: 0 0 10px;
  font-size: 0.95rem;
  color: var(--pga-guide-text);
}

.smr-modal-panel__copy {
  margin: 0 0 12px;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--pga-guide-text-muted);
}

.smr-modal-panel__meta {
  margin: 0 0 18px;
  font-size: 0.88rem;
  color: var(--pga-guide-text-soft);
}

.smr-modal-panel__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

@media (min-width: 480px) {
  .smr-modal-panel__actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .smr-modal-panel__actions .smr-button {
    width: auto;
    min-width: 140px;
  }
}

/* Mastery analytics dashboard (replaces legacy practice trends) */
.smr-practice-analytics-dummy-note {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 1px;
  border: 1px dashed var(--pga-guide-border-strong);
  background: rgba(255, 120, 0, 0.08);
  font-size: 0.9rem;
  color: var(--pga-guide-text-muted);
}

.smr-practice-analytics-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.smr-practice-analytics-tab {
  flex: 1 1 auto;
  min-width: 108px;
  padding: 10px 12px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  background: var(--pga-guide-panel);
  color: var(--pga-guide-text-soft);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.smr-practice-analytics-tab.is-active {
  border-color: var(--pga-guide-accent);
  background: rgba(255, 120, 0, 0.12);
  color: var(--pga-guide-text);
}

.smr-practice-analytics-panel {
  margin-top: 4px;
}

.smr-practice-analytics-page-title {
  margin: 0 0 16px;
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--pga-guide-text);
}

.smr-practice-analytics-snapshot {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}

.smr-practice-analytics-snapshot-card {
  padding: 14px 14px 16px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  background: rgba(0, 0, 0, 0.25);
}

.smr-practice-analytics-snapshot-card__label {
  margin: 0 0 8px;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--pga-guide-text-muted);
  text-transform: none;
  letter-spacing: 0.02em;
}

.smr-practice-analytics-snapshot-card__value {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.2;
  color: var(--pga-guide-text);
}

.smr-practice-analytics-snapshot-card__sub {
  margin: 6px 0 0;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--pga-guide-text-muted);
}

.smr-practice-analytics-next-action {
  margin-bottom: 22px;
  padding: 16px 18px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-accent);
  background: rgba(255, 120, 0, 0.1);
}

.smr-practice-analytics-next-action__title {
  margin: 0 0 8px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--pga-guide-text);
}

.smr-practice-analytics-next-action__body {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--pga-guide-text);
}

.smr-practice-analytics-next-action--hero {
  margin-bottom: 28px;
  padding: 22px 22px 24px;
  border-width: 2px;
  border-color: var(--pga-guide-accent);
  background: linear-gradient(145deg, rgba(255, 120, 0, 0.22), rgba(255, 120, 0, 0.06));
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
}

.smr-practice-analytics-next-action--hero .smr-practice-analytics-next-action__title {
  font-size: 1.14rem;
  letter-spacing: 0.02em;
}

.smr-practice-analytics-next-action--hero .smr-practice-analytics-next-action__body {
  font-size: 1.06rem;
  line-height: 1.6;
}

.smr-practice-analytics-section {
  margin-bottom: 24px;
}

.smr-practice-analytics-section__title {
  margin: 0 0 12px;
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--pga-guide-text);
}

.smr-practice-analytics-timeline-list {
  margin: 0;
  padding-left: 1.15em;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--pga-guide-text-muted);
}

.smr-practice-analytics-timeline-list strong {
  color: var(--pga-guide-text);
}

.smr-practice-analytics-timeline-list--warn {
  color: #ffb347;
}

.smr-practice-analytics-cp-grid {
  display: grid;
  gap: 14px;
}

@media (min-width: 720px) {
  .smr-practice-analytics-cp-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.smr-practice-analytics-cp-card {
  padding: 14px 16px 16px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: var(--pga-guide-panel);
}

.smr-practice-analytics-cp-card__title {
  margin: 0 0 10px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--pga-guide-text);
}

.smr-practice-analytics-cp-card__status,
.smr-practice-analytics-cp-card__line {
  margin: 0 0 8px;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--pga-guide-text-muted);
}

.smr-practice-analytics-cp-card__line strong {
  color: var(--pga-guide-text);
}

.smr-practice-analytics-cp-select {
  margin-bottom: 16px;
}

.smr-practice-analytics-cp-select label {
  display: block;
  margin-bottom: 6px;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--pga-guide-text-muted);
}

.smr-practice-analytics-select {
  width: 100%;
  max-width: 420px;
  padding: 10px 12px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border-strong);
  background: var(--pga-guide-panel);
  color: var(--pga-guide-text);
  font-size: 15px;
}

.smr-practice-analytics-detail-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.smr-practice-analytics-detail-card {
  padding: 12px 12px 14px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: rgba(0, 0, 0, 0.2);
  font-size: 0.86rem;
  color: var(--pga-guide-text-muted);
}

.smr-practice-analytics-detail-card strong {
  display: block;
  margin-top: 6px;
  font-size: 1.1rem;
  color: var(--pga-guide-text);
}

.smr-practice-analytics-detail-card__label {
  display: block;
}

.smr-practice-analytics-milestones-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-bottom: 20px;
  padding: 12px 14px;
  border-radius: 1px;
  border: 1px dashed var(--pga-guide-border-strong);
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--pga-guide-text-muted);
}

.smr-practice-analytics-chart-block {
  margin-bottom: 22px;
}

.smr-practice-analytics-chart-block__title {
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--pga-guide-text);
}

.smr-practice-analytics-chart-block__sub {
  margin: 0 0 12px;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--pga-guide-text-muted);
}

.smr-practice-analytics-chart-wrap {
  position: relative;
  width: 100%;
  height: 240px;
}

.smr-practice-analytics-chart-wrap--compact {
  margin-top: 14px;
  height: 200px;
}

.smr-practice-table--analytics th,
.smr-practice-table--analytics td {
  font-size: 0.88rem;
}

@media (max-width: 640px) {
  .smr-practice-analytics-chart-wrap {
    height: 220px;
  }
}

/* --- Swing Score / Dream handicap (goal selection + profile) --- */
.smr-goal-screen .smr-goal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
  margin: 18px 0 8px;
}

.smr-goal-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  text-align: left;
  padding: 16px 16px 18px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border, rgba(255, 255, 255, 0.12));
  background: var(--pga-guide-panel, rgba(0, 0, 0, 0.35));
  color: var(--pga-guide-text, #f4f4f4);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.smr-goal-card:hover {
  border-color: var(--pga-guide-border-strong, rgba(255, 140, 60, 0.45));
}

.smr-goal-card.is-selected {
  border-color: var(--pga-guide-accent, #ff7a18);
  box-shadow: 0 0 0 1px var(--pga-guide-accent, #ff7a18);
}

.smr-goal-card__goal {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--pga-guide-text, #fff);
}

.smr-goal-card__level {
  font-size: 0.92rem;
  color: var(--pga-guide-accent, #ff7a18);
  font-weight: 600;
}

.smr-goal-card__meta {
  font-size: 0.82rem;
  color: var(--pga-guide-text-muted, rgba(255, 255, 255, 0.65));
}

.smr-goal-card__desc {
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--pga-guide-text-muted, rgba(255, 255, 255, 0.55));
}

.smr-goal-actions {
  margin-top: 20px;
  flex-wrap: wrap;
}

.smr-swing-score-eyebrow {
  margin: 0 0 6px;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pga-guide-text-muted, rgba(255, 255, 255, 0.55));
}

.smr-swing-score-value {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.smr-swing-score-denom {
  font-size: 0.55em;
  font-weight: 600;
  color: var(--pga-guide-text-muted, rgba(255, 255, 255, 0.55));
}

.smr-score-profile-card,
.smr-goal-reached-card {
  margin-top: 18px;
  padding: 16px 18px;
}

.smr-goal-gap-stats {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
}

@media (min-width: 560px) {
  .smr-goal-gap-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}

.smr-goal-gap-stat {
  padding: 14px 16px;
  border: 1px solid rgba(255, 120, 0, 0.22);
  border-radius: 1px;
  background: rgba(255, 120, 0, 0.08);
}

.smr-goal-gap-stat__label {
  margin: 0 0 8px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--pga-guide-text-muted, rgba(255, 255, 255, 0.62));
}

.smr-goal-gap-stat__value {
  margin: 0;
  font-size: clamp(1.15rem, 2.4vw, 1.45rem);
  line-height: 1.35;
  font-weight: 800;
  color: var(--pga-guide-text, #ffffff);
}

.smr-goal-gap-stat__denom {
  font-size: 0.62em;
  font-weight: 600;
  color: var(--pga-guide-text-muted, rgba(255, 255, 255, 0.55));
}

.smr-goal-gap-stat__sub {
  margin: 6px 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--pga-guide-text-soft, rgba(255, 255, 255, 0.72));
}

.smr-goal-gap-body {
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
}

.smr-goal-gap-body p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--pga-guide-text-soft, rgba(255, 255, 255, 0.82));
}

.smr-goal-gap-bridge {
  margin: 0 0 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 120, 0, 0.2);
  font-size: 0.95rem;
  line-height: 1.65;
  font-weight: 600;
  color: var(--pga-guide-text, #ffffff);
}

.smr-score-gap-card .smr-goal-current {
  margin-top: 0;
}

.smr-score-caveat {
  margin-bottom: 0;
  font-size: 0.82rem;
}

.smr-next-goal {
  margin-top: 12px;
  font-size: 0.9rem;
  line-height: 1.5;
}

.smr-existing-goal-prompt {
  margin-top: 10px;
}

.smr-change-goal-row {
  margin-top: 14px;
}

.smr-change-goal-button {
  width: 100%;
  max-width: 320px;
}

.smr-section--dream-practice {
  margin-top: 8px;
}

.smr-miss-answer-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  margin-top: 12px;
}

.smr-miss-answer-meta--pending .smr-miss-answer-pending__label {
  margin: 0;
  font-weight: 600;
  font-size: 0.95rem;
}

.smr-miss-answer-meta--pending .smr-miss-answer-pending__hint {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--pga-guide-text-muted);
}

.smr-miss-dialog {
  position: fixed;
  inset: 0;
  z-index: 100050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
  overscroll-behavior: contain;
}

html.smr-assessment-miss-open .smr-analyzer__loading {
  display: none !important;
}

#smr-miss-dialog-portal,
.smr-miss-dialog-portal-shell {
  position: relative;
  z-index: 100050;
  pointer-events: none;
  color: var(--pga-guide-text, #ffffff);
  font-family: "Noto Sans JP", sans-serif;
}

#smr-miss-dialog-portal .smr-miss-dialog,
.smr-miss-dialog-portal-shell .smr-miss-dialog {
  pointer-events: auto;
}

@media (min-width: 641px) {
  #smr-miss-dialog-portal .smr-miss-dialog__panel,
  .smr-miss-dialog-portal-shell .smr-miss-dialog__panel {
    max-width: min(680px, 92vw);
    max-height: min(88vh, 820px);
  }

  #smr-miss-dialog-portal .smr-miss-dialog__body,
  .smr-miss-dialog-portal-shell .smr-miss-dialog__body {
    padding: 24px 28px 16px;
  }

  #smr-miss-dialog-portal .smr-miss-dialog__options,
  .smr-miss-dialog-portal-shell .smr-miss-dialog__options {
    margin: 0 0 18px;
  }

  #smr-miss-dialog-portal .smr-miss-dialog__screenshot,
  .smr-miss-dialog-portal-shell .smr-miss-dialog__screenshot {
    margin-top: 4px;
  }

  #smr-miss-dialog-portal .smr-miss-dialog__screenshot-img,
  .smr-miss-dialog-portal-shell .smr-miss-dialog__screenshot-img {
    max-height: min(36vh, 280px);
  }

  #smr-miss-dialog-portal .smr-miss-dialog__head h3,
  .smr-miss-dialog-portal-shell .smr-miss-dialog__head h3 {
    font-size: 1.35rem;
  }

  #smr-miss-dialog-portal .smr-miss-dialog__intro,
  .smr-miss-dialog-portal-shell .smr-miss-dialog__intro {
    font-size: 0.95rem;
    line-height: 1.65;
  }

  #smr-miss-dialog-portal .smr-miss-option,
  .smr-miss-dialog-portal-shell .smr-miss-option {
    padding: 16px 18px;
    min-height: 52px;
  }
}

.smr-miss-dialog__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.smr-miss-dialog__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  max-width: 520px;
  width: 100%;
  max-height: min(90vh, 720px);
  overflow: hidden;
  padding: 0;
  /* Near-opaque panel: global .smr-card uses very transparent --pga-guide-panel; override for readability. */
  background: linear-gradient(180deg, #1a1f2a 0%, #12151c 100%);
  background-color: #161a22;
  border: 1px solid var(--pga-guide-border-strong);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.72);
}

.smr-miss-dialog__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 22px 22px 12px;
  -webkit-overflow-scrolling: touch;
  overflow-anchor: none;
}

.smr-miss-dialog__footer {
  flex: 0 0 auto;
  padding: 12px 22px 18px;
  border-top: 1px solid var(--pga-guide-border);
  background: #12151c;
}

.smr-miss-dialog__head h3 {
  margin: 0 0 10px;
  font-size: 1.15rem;
}

.smr-miss-dialog__head--assessment {
  position: relative;
  padding-right: 44px;
}

.smr-miss-dialog__close {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 1px;
  background: transparent;
  color: var(--pga-guide-text-muted);
  font-size: 1.65rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}

.smr-miss-dialog__close:hover:not(:disabled),
.smr-miss-dialog__close:focus-visible:not(:disabled) {
  color: var(--pga-guide-text-soft);
  background: rgba(255, 255, 255, 0.06);
}

.smr-miss-dialog__close:disabled {
  opacity: 0.45;
  cursor: wait;
}

.smr-miss-dialog__selected-direction {
  margin: 0 0 10px;
  font-size: 0.9rem;
  color: var(--pga-guide-text-muted);
}

.smr-miss-dialog__selected-direction strong {
  color: var(--pga-guide-accent, #ffb15c);
  font-weight: 700;
}

.smr-miss-dialog__head--assessment {
  position: relative;
  padding-right: 44px;
}

.smr-miss-dialog__close {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 1px;
  background: transparent;
  color: var(--pga-guide-text-muted);
  font-size: 1.65rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}

.smr-miss-dialog__close:hover:not(:disabled),
.smr-miss-dialog__close:focus-visible:not(:disabled) {
  color: var(--pga-guide-text-soft);
  background: rgba(255, 255, 255, 0.06);
}

.smr-miss-dialog__close:disabled {
  opacity: 0.45;
  cursor: wait;
}

.smr-miss-dialog__selected-direction {
  margin: 0 0 10px;
  font-size: 0.9rem;
  color: var(--pga-guide-text-muted);
}

.smr-miss-dialog__selected-direction strong {
  color: var(--pga-guide-accent, #ffb15c);
  font-weight: 700;
}

.smr-miss-dialog__intro {
  margin: 0 0 12px;
}

.smr-miss-dialog__checkpoint {
  margin: 0 0 14px;
  font-size: 0.95rem;
  color: var(--pga-guide-text-muted);
}

.smr-miss-dialog__okzone {
  margin: 0 0 16px;
  padding: 0;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: rgba(0, 0, 0, 0.4);
}

.smr-miss-dialog__okzone-summary {
  cursor: pointer;
  list-style: none;
  margin: 0;
  padding: 12px 14px;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: var(--pga-guide-text-muted);
}

.smr-miss-dialog__okzone-summary::-webkit-details-marker {
  display: none;
}

.smr-miss-dialog__okzone[open] .smr-miss-dialog__okzone-summary {
  border-bottom: 1px solid var(--pga-guide-border);
}

.smr-miss-dialog__okzone-body {
  margin: 0;
  padding: 12px 14px 14px;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--pga-guide-text-soft);
}

.smr-miss-dialog__screenshot {
  margin: 0 0 16px;
}

.smr-miss-dialog__screenshot-label {
  margin: 0 0 8px;
  font-size: 0.85rem;
  color: var(--pga-guide-text-muted);
}

.smr-miss-dialog__screenshot-frame {
  border-radius: var(--smr-radius-media);
  border: 1px solid var(--pga-guide-border);
  overflow: hidden;
  background: var(--pga-guide-bg);
  max-height: min(42vh, 320px);
}

.smr-miss-dialog__screenshot-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(42vh, 320px);
  object-fit: contain;
}

.smr-miss-dialog__screenshot--empty {
  padding: 12px 0 4px;
}

.smr-miss-dialog__screenshot-hint {
  margin: 0 0 12px;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--pga-guide-text-muted);
}

.smr-miss-dialog__options {
  display: grid;
  gap: 10px;
}

.smr-miss-option {
  display: block;
  width: 100%;
  text-align: left;
  padding: 14px 16px;
  min-height: 48px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: linear-gradient(180deg, rgba(34, 39, 52, 0.98), rgba(24, 28, 38, 0.99));
  color: inherit;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.smr-miss-option.is-selected {
  border-color: var(--pga-guide-accent, #e85a24);
  box-shadow: 0 0 0 2px rgba(232, 90, 36, 0.55);
  background: linear-gradient(180deg, rgba(52, 42, 32, 0.98), rgba(36, 30, 24, 0.99));
}

.smr-miss-option.is-saving {
  cursor: wait;
}

.smr-miss-option:disabled {
  cursor: wait;
  opacity: 0.65;
}

.smr-miss-option__saving {
  display: block;
  margin-top: 8px;
  font-size: 0.8rem;
  font-weight: 800;
  color: var(--pga-guide-accent, #ffb15c);
}

.smr-miss-option__label {
  display: block;
  font-weight: 600;
  margin-bottom: 4px;
}

.smr-miss-option__description {
  display: block;
  font-size: 0.88rem;
  color: var(--pga-guide-text-muted);
  line-height: 1.5;
}

.smr-miss-dialog__hint {
  margin: 0 0 12px;
  font-size: 0.85rem;
  color: var(--pga-guide-text-muted);
}

.smr-miss-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.smr-miss-dialog__actions .smr-button {
  flex: 1 1 140px;
  min-width: 0;
}

@media (max-width: 640px) {
  .smr-miss-dialog {
    align-items: flex-end;
    padding: 0;
    padding-bottom: env(safe-area-inset-bottom, 0);
  }

  .smr-miss-dialog__panel {
    max-width: none;
    width: 100%;
    max-height: min(92dvh, 900px);
    border-radius: var(--smr-radius-card) var(--smr-radius-card) 0 0;
  }

  .smr-miss-dialog__body {
    padding: 18px 16px 10px;
  }

  .smr-miss-dialog__footer {
    padding: 12px 16px calc(14px + env(safe-area-inset-bottom, 0));
  }

  .smr-miss-dialog__actions {
    flex-direction: column;
  }

  .smr-miss-dialog__actions .smr-button {
    flex: 1 1 auto;
    width: 100%;
  }

  .smr-miss-option {
    padding: 16px 14px;
    min-height: 52px;
  }
}

.smr-diagnosis-summary {
  margin-bottom: 8px;
}

.smr-diagnosis-summary__pattern {
  margin: 0 0 10px;
  font-size: 1rem;
}

.smr-diagnosis-summary__lead {
  margin-bottom: 12px;
}

.smr-diagnosis-summary__why-block {
  margin-top: 16px;
}

.smr-diagnosis-summary__why-head {
  margin: 0 0 8px;
  font-size: 0.95rem;
  font-weight: 700;
}

.smr-diagnosis-summary__chain {
  margin: 16px 0 4px;
}

.smr-diagnosis-summary__chain-head {
  margin: 0 0 10px;
  font-size: 0.95rem;
  font-weight: 700;
}

.smr-diagnosis-chain {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
}

.smr-diagnosis-chain__item {
  border: 1px solid var(--pga-guide-border-soft, rgba(0, 0, 0, 0.08));
  border-radius: var(--smr-radius-card);
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.03);
}

.smr-diagnosis-chain__nodes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  font-size: 0.92rem;
  font-weight: 700;
  margin-bottom: 6px;
}

.smr-diagnosis-chain__node {
  color: var(--pga-guide-text);
}

.smr-diagnosis-chain__arrow {
  color: var(--pga-guide-text-muted);
  font-weight: 800;
}

.smr-diagnosis-chain__rel {
  margin: 0 0 6px;
}

.smr-diagnosis-chain__rel-badge {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(59, 130, 246, 0.15);
  border: 1px solid rgba(59, 130, 246, 0.35);
  color: #93c5fd;
}

.smr-diagnosis-chain__copy {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
}

.smr-diagnosis-priorities-head {
  margin: 18px 0 12px;
  font-size: 1rem;
  font-weight: 800;
}

.smr-diagnosis-suppressed-wrap {
  margin-top: 12px;
}

.smr-diagnosis-suppressed-title {
  font-size: 1rem;
}

.smr-diagnosis-summary__why {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
}

.smr-diagnosis-summary__suppressed {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--pga-guide-border-soft, rgba(0, 0, 0, 0.08));
}

.smr-diagnosis-summary__suppressed-head {
  margin: 0 0 8px;
  font-size: 0.92rem;
  font-weight: 600;
}

.smr-diagnosis-summary__suppressed-list {
  margin: 0;
  padding-left: 1.2em;
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
}

.smr-diagnosis-summary__suppressed-list li {
  margin-bottom: 6px;
}

.smr-action-role {
  margin: 8px 0 0;
  font-size: 0.88rem;
  color: var(--pga-guide-text-muted);
}

.smr-action-why {
  margin: 10px 0 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--pga-guide-text-soft);
}

/* Full Swing Breakdown — grouped model vs user comparison (dark theme) */

.smr-section--swing-breakdown {
  margin-top: 8px;
}

.smr-section--swing-breakdown > .smr-section-head {
  margin-bottom: 12px;
}

.smr-breakdown-memo {
  margin: 0 0 20px;
  padding: 12px 14px;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--pga-guide-text-soft);
  background: rgba(255, 120, 0, 0.08);
  border: 1px solid rgba(255, 120, 0, 0.22);
  border-radius: 1px;
}

.smr-breakdown-group {
  margin-bottom: 28px;
}

.smr-breakdown-group:last-child {
  margin-bottom: 0;
}

.smr-breakdown-group__head {
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--pga-guide-border);
}

.smr-breakdown-group--priority .smr-breakdown-group__head {
  border-left: 3px solid var(--pga-guide-accent);
  padding-left: 12px;
}

.smr-breakdown-group--watchpoints .smr-breakdown-group__head {
  border-left: 3px solid rgba(114, 226, 175, 0.65);
  padding-left: 12px;
}

.smr-breakdown-group--recheck .smr-breakdown-group__head {
  border-left: 3px solid rgba(255, 177, 92, 0.75);
  padding-left: 12px;
}

.smr-breakdown-group--other_failed .smr-breakdown-group__head {
  border-left: 3px solid var(--pga-guide-border-strong);
  padding-left: 12px;
}

.smr-breakdown-group--ok .smr-breakdown-group__head {
  border-left: 3px solid rgba(114, 226, 175, 0.35);
  padding-left: 12px;
}

.smr-breakdown-group__title {
  margin: 0 0 6px;
  font-size: 1rem;
  color: var(--pga-guide-text);
}

.smr-breakdown-group__desc {
  margin: 0;
  font-size: 0.9rem;
  color: var(--pga-guide-text-muted);
  line-height: 1.55;
}

.smr-breakdown-group__cards {
  display: grid;
  gap: 16px;
}

.smr-breakdown-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  background: rgba(0, 0, 0, 0.22);
  scroll-margin-top: 5.5rem;
}

.smr-breakdown-card--highlight {
  border-color: rgba(255, 120, 0, 0.55);
  box-shadow: 0 0 0 1px rgba(255, 120, 0, 0.35);
}

.smr-breakdown-card__head {
  display: grid;
  gap: 10px;
}

.smr-breakdown-card__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
}

.smr-breakdown-card__title {
  margin: 0;
  font-size: 1rem;
  color: var(--pga-guide-text);
}

.smr-breakdown-card__view {
  margin-bottom: 0;
}

.smr-breakdown-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-breakdown-badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  font-size: 0.78rem;
  font-weight: 700;
  border-radius: 1px;
  line-height: 1.3;
}

.smr-breakdown-badge--zone {
  background: rgba(255, 255, 255, 0.08);
  color: var(--pga-guide-text-soft);
  border: 1px solid var(--pga-guide-border);
}

.smr-breakdown-badge--role {
  background: rgba(255, 120, 0, 0.16);
  color: var(--pga-guide-accent-soft);
  border: 1px solid rgba(255, 120, 0, 0.28);
}

.smr-breakdown-card--top_priority .smr-breakdown-badge--role {
  background: rgba(255, 120, 0, 0.2);
  color: #ffd7a8;
  border-color: rgba(255, 120, 0, 0.42);
}

.smr-breakdown-card--watchpoint .smr-breakdown-badge--role {
  background: rgba(114, 226, 175, 0.12);
  color: #72e2af;
  border-color: rgba(114, 226, 175, 0.28);
}

.smr-breakdown-card--unclear .smr-breakdown-badge--role {
  background: rgba(255, 177, 92, 0.14);
  color: #ffd7a8;
  border-color: rgba(255, 177, 92, 0.32);
}

.smr-breakdown-compare {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.smr-breakdown-compare__col {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.smr-breakdown-compare__kind {
  margin-bottom: 0;
  width: fit-content;
}

.smr-breakdown-compare__empty {
  margin: 0;
  padding: 16px 14px;
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.smr-breakdown-compare__empty p {
  margin: 0;
  font-size: 0.88rem;
  color: var(--pga-guide-text-muted);
  line-height: 1.5;
}

.smr-breakdown-card__miss {
  margin: 0;
  font-size: 0.9rem;
  color: var(--pga-guide-text-soft);
}

.smr-breakdown-card__miss-k {
  font-weight: 700;
  margin-right: 6px;
  color: var(--pga-guide-text-muted);
}

.smr-breakdown-card__okzone {
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
}

.smr-breakdown-card__okzone-k {
  margin: 0 0 6px;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--pga-guide-accent-soft);
}

.smr-breakdown-card__okzone-body {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--pga-guide-text-soft);
}

.smr-breakdown-card__explanation {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--pga-guide-text-soft);
}

.smr-breakdown-uncertainty {
  margin: 0;
  padding: 12px 14px;
  border-radius: 1px;
  background: rgba(255, 177, 92, 0.08);
  border: 1px solid rgba(255, 177, 92, 0.24);
}

.smr-breakdown-uncertainty__badge {
  margin: 0 0 6px;
  font-size: 0.78rem;
  font-weight: 800;
  color: #ffd7a8;
  letter-spacing: 0.04em;
}

.smr-breakdown-uncertainty__copy {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--pga-guide-text-soft);
}

.smr-breakdown-card__ctas,
.smr-breakdown-scroll-link-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  margin: 0;
}

.smr-breakdown-card__cta,
.smr-breakdown-scroll-link {
  font-size: 0.9rem;
  font-weight: 700;
}

@media (max-width: 720px) {
  .smr-breakdown-compare {
    grid-template-columns: minmax(0, 1fr);
  }

  .smr-breakdown-card {
    padding: 14px;
  }
}

/* Diagnosis corridor — premium coached results layout */

.smr-diagnosis-corridor {
  --smr-diag-title: clamp(20px, 2.1vw, 24px);
  --smr-diag-group-title: clamp(17px, 1.7vw, 19px);
  --smr-diag-card-title: clamp(16px, 1.55vw, 18px);
  --smr-diag-body: 15px;
  --smr-diag-meta: 13px;
  --smr-diag-caption: 12px;
}

.smr-diagnosis-corridor > .smr-section + .smr-section,
.smr-diagnosis-corridor > .smr-diagnosis-summary + .smr-section,
.smr-diagnosis-corridor > .smr-section + .smr-diagnosis-summary {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin-top: clamp(32px, 5vw, 56px);
  padding-top: clamp(24px, 4vw, 36px);
}

.smr-diagnosis-corridor > .smr-section:first-child,
.smr-diagnosis-corridor > .smr-diagnosis-summary:first-child {
  border-top: 0;
  margin-top: 0;
  padding-top: 0;
}

.smr-diagnosis-corridor .smr-section-head {
  margin-bottom: var(--smr-space-2);
  position: relative;
}

.smr-diagnosis-corridor .smr-section-head::before {
  background: var(--pga-guide-gradient);
  border-radius: 1px;
  content: "";
  display: block;
  height: 3px;
  margin-bottom: var(--smr-space-3);
  width: 40px;
}

.smr-diagnosis-corridor .smr-section-copy {
  margin: 0 0 var(--smr-space-5);
  font-size: var(--smr-diag-body);
  line-height: 1.8;
  letter-spacing: 0.01em;
  max-width: 820px;
}

.smr-diagnosis-corridor .smr-card p,
.smr-diagnosis-corridor .smr-section-copy,
.smr-diagnosis-corridor .smr-diagnosis-priority-card p,
.smr-diagnosis-corridor .smr-breakdown-card p {
  font-size: var(--smr-diag-body);
  line-height: 1.8;
  letter-spacing: 0.01em;
}

.smr-diagnosis-corridor .smr-section-head h3 {
  font-size: var(--smr-diag-title);
  line-height: 1.35;
}

/* Diagnosis summary */
.smr-diagnosis-corridor .smr-diagnosis-summary__pattern {
  margin: 0 0 8px;
  font-size: var(--smr-diag-body);
}

.smr-diagnosis-corridor .smr-diagnosis-summary__lead {
  margin-bottom: 0;
}

/* Priority cards */
.smr-diagnosis-corridor .smr-diagnosis-priority-card {
  display: grid;
  gap: 14px;
  padding: 20px;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
}

.smr-diagnosis-corridor .smr-diagnosis-priority-card__meta {
  margin: 0;
  font-size: var(--smr-diag-meta);
  color: var(--pga-guide-text-muted);
  letter-spacing: 0.02em;
}

.smr-diagnosis-corridor .smr-diagnosis-priority-card__title {
  margin: 0;
  font-size: var(--smr-diag-card-title);
  line-height: 1.4;
  color: var(--pga-guide-text);
}

.smr-diagnosis-corridor .smr-diagnosis-priority-card__copy {
  margin: 0;
  color: var(--pga-guide-text-soft);
}

.smr-diagnosis-corridor .smr-diagnosis-priority-card__footer {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 14px;
  margin-top: 16px;
}

.smr-diagnosis-corridor .smr-diagnosis-priority-card__footer .smr-button {
  width: 100%;
}

.smr-diagnosis-corridor .smr-diagnosis-priority-card__okzone,
.smr-diagnosis-corridor .smr-diagnosis-priority-card__rec {
  margin: 0;
  font-size: var(--smr-diag-meta);
  color: var(--pga-guide-text-soft);
}

.smr-diagnosis-corridor .smr-section--recommended-path .smr-recommended-path__grid,
.smr-diagnosis-corridor .smr-section--recommended-path .smr-recommended-path__grid,
.smr-diagnosis-corridor .smr-section--diagnosis-look-three .smr-grid {
  gap: 20px;
}

/* Uncertainty callout */
.smr-diagnosis-uncertainty {
  margin: 0;
  padding: 12px 14px;
  border-left: 3px solid rgba(255, 177, 92, 0.85);
  background: rgba(255, 177, 92, 0.08);
  border-radius: 0 1px 1px 0;
}

.smr-diagnosis-uncertainty__badge {
  margin: 0 0 4px;
  font-size: var(--smr-diag-meta);
  font-weight: 800;
  color: #ffd7a8;
  letter-spacing: 0.04em;
}

.smr-diagnosis-uncertainty__copy {
  margin: 0;
  font-size: var(--smr-diag-meta);
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
}

/* Full visual breakdown */
.smr-diagnosis-corridor .smr-section--swing-breakdown {
  margin-top: 0;
}

.smr-diagnosis-corridor .smr-breakdown-memo {
  margin-bottom: 20px;
  font-size: var(--smr-diag-meta);
  border-left: 3px solid rgba(255, 120, 0, 0.45);
  border-radius: 0 1px 1px 0;
}

.smr-diagnosis-corridor .smr-breakdown-group {
  margin-bottom: 36px;
}

.smr-diagnosis-corridor .smr-breakdown-group__title {
  font-size: var(--smr-diag-group-title);
  line-height: 1.4;
}

.smr-diagnosis-corridor .smr-breakdown-group__desc {
  font-size: var(--smr-diag-meta);
  line-height: 1.55;
}

.smr-diagnosis-corridor .smr-breakdown-group__cards {
  gap: 20px;
}

.smr-diagnosis-corridor .smr-breakdown-card {
  display: grid;
  gap: 16px;
  padding: 20px;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  box-shadow: none;
  scroll-margin-top: 6rem;
}

.smr-diagnosis-corridor .smr-breakdown-card.is-scroll-target {
  border-color: rgba(255, 120, 0, 0.65);
  box-shadow: 0 0 0 1px rgba(255, 120, 0, 0.35);
  background: rgba(255, 120, 0, 0.06);
  animation: smr-breakdown-scroll-pulse 1.8s ease-out;
}

@keyframes smr-breakdown-scroll-pulse {
  0% {
    background: rgba(255, 120, 0, 0.12);
  }
  100% {
    background: rgba(255, 255, 255, 0.035);
  }
}

.smr-diagnosis-corridor .smr-breakdown-card__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
}

.smr-diagnosis-corridor .smr-breakdown-card__header-main {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.smr-diagnosis-corridor .smr-breakdown-card__eyebrow {
  margin: 0;
  font-size: var(--smr-diag-caption);
  color: var(--pga-guide-text-muted);
  letter-spacing: 0.02em;
}

.smr-diagnosis-corridor .smr-breakdown-card__title {
  margin: 0;
  font-size: var(--smr-diag-card-title);
  line-height: 1.4;
  font-weight: 700;
  color: var(--pga-guide-text);
}

.smr-diagnosis-corridor .smr-breakdown-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  max-width: 100%;
}

.smr-diagnosis-corridor .smr-breakdown-badge {
  padding: 3px 8px;
  font-size: var(--smr-diag-caption);
  font-weight: 700;
  line-height: 1.35;
}

.smr-diagnosis-corridor .smr-breakdown-badge--zone {
  background: transparent;
  color: var(--pga-guide-text-soft);
  border: 1px solid var(--pga-guide-border);
}

.smr-diagnosis-corridor .smr-breakdown-badge--role-top_priority {
  background: rgba(255, 120, 0, 0.18);
  color: #ffd7a8;
  border: 1px solid rgba(255, 120, 0, 0.35);
}

.smr-diagnosis-corridor .smr-breakdown-badge--role-watchpoint {
  background: rgba(255, 255, 255, 0.06);
  color: var(--pga-guide-text-soft);
  border: 1px solid var(--pga-guide-border);
}

.smr-diagnosis-corridor .smr-breakdown-badge--role-unclear {
  background: rgba(255, 177, 92, 0.12);
  color: #ffd7a8;
  border: 1px solid rgba(255, 177, 92, 0.28);
}

.smr-diagnosis-corridor .smr-breakdown-badge--role-needs_work {
  background: rgba(255, 255, 255, 0.06);
  color: var(--pga-guide-text-soft);
  border: 1px solid var(--pga-guide-border);
}

.smr-diagnosis-corridor .smr-breakdown-badge--role-ok_zone {
  background: transparent;
  color: var(--pga-guide-text-muted);
  border: 1px solid var(--pga-guide-border);
}

.smr-diagnosis-corridor .smr-breakdown-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.smr-diagnosis-corridor .smr-breakdown-compare__col {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.smr-diagnosis-corridor .smr-breakdown-compare__label {
  margin: 0;
  font-size: var(--smr-diag-caption);
  color: var(--pga-guide-text-muted);
  letter-spacing: 0.02em;
}

.smr-diagnosis-corridor .smr-breakdown-compare img,
.smr-diagnosis-corridor .smr-breakdown-compare .smr-compare-image {
  max-height: 280px;
  width: 100%;
  object-fit: contain;
}

.smr-diagnosis-corridor .smr-breakdown-compare__caption {
  margin: 0;
  font-size: var(--smr-diag-caption);
  color: var(--pga-guide-text-muted);
  line-height: 1.45;
}

.smr-diagnosis-corridor .smr-breakdown-compare__missing {
  margin: 0;
  font-size: var(--smr-diag-meta);
  color: var(--pga-guide-text-muted);
  line-height: 1.55;
}

.smr-diagnosis-corridor .smr-breakdown-card__coaching {
  display: grid;
  gap: 8px;
}

.smr-diagnosis-corridor .smr-breakdown-card__explanation {
  margin: 0;
  color: var(--pga-guide-text-soft);
}

.smr-diagnosis-corridor .smr-breakdown-card__miss {
  margin: 0;
  font-size: var(--smr-diag-meta);
  color: var(--pga-guide-text-soft);
}

.smr-diagnosis-corridor .smr-breakdown-card__miss-k {
  font-weight: 700;
  margin-right: 6px;
  color: var(--pga-guide-text-muted);
}

.smr-diagnosis-corridor .smr-breakdown-okzone-details {
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  background: rgba(255, 255, 255, 0.02);
}

.smr-diagnosis-corridor .smr-breakdown-okzone-details summary {
  padding: 10px 12px;
  font-size: var(--smr-diag-meta);
  font-weight: 700;
  color: var(--pga-guide-text-soft);
  cursor: pointer;
  list-style: none;
}

.smr-diagnosis-corridor .smr-breakdown-okzone-details summary::-webkit-details-marker {
  display: none;
}

.smr-diagnosis-corridor .smr-breakdown-okzone-body {
  margin: 0;
  padding: 0 12px 12px;
  font-size: var(--smr-diag-meta);
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
}

.smr-diagnosis-corridor .smr-breakdown-okzone-inline {
  padding: 10px 12px;
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  background: rgba(255, 255, 255, 0.02);
}

.smr-diagnosis-corridor .smr-breakdown-okzone-inline__label {
  margin: 0 0 4px;
  font-size: var(--smr-diag-caption);
  font-weight: 700;
  color: var(--pga-guide-text-muted);
}

.smr-diagnosis-corridor .smr-breakdown-okzone-inline__body {
  margin: 0;
  font-size: var(--smr-diag-meta);
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
}

.smr-diagnosis-corridor .smr-breakdown-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  padding-top: 4px;
}

.smr-diagnosis-corridor .smr-breakdown-card__actions .smr-button {
  font-size: var(--smr-diag-meta);
}

@media (max-width: 768px) {
  .smr-diagnosis-corridor .smr-breakdown-compare {
    grid-template-columns: 1fr;
  }

  .smr-diagnosis-corridor .smr-diagnosis-priority-card__footer .smr-button {
    width: 100%;
  }

  .smr-diagnosis-corridor .smr-breakdown-card {
    padding: 16px;
  }
}

/* Surface interaction — recommended path, disclosure, image viewer */

.smr-recommended-path__grid {
  display: grid;
  gap: 20px;
}

@media (min-width: 900px) {
  .smr-recommended-path__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.smr-recommended-path-card {
  display: grid;
  gap: 14px;
}

.smr-recommended-path-card__role {
  margin: 0;
}

.smr-diagnosis-corridor .smr-recommended-path-card__role {
  font-size: var(--smr-diag-meta, 13px);
  font-weight: 700;
  color: rgba(255, 120, 0, 0.95);
  letter-spacing: 0.04em;
}

.smr-recommended-path-card .smr-diagnosis-evidence-link {
  justify-self: start;
}

.smr-diagnosis-corridor .smr-recommended-path-card__role {
  font-size: var(--smr-diag-meta, 13px);
  font-weight: 700;
  color: rgba(255, 120, 0, 0.95);
  letter-spacing: 0.04em;
}

.smr-recommended-path-card .smr-diagnosis-evidence-link {
  justify-self: start;
}

.smr-recommended-path-card__meta {
  margin: 0;
  font-size: var(--smr-diag-caption, 12px);
  color: var(--pga-guide-text-muted);
  letter-spacing: 0.02em;
}

.smr-recommended-path-card__copy {
  margin: 0;
}

.smr-visual-diagnosis__grid {
  display: grid;
  gap: 28px;
}

.smr-diagnosis-corridor .smr-breakdown-card--featured {
  padding: 24px;
  background: rgba(255, 255, 255, 0.045);
  border-color: rgba(255, 255, 255, 0.14);
}

.smr-diagnosis-corridor .smr-breakdown-card__featured-role {
  margin: 0;
  font-size: var(--smr-diag-meta, 13px);
  font-weight: 700;
  color: rgba(255, 120, 0, 0.95);
  letter-spacing: 0.04em;
}

.smr-diagnosis-priorities-context {
  margin-top: 0;
}

.smr-diagnosis-priorities-context .smr-section-copy {
  margin-bottom: 0;
}

.smr-full-breakdown-disclosure {
  margin-top: 4px;
}

.smr-full-breakdown-toggle {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  background: rgba(255, 255, 255, 0.04);
  font-size: var(--smr-diag-body, 15px);
  color: var(--pga-guide-text);
}

.smr-full-breakdown-toggle::-webkit-details-marker {
  display: none;
}

.smr-full-breakdown-toggle__label {
  font-weight: 700;
}

.smr-full-breakdown-toggle__meta {
  font-size: var(--smr-diag-meta, 13px);
  color: var(--pga-guide-text-muted);
}

.smr-full-breakdown-content {
  padding-top: 20px;
}

.smr-breakdown-compare__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-breakdown-compare__btn {
  font-size: var(--smr-diag-meta, 13px);
  padding: 8px 12px;
}

.smr-result-coaching-next__cta,
.smr-result-coaching-next__copy {
  margin-top: 4px;
}

.smr-pwa-action-note {
  margin: 12px 0 0;
  padding: 12px 14px;
  font-size: var(--smr-diag-meta, 13px);
  line-height: 1.65;
  color: var(--pga-guide-text-soft);
  border-left: 3px solid var(--pga-guide-border);
  background: rgba(255, 255, 255, 0.03);
}

.smr-result-image-viewer {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 16px;
}

.smr-result-image-viewer__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.82);
  cursor: pointer;
}

.smr-result-image-viewer__panel {
  position: relative;
  z-index: 1;
  width: min(960px, 100%);
  max-height: min(92dvh, 920px);
  display: grid;
  gap: 14px;
  padding: 16px;
  overflow: auto;
}

.smr-result-image-viewer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.smr-result-image-viewer__head h3 {
  margin: 0;
  font-size: 1.05rem;
}

.smr-result-image-viewer__body {
  display: grid;
  place-items: center;
  min-height: 0;
}

.smr-result-image-viewer__img {
  max-width: 100%;
  max-height: 72dvh;
  object-fit: contain;
}

.smr-result-image-viewer__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

@media (max-width: 768px) {
  .smr-result-image-viewer {
    padding: 10px;
  }

  .smr-result-image-viewer__panel {
    width: min(100%, 100vw);
    max-height: 100dvh;
    padding: 14px;
  }

  .smr-result-image-viewer__img {
    max-height: 72dvh;
  }

  .smr-breakdown-compare__actions .smr-button {
    flex: 1 1 calc(50% - 4px);
  }
}

.smr-diagnosis-debug {
  margin-bottom: 12px;
  padding: 14px 16px;
}

.smr-diagnosis-debug__summary {
  cursor: pointer;
  font-weight: 600;
}

.smr-diagnosis-debug__note {
  margin-top: 10px;
  font-size: 0.88rem;
}

.smr-diagnosis-debug-table-wrap {
  overflow-x: auto;
  margin-top: 10px;
}

.smr-diagnosis-debug-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.smr-diagnosis-debug-table th,
.smr-diagnosis-debug-table td {
  border: 1px solid var(--pga-guide-border);
  padding: 6px 8px;
  text-align: left;
}

.smr-diagnosis-debug-table th {
  background: rgba(0, 0, 0, 0.03);
}

.smr-diagnosis-debug__mono {
  font-family: ui-monospace, monospace;
  word-break: break-all;
}

.smr-diag-debug-panel {
  margin-bottom: 12px;
  padding: 14px 16px;
}

.smr-diag-debug-panel__summary {
  cursor: pointer;
  font-weight: 600;
}

.smr-diag-debug-panel__body {
  margin-top: 10px;
}

.smr-diag-debug-panel__pre {
  margin: 0;
  max-height: 420px;
  overflow: auto;
  padding: 12px;
  font-size: 0.78rem;
  line-height: 1.45;
  font-family: ui-monospace, monospace;
  white-space: pre;
  background: rgba(0, 0, 0, 0.04);
  border: 1px solid var(--pga-guide-border);
  border-radius: 2px;
}

.smr-miss-dialog__severity {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--pga-guide-border);
}

.smr-miss-dialog__severity-label {
  margin: 0 0 10px;
  font-size: 0.92rem;
  font-weight: 600;
}

.smr-miss-dialog__severity-options {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.smr-miss-severity {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  min-height: 48px;
  padding: 12px 10px;
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  background: linear-gradient(180deg, rgba(34, 39, 52, 0.98), rgba(24, 28, 38, 0.99));
  color: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.smr-miss-severity.is-selected {
  border-color: var(--pga-guide-accent, #e85a24);
  box-shadow: 0 0 0 2px rgba(232, 90, 36, 0.55);
  background: linear-gradient(180deg, rgba(52, 42, 32, 0.98), rgba(36, 30, 24, 0.99));
}

.smr-miss-severity.is-saving {
  cursor: wait;
}

.smr-miss-severity.is-disabled,
.smr-miss-severity:disabled {
  opacity: 0.65;
  cursor: wait;
}

.smr-miss-severity .smr-miss-option__saving {
  margin-top: 6px;
}

.smr-answer-detail-chip {
  margin: 0;
  font-size: 0.9rem;
  color: var(--pga-guide-text-soft);
}

.smr-answer-detail-chip__k {
  display: inline-block;
  margin-right: 6px;
  padding: 2px 8px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--pga-guide-text-muted);
}

/* Set summary miss breakdown */
.smr-practice-miss-sum {
  margin: 12px 0 0;
  padding: 12px 14px;
  border-radius: var(--smr-radius-card);
  border: 1px solid var(--pga-guide-border, #ddd);
  background: rgba(255, 255, 255, 0.6);
}

.smr-practice-miss-sum__title {
  margin: 0 0 6px;
  font-size: 1rem;
  font-weight: 600;
}

.smr-practice-miss-sum__rates {
  margin: 0 0 8px;
  font-size: 0.92rem;
}

.smr-practice-miss-sum__sub {
  margin: 0 0 4px;
  font-size: 0.85rem;
  font-weight: 600;
}

.smr-practice-miss-sum__list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.9rem;
}

.smr-practice-miss-sum__insight {
  margin: 10px 0 0;
  font-size: 0.9rem;
  line-height: 1.5;
}

/* Analytics ズレ方トレンド */
.smr-practice-analytics-miss-trend {
  margin: 16px 0 20px;
  padding: 16px 18px;
}

.smr-miss-trend__groups {
  margin: 8px 0 0;
  padding-left: 1.1rem;
  font-size: 0.9rem;
}

.smr-miss-trend__bar {
  margin-top: 14px;
}

.smr-miss-trend__axis {
  display: flex;
  justify-content: space-between;
  font-size: 0.78rem;
  color: var(--pga-guide-text-muted, #666);
  margin-bottom: 4px;
}

.smr-miss-trend__axis span:nth-child(2) {
  font-weight: 600;
  color: var(--pga-guide-text, #222);
}

.smr-miss-trend__track {
  display: flex;
  height: 10px;
  border-radius: 6px;
  overflow: hidden;
  background: #e8e8e8;
}

.smr-miss-trend__fill {
  display: block;
  height: 100%;
}

.smr-miss-trend__fill--left {
  background: rgba(196, 92, 26, 0.55);
}

.smr-miss-trend__fill--right {
  background: rgba(30, 120, 180, 0.45);
}

.smr-miss-trend__pct {
  margin: 6px 0 0;
  font-size: 0.85rem;
}

.smr-miss-trend__coach {
  margin: 12px 0 0;
  padding: 10px 12px;
  border-radius: 6px;
  background: rgba(196, 92, 26, 0.08);
  font-size: 0.9rem;
  line-height: 1.5;
}

@media (max-width: 520px) {
  .smr-goal-screen .smr-goal-grid {
    grid-template-columns: 1fr;
  }
}

/* —— Visual progress (変化の記録) —— */
.smr-vp-priority-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}

.smr-vp-card {
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: var(--pga-guide-panel);
  padding: 16px 16px 14px;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.1);
}

.smr-vp-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.smr-vp-card__title {
  margin: 0;
  font-size: 1.05rem;
}

.smr-vp-card__badge {
  font-size: 12px;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--pga-guide-border-strong);
  color: var(--pga-guide-text-soft);
}

.smr-vp-card__compare {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  margin: 10px 0;
  align-items: start;
}

@media (max-width: 520px) {
  .smr-vp-card__compare {
    grid-template-columns: 1fr;
  }
}

.smr-vp-card__cell {
  min-width: 0;
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  padding: 8px;
  background: rgba(0, 0, 0, 0.2);
}

.smr-vp-card__cell--empty {
  opacity: 0.65;
}

.smr-vp-card__cell-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: var(--pga-guide-text-muted);
  margin-bottom: 6px;
}

.smr-vp-card__thumb {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 1px;
  max-height: 200px;
  min-height: 72px;
  object-fit: contain;
  background: rgba(0, 0, 0, 0.25);
}

.smr-vp-card__ph {
  display: block;
  text-align: center;
  padding: 24px 8px;
  color: var(--pga-guide-text-muted);
}

.smr-vp-card__hint,
.smr-vp-card__copy {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.5;
}

.smr-vp-card__copy--muted {
  color: var(--pga-guide-text-muted);
}

.smr-vp-card__copy--ok {
  color: #7bd4a4;
}

.smr-vp-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.smr-vp-strip {
  margin: 12px 0 14px;
  padding: 12px 14px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: rgba(0, 0, 0, 0.18);
}

.smr-vp-strip--hint .smr-vp-strip__p {
  margin: 0 0 8px;
  font-size: 13px;
}

.smr-vp-strip__title {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 800;
}

.smr-vp-strip__pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.smr-vp-strip__cell {
  min-width: 0;
}

@media (max-width: 520px) {
  .smr-vp-strip__pair {
    grid-template-columns: 1fr;
  }
}

.smr-vp-strip__ph {
  display: block;
  padding: 20px 8px;
  text-align: center;
  font-size: 12px;
  color: var(--pga-guide-text-muted);
}

.smr-vp-strip__lab {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: var(--pga-guide-text-muted);
  margin-bottom: 6px;
}

.smr-vp-strip__img {
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: 72px;
  max-height: 220px;
  object-fit: contain;
  display: block;
  border-radius: 1px;
  background: rgba(0, 0, 0, 0.22);
}

.smr-vp-strip__meta {
  margin: 8px 0 0;
  font-size: 12px;
}

.smr-vp-strip__btn {
  margin-top: 10px;
}

.smr-vp-set-best {
  margin: 14px 0 10px;
  padding: 12px;
  border-radius: 1px;
  border: 1px solid var(--pga-guide-border);
  background: rgba(0, 0, 0, 0.15);
  text-align: center;
}

.smr-vp-set-best__title {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 800;
}

.smr-vp-set-best__img {
  max-width: 100%;
  max-height: 200px;
  object-fit: contain;
  border-radius: 1px;
}

.smr-vp-set-best .smr-practice-img-frame .smr-managed-evidence-img {
  max-height: 200px;
}

.smr-vp-set-best__note {
  margin: 8px 0 0;
  font-size: 13px;
  color: var(--pga-guide-text-muted);
}

.smr-vp-viewer {
  position: fixed;
  inset: 0;
  z-index: 100010;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right))
    max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  box-sizing: border-box;
}

.smr-vp-viewer__backdrop {
  position: absolute;
  inset: 0;
  /* Strong dim so the compare dialog reads clearly over busy page content. */
  background: rgba(4, 6, 10, 0.92);
  backdrop-filter: blur(4px);
}

.smr-vp-viewer__panel {
  position: relative;
  z-index: 1;
  width: min(920px, 100%);
  max-height: min(92vh, 900px);
  overflow: auto;
  padding: 18px 20px 16px;
  /* Override global .smr-card transparency for before/after readability. */
  background: linear-gradient(180deg, #1e252f 0%, #141920 100%);
  background-color: #181e28;
  border: 1px solid var(--pga-guide-border-strong);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.04),
    0 28px 90px rgba(0, 0, 0, 0.78);
}

.smr-vp-viewer__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.smr-vp-viewer__compare {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

@media (max-width: 640px) {
  .smr-vp-viewer__compare {
    grid-template-columns: 1fr;
  }
}

.smr-vp-viewer__fig {
  margin: 0;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--pga-guide-border-strong);
  border-radius: 1px;
  background: #0a0c10;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.smr-vp-viewer__fig figcaption {
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 8px;
  color: rgba(236, 240, 248, 0.88);
  letter-spacing: 0.02em;
}

.smr-vp-viewer__fig img {
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: 80px;
  display: block;
  border-radius: 1px;
  background: #050608;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
  object-fit: contain;
}

.smr-vp-viewer__empty {
  margin: 0;
  font-size: 13px;
  color: rgba(200, 208, 220, 0.75);
}

.smr-vp-viewer__timeline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.smr-vp-chip {
  flex: 0 0 auto;
  width: 88px;
  border: 1px solid var(--pga-guide-border);
  border-radius: 1px;
  padding: 6px;
  background: var(--pga-guide-panel);
}

.smr-vp-chip--empty {
  opacity: 0.55;
}

.smr-vp-chip__lab {
  display: block;
  font-size: 9px;
  font-weight: 700;
  margin-bottom: 4px;
  color: var(--pga-guide-text-muted);
}

.smr-vp-chip__img {
  width: 100%;
  height: 52px;
  object-fit: cover;
  display: block;
  border-radius: 1px;
}

.smr-vp-chip__imgwrap {
  border: none;
  padding: 0;
  background: none;
  cursor: pointer;
  display: block;
  width: 100%;
}

.smr-vp-chip__ph {
  display: block;
  text-align: center;
  padding: 16px 0;
  font-size: 12px;
}

.smr-vp-timeline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-vp-timeline--wide .smr-vp-chip {
  width: 100px;
}

.smr-vp-viewer__coach {
  margin: 12px 0 0;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(210, 218, 230, 0.82);
  padding: 10px 12px;
  border-radius: 1px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid var(--pga-guide-border);
}

/* Milestone chips inside the viewer sit on the opaque panel — give them solid wells. */
.smr-vp-viewer__panel .smr-vp-chip {
  background: #141a22;
  border-color: var(--pga-guide-border-strong);
}

.smr-vp-viewer__panel .smr-vp-chip__lab {
  color: rgba(200, 208, 220, 0.85);
}

.smr-vp-viewer__panel .smr-vp-chip--empty {
  opacity: 0.7;
}

.smr-vp-viewer__panel .smr-vp-viewer__head h3,
.smr-vp-viewer__panel h3#smr-vp-viewer-title {
  color: rgba(248, 250, 252, 0.96);
}

.smr-vp-analytics-block {
  margin-top: 8px;
}

.smr-vp-analytics-note {
  margin: 8px 0 0;
  font-size: 12px;
  color: var(--pga-guide-text-muted);
}

.smr-vp-viewer__gallery-actions {
  margin-top: 14px;
}

.smr-vp-viewer__gallery-status {
  margin: 10px 0 0;
  font-size: 13px;
  color: rgba(200, 208, 220, 0.82);
}

.smr-vp-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
  gap: 10px;
  margin-top: 12px;
  max-height: 240px;
  overflow-y: auto;
}

.smr-vp-gallery-item {
  position: relative;
  text-align: center;
}

.smr-vp-gallery-item__btn {
  display: block;
  width: 100%;
  padding: 0;
  border: 1px solid var(--pga-guide-border-strong);
  border-radius: 1px;
  background: #0a0c10;
  cursor: pointer;
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.smr-vp-gallery-item__img {
  width: 100%;
  height: 72px;
  object-fit: cover;
  display: block;
}

.smr-vp-gallery-item__tag {
  display: block;
  margin-top: 4px;
  font-size: 10px;
  font-weight: 700;
  color: var(--pga-guide-text-muted);
}

/* --- PWA install + standalone shell ---
   Theme note: standalone hides common *footer* wrappers only; headers stay for main nav.
   Override in a child theme if your footer uses different selectors. --- */
.smr-pwa-install-card {
  display: grid;
  gap: 14px;
  margin: 0 0 18px;
  padding: 16px;
  border: 1px solid rgba(255, 120, 0, 0.32);
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.13), rgba(255, 255, 255, 0.04));
  color: var(--pga-guide-text, #fff);
}

.smr-pwa-install-card__copy {
  display: grid;
  gap: 6px;
}

.smr-pwa-install-card__copy strong {
  font-size: 16px;
  font-weight: 800;
}

.smr-pwa-install-card__copy p,
.smr-pwa-install-card__ios p {
  margin: 0;
  color: var(--pga-guide-text-soft, rgba(255, 255, 255, 0.9));
  line-height: 1.7;
}

.smr-pwa-install-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.smr-pwa-install-card__already {
  margin: 10px 0 0;
  text-align: center;
}

.smr-pwa-install-card__already .smr-link-like {
  font-size: 13px;
}

.smr-pwa-install-card__primary {
  background: var(--pga-guide-gradient, linear-gradient(135deg, #ff7800 0%, #ff9b33 48%, #ffd27a 100%));
  color: #fff;
  font-weight: 800;
}

.smr-pwa-install-card__ios {
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.22);
}

.smr-pwa-install-card__ios-list {
  margin: 0;
  padding-left: 1.2em;
  line-height: 1.75;
  color: var(--pga-guide-text-soft, rgba(255, 255, 255, 0.9));
}

/* Desktop / pointer-fine: theme page is usually white; SMR tokens assume a dark shell. */
@media (hover: hover) and (pointer: fine) {
  .smr-pwa-install-card {
    border-color: rgba(255, 120, 0, 0.42);
    background: linear-gradient(180deg, #fff7ed 0%, #ffffff 100%);
    color: #141414;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
  }

  .smr-pwa-install-card__copy strong {
    color: #111;
  }

  .smr-pwa-install-card__copy p,
  .smr-pwa-install-card__ios p {
    color: rgba(20, 20, 20, 0.82);
  }

  .smr-pwa-install-card__ios {
    border-color: rgba(0, 0, 0, 0.1);
    background: rgba(255, 120, 0, 0.06);
  }

  .smr-pwa-install-card__ios-list {
    color: rgba(20, 20, 20, 0.88);
  }

  .smr-pwa-install-card__already .smr-link-like {
    color: #b54d00;
  }

  .smr-pwa-install-card .smr-button-secondary {
    color: #1a1a1a;
    border-color: rgba(0, 0, 0, 0.22) !important;
    background: rgba(255, 255, 255, 0.92);
  }

  .smr-pwa-install-card .smr-button-secondary:hover,
  .smr-pwa-install-card .smr-button-secondary:focus {
    color: #000;
    border-color: rgba(0, 0, 0, 0.35) !important;
    background: #fff;
  }
}

.smr-locked-pwa-fallback {
  display: none;
}

html.smr-is-standalone .smr-locked-pwa-fallback {
  display: block;
}

html.smr-is-standalone,
html.smr-is-standalone body {
  background: #000;
}

/* Standalone (any URL): hide site footers only — in-browser chrome stays usable. */
html.smr-is-standalone .site-footer,
html.smr-is-standalone .wp-site-blocks > footer,
html.smr-is-standalone footer.site-footer,
html.smr-is-standalone #colophon,
html.smr-is-standalone .elementor-location-footer,
html.smr-is-standalone footer.elementor-location-footer {
  display: none !important;
}

/* Installed app launch (?smr_pwa=1 + standalone): hide membership/theme header and footer. SMR in-app UI is unchanged. */
html.smr-is-pwa-app .site-header,
html.smr-is-pwa-app .wp-site-blocks > header,
html.smr-is-pwa-app header.site-header,
html.smr-is-pwa-app #masthead,
html.smr-is-pwa-app .elementor-location-header,
html.smr-is-pwa-app header.elementor-location-header,
html.smr-is-pwa-app .site-footer,
html.smr-is-pwa-app .wp-site-blocks > footer,
html.smr-is-pwa-app footer.site-footer,
html.smr-is-pwa-app #colophon,
html.smr-is-pwa-app .elementor-location-footer,
html.smr-is-pwa-app footer.elementor-location-footer {
  display: none !important;
}

html.smr-is-standalone .smr-app-shell {
  min-height: 100dvh;
  padding-top: max(12px, env(safe-area-inset-top));
  padding-bottom: max(12px, env(safe-area-inset-bottom));
}

/* Boot gate: JS probes this rule via getComputedStyle before removing html.smr-booting (see scheduleFinalizeBootUi). */
.smr-css-ready-sentinel {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
  visibility: hidden;
  color: rgb(1, 2, 3);
}

/* Boot mask: theme + PWA cold start — keep branded shell until smr-app finalizes (see finalizeBootUi) */
html.smr-booting,
html.smr-booting body {
  background: #000 !important;
}

html.smr-booting #smr-app {
  visibility: hidden;
}

html.smr-booting #smr-pwa-startup,
html.smr-booting #smr-access-loader {
  display: grid !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html.smr-practice-entry-boot,
html.smr-practice-entry-boot body {
  background: #000 !important;
}

html.smr-practice-entry-boot #smr-app {
  visibility: hidden;
}

html.smr-practice-entry-boot #smr-pwa-startup,
html.smr-practice-entry-boot #smr-access-loader {
  display: grid !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html.smr-booting.smr-is-pwa-app .site-header,
html.smr-booting.smr-is-pwa-app .site-footer,
html.smr-booting.smr-is-pwa-app .wp-site-blocks > header,
html.smr-booting.smr-is-pwa-app .wp-site-blocks > footer,
html.smr-booting.smr-consumer-is-standalone .site-header,
html.smr-booting.smr-consumer-is-standalone .site-footer,
html.smr-booting.smr-consumer-is-standalone .wp-site-blocks > header,
html.smr-booting.smr-consumer-is-standalone .wp-site-blocks > footer {
  visibility: hidden !important;
}

.smr-pwa-startup.smr-startup--leaving,
.smr-access-loader.smr-startup--leaving {
  opacity: 0;
  transition: opacity 0.18s ease;
  pointer-events: none;
}

/* Branded access loader (web + PWA; head inline may also set these for cold PWA) */
.smr-pwa-startup,
.smr-access-loader {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  place-items: center;
  background: #000;
  color: #fff;
  text-align: center;
  padding: 24px;
  box-sizing: border-box;
}

.smr-pwa-startup__inner {
  display: grid;
  gap: 14px;
  place-items: center;
  width: min(280px, 86vw);
}

.smr-pwa-startup__logo-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(240px, 72vw);
  aspect-ratio: 1;
  min-height: 200px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.smr-pwa-startup__message-slot {
  display: grid;
  gap: 10px;
  place-items: center;
  min-height: 48px;
  width: 100%;
}

.smr-pwa-startup__message-slot [data-smr-boot-message] {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.7;
  min-height: 24px;
  animation: smr-boot-message-pulse 2.4s ease-in-out infinite;
}

.smr-pwa-startup__retry-actions {
  margin: 0;
  display: none;
  gap: 10px;
  justify-items: center;
}

.smr-pwa-startup--retry .smr-pwa-startup__retry-actions {
  display: grid;
}

.smr-pwa-startup--retry [data-smr-boot-message] {
  animation: none;
}

@keyframes smr-boot-message-pulse {
  0%,
  100% {
    opacity: 0.82;
  }

  50% {
    opacity: 1;
  }
}

.smr-swing-score-logo,
.smr-pwa-startup__logo {
  display: block;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  width: min(240px, 72vw);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.smr-pwa-startup__logo-slot .smr-pwa-startup__logo.is-loaded,
.smr-pwa-startup__logo-slot .smr-pwa-startup__mark {
  opacity: 1;
}

.smr-pwa-startup__mark {
  font-weight: 900;
  font-size: 22px;
  line-height: 1.2;
  color: #ff7800;
  letter-spacing: 0.02em;
}

.smr-pwa-startup p {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.7;
}

.smr-access-gate-error {
  position: fixed;
  inset: 0;
  z-index: 999998;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  background: #000;
  color: #fff;
  text-align: center;
}

.smr-access-gate-error:not([hidden]) {
  display: flex;
}

.smr-access-gate-error__inner {
  max-width: 22rem;
  display: grid;
  gap: 16px;
  justify-items: center;
}

.smr-access-gate-error__text {
  margin: 0;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
  font-size: 15px;
}

/* PWA app shell: prevent iOS/browser default blue action text inside practice edit overlays */
html.smr-is-pwa-app .smr-practice-rep-edit,
html.smr-is-pwa-app .smr-practice-rep-edit *,
html.smr-is-pwa-app .smr-practice-rep-edit button,
html.smr-is-pwa-app .smr-practice-rep-edit .smr-button,
html.smr-is-pwa-app .smr-practice-rep-edit .smr-button-secondary,
html.smr-is-pwa-app .smr-practice-rep-edit .smr-practice-rep-edit__okbtn,
html.smr-is-pwa-app .smr-practice-rep-edit [data-action^="practice-rep-edit"],
html.smr-is-pwa-app [data-action="practice-rep-edit-set-okay"],
html.smr-is-pwa-app [data-action="practice-rep-edit-save"],
html.smr-is-pwa-app [data-action="practice-rep-edit-delete"],
html.smr-is-pwa-app [data-action="practice-rep-edit-change-miss"],
html.smr-is-pwa-app [data-action="practice-rep-edit-nav"] {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

html.smr-is-pwa-app .smr-practice-rep-edit .smr-button-secondary {
  background: transparent !important;
  border-color: var(--pga-guide-border-strong, rgba(255, 255, 255, 0.24)) !important;
  box-shadow: none !important;
}

html.smr-is-pwa-app .smr-practice-rep-edit .smr-button-secondary:hover,
html.smr-is-pwa-app .smr-practice-rep-edit .smr-button-secondary:focus,
html.smr-is-pwa-app .smr-practice-rep-edit .smr-button-secondary:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  border-color: rgba(255, 120, 0, 0.55) !important;
}

html.smr-is-pwa-app .smr-analyzer__okay-choice {
  color: var(--pga-guide-text-soft) !important;
  -webkit-text-fill-color: var(--pga-guide-text-soft);
  border-color: var(--smr-surface-border-strong) !important;
  background: rgba(255, 255, 255, 0.04) !important;
  box-shadow: none !important;
}

html.smr-is-pwa-app .smr-analyzer__okay-choice:hover {
  color: var(--pga-guide-text) !important;
  -webkit-text-fill-color: var(--pga-guide-text);
  border-color: var(--smr-surface-accent-border) !important;
}

html.smr-is-pwa-app .smr-analyzer__okay-choice.is-selected,
html.smr-is-pwa-app .smr-analyzer__okay-choice[aria-pressed="true"],
html.smr-is-pwa-app .smr-analyzer__okay-choice[aria-checked="true"],
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__okay-choice.is-selected,
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__okay-choice[aria-pressed="true"],
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__okay-choice[aria-checked="true"] {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.3), rgba(255, 120, 0, 0.14)) !important;
  border-color: var(--pga-guide-accent, #ff7800) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255, 177, 92, 0.34),
    0 0 0 1px rgba(255, 120, 0, 0.2),
    0 10px 24px rgba(255, 120, 0, 0.2) !important;
}

html.smr-is-pwa-app .smr-analyzer__okay-choice.is-selected::before,
html.smr-is-pwa-app .smr-analyzer__okay-choice[aria-pressed="true"]::before,
html.smr-is-pwa-app .smr-analyzer__okay-choice[aria-checked="true"]::before,
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__okay-choice.is-selected::before,
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__okay-choice[aria-pressed="true"]::before,
.smr-analyzer.smr-analyzer--mobile .smr-analyzer__okay-choice[aria-checked="true"]::before {
  content: "✓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 6px;
  font-weight: 900;
  color: #ffffff;
}

html.smr-is-pwa-app .smr-practice-rep-edit .is-selected,
html.smr-is-pwa-app .smr-practice-rep-edit [aria-pressed="true"],
html.smr-is-pwa-app .smr-practice-rep-edit .smr-practice-rep-edit__okbtn.is-selected,
html.smr-is-pwa-app [data-action="practice-rep-edit-set-okay"].is-selected,
html.smr-is-pwa-app [data-action="practice-rep-edit-set-okay"][aria-pressed="true"] {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.3), rgba(255, 120, 0, 0.14)) !important;
  border-color: var(--pga-guide-accent, #ff7800) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255, 177, 92, 0.34),
    0 0 0 1px rgba(255, 120, 0, 0.2),
    0 10px 24px rgba(255, 120, 0, 0.2) !important;
}

html.smr-is-pwa-app .smr-practice-rep-edit .smr-button,
html.smr-is-pwa-app .smr-practice-rep-edit button.smr-button,
html.smr-is-pwa-app .smr-practice-rep-edit .smr-button-secondary {
  text-decoration: none !important;
  -webkit-appearance: none;
  appearance: none;
}

/* PWA + narrow phone: compact floating draw rail (~20–25% narrower) without shrinking tap targets below ~44px */
@media (max-width: 768px) {
  html.smr-is-pwa-app .smr-analyzer.smr-analyzer--mobile {
    --smr-mobile-tool-float-lift: 50px;
  }

  html.smr-is-pwa-app .smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-tool-float {
    width: min(26vw, 5.25rem);
    max-width: 84px;
    min-width: 68px;
  }

  html.smr-is-pwa-app .smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-side-rail {
    width: min(26vw, 5.25rem);
    max-width: 84px;
    min-width: 68px;
    padding: 3px 0 3px 5px;
    margin-left: 1px;
  }

  html.smr-is-pwa-app
    .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-tool-float
    .smr-analyzer__draw-dock-side-rail {
    padding: 4px 5px 7px;
  }

  html.smr-is-pwa-app
    .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__tools-card {
    padding: 5px 4px 7px;
    gap: 6px;
    border-radius: var(--smr-radius-card);
  }

  html.smr-is-pwa-app
    .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__tool-row {
    gap: 4px;
  }

  html.smr-is-pwa-app
    .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__tool {
    padding: 7px 4px;
    min-height: 48px;
    font-size: 11px;
    box-sizing: border-box;
  }

  html.smr-is-pwa-app
    .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__tool-icon {
    width: 20px !important;
    height: 20px !important;
  }

  html.smr-is-pwa-app
    .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__edit-row {
    gap: 4px;
  }

  html.smr-is-pwa-app
    .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__edit-btn {
    min-height: 44px;
    padding: 7px 6px;
    font-size: 11px;
  }

  html.smr-is-pwa-app .smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-collapse-hit {
    min-height: 48px;
    padding: 6px 8px;
  }

  html.smr-is-pwa-app .smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-dock-collapse-icon {
    width: 22px;
    height: 22px;
  }
}

/* ==========================================================================
   Japan-aware design system pass — contextual overrides (CSS-only)
   ========================================================================== */

.smr-app-shell .smr-section h3 {
  font-size: var(--smr-type-section-title);
  line-height: var(--smr-lh-section);
}

.smr-app-shell .smr-card h3,
.smr-app-shell .smr-action-card h4,
.smr-app-shell .smr-step-card h4 {
  font-size: var(--smr-type-card-title);
}

.smr-app-shell .smr-section-head .smr-eyebrow {
  letter-spacing: var(--smr-track-eyebrow);
}

.smr-app-shell .smr-help,
.smr-app-shell .smr-checkpoint-jump__hint,
.smr-app-shell .smr-practice-shell__copy {
  font-size: var(--smr-type-helper);
  line-height: var(--smr-lh-helper);
}

.smr-practice-shell__bar {
  margin-bottom: var(--smr-space-5);
  padding-bottom: var(--smr-space-4);
  border-bottom: 1px solid var(--smr-surface-border);
}

.smr-practice-set-hero {
  padding: var(--smr-space-5) var(--smr-space-5);
  border-radius: var(--smr-radius-card);
}

.smr-checkpoint-bottom-nav,
.smr-checkpoint-top-nav {
  gap: var(--smr-space-3);
  margin: var(--smr-space-5) 0 var(--smr-space-3);
}

.smr-checkpoint-jump {
  padding: var(--smr-space-4);
  gap: var(--smr-space-3);
}

.smr-compare-image-frame,
.smr-resource img,
.smr-resource video {
  border-radius: var(--smr-radius-media);
}

/* Analyzer visual unification — SAFE_VISUAL_ONLY (see smr-redesign-analyzer-checklist.md) */

.smr-analyzer__help,
.smr-analyzer__section-label,
.smr-analyzer__hint-details,
.smr-analyzer__calibration-card p,
.smr-analyzer__practice-card p {
  font-size: var(--smr-type-body);
  line-height: var(--smr-lh-body);
  color: var(--pga-guide-text-soft);
}

.smr-analyzer__tools-card,
.smr-analyzer__practice-card,
.smr-analyzer__calibration-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--smr-surface-border);
  border-radius: var(--smr-radius-card);
}

.smr-analyzer__tool,
.smr-analyzer__edit-btn {
  border-radius: var(--smr-radius-button);
  min-height: 44px;
}

.smr-analyzer__draw-dock--freeform,
.smr-analyzer__draw-dock--assess-mobile {
  background: rgba(0, 0, 0, 0.94);
  border-top: 1px solid var(--smr-surface-border-strong);
}

.smr-analyzer__draw-dock-tool-float {
  background: rgba(0, 0, 0, 0.94);
  border: 1px solid var(--smr-surface-border-strong);
  border-radius: var(--smr-radius-card);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.smr-analyzer__draw-fs-chrome-inner {
  background: rgba(0, 0, 0, 0.94);
  border: 1px solid var(--smr-surface-border-strong);
  border-radius: var(--smr-radius-card);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.smr-analyzer__draw-dock-tab {
  border-radius: var(--smr-radius-button);
}

.smr-analyzer__draw-dock-tab.is-active,
.smr-analyzer__tool.is-active {
  border-color: var(--smr-surface-accent-border);
}

.smr-analyzer__close:hover,
.smr-analyzer__close:focus {
  color: var(--pga-guide-text);
  background: rgba(255, 120, 0, 0.12);
}

@media (max-width: 768px) {
  .smr-app-shell .smr-button,
  .smr-app-shell .smr-banner-button,
  .smr-app-shell .smr-resource-button {
    font-size: clamp(16px, 4vw, 18px);
    min-height: 52px;
    width: 100%;
  }

  .smr-app-shell .smr-section {
    margin-top: var(--smr-space-8);
  }

  .smr-app-shell .smr-card,
  .smr-app-shell .smr-step-card,
  .smr-app-shell .smr-action-card {
    padding: var(--smr-space-5);
  }

  .smr-diagnosis-corridor > .smr-section + .smr-section {
    margin-top: var(--smr-space-8);
    padding-top: var(--smr-space-7);
  }
}

@media (min-width: 769px) {
  .smr-app-shell .smr-page {
    max-width: 1180px;
    margin-inline: auto;
  }

  .smr-diagnosis-corridor {
    max-width: 1080px;
    margin-inline: auto;
  }

  .smr-app-shell .smr-section {
    margin-top: var(--smr-space-9);
  }

  .smr-app-shell .smr-card,
  .smr-app-shell .smr-step-card {
    padding: var(--smr-space-6);
  }
}

@media (min-width: 1280px) {
  .smr-diagnosis-corridor .smr-section-copy,
  .smr-diagnosis-corridor .smr-diagnosis-priority-card__copy {
    max-width: 760px;
  }
}

/* ==========================================================================
   Final alignment pass — analyzer + global consistency (CSS-only)
   ========================================================================== */

.smr-analyzer__hint,
.smr-analyzer__hint-summary,
.smr-analyzer__hint-body,
.smr-analyzer__help,
.smr-analyzer__help--compact,
.smr-analyzer__calibration-copy,
.smr-analyzer__calibration-longhelp-body,
.smr-analyzer__cal-flow-copy,
.smr-analyzer__cal-flow-seek-hint,
.smr-analyzer__desktop-step-copy,
.smr-analyzer__rating-sub,
.smr-analyzer__override-hint,
.smr-analyzer__practice-okay-note {
  font-size: max(14.5px, var(--smr-type-helper));
  line-height: var(--smr-lh-helper);
  color: var(--pga-guide-text-soft);
}

.smr-analyzer__hint,
.smr-analyzer__cal-flow-copy,
.smr-analyzer__calibration-copy,
.smr-analyzer__practice-okay-note {
  font-size: max(15px, var(--smr-type-body));
}

.smr-analyzer__section-label,
.smr-analyzer__cal-flow-eyebrow {
  font-size: max(12px, var(--smr-type-label));
  color: var(--pga-guide-text-muted);
}

.smr-analyzer__okay-choice {
  border-radius: var(--smr-radius-button);
  border-color: var(--smr-surface-border-strong);
  background: rgba(255, 255, 255, 0.04);
  color: var(--pga-guide-text-soft);
  font-size: 15px;
  min-height: 48px;
}

.smr-analyzer__okay-choice.is-selected,
.smr-analyzer__okay-choice[aria-pressed="true"],
.smr-analyzer__okay-choice[aria-checked="true"] {
  border-color: var(--pga-guide-accent);
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.3), rgba(255, 120, 0, 0.14));
  color: #ffffff;
  box-shadow:
    inset 0 0 0 1px rgba(255, 177, 92, 0.34),
    0 0 0 1px rgba(255, 120, 0, 0.2),
    0 10px 24px rgba(255, 120, 0, 0.2);
}

.smr-analyzer .smr-analyzer__submit,
.smr-analyzer .smr-analyzer__freeze-btn {
  min-height: 52px;
  font-size: 16px;
  border-radius: var(--smr-radius-button);
}

.smr-analyzer .smr-analyzer__submit {
  background: var(--pga-guide-gradient) !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

.smr-analyzer__draw-dock-tab:not(.is-active) {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--smr-surface-border-strong);
  color: var(--pga-guide-text-soft);
}

.smr-analyzer__draw-dock-tab.is-active {
  border-color: var(--pga-guide-accent);
  background: rgba(255, 120, 0, 0.22);
  color: var(--pga-guide-text);
}

.smr-analyzer__draw-dock-panel {
  background: transparent;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-fs-chrome-inner {
  border-radius: var(--smr-radius-card);
  border-color: var(--smr-surface-border-strong);
  background: rgba(0, 0, 0, 0.94);
}

.smr-score-card {
  margin-bottom: var(--smr-space-7);
  padding: var(--smr-space-6) var(--smr-space-5);
}

.smr-breakdown-card,
.smr-compare-card,
.smr-compare-pane {
  border-radius: var(--smr-radius-card);
}

.smr-breakdown-grid {
  gap: var(--smr-space-5);
}

.smr-portal-cta-card {
  border-radius: var(--smr-radius-card);
}

.smr-community-card {
  border-radius: var(--smr-radius-card);
}

.smr-community-card__body {
  font-size: max(15px, var(--smr-type-body));
  line-height: var(--smr-lh-body);
}

.smr-step-card,
.smr-action-card,
.smr-card--step {
  border-radius: var(--smr-radius-card);
}

.smr-step-card p,
.smr-action-card p,
.smr-card--step p {
  font-size: max(15.5px, var(--smr-type-body));
  line-height: 1.8;
}

.smr-practice-link-btn {
  min-height: 44px;
  border-radius: var(--smr-radius-button);
}

.smr-practice-instruction,
.smr-practice-summary {
  font-size: var(--smr-type-body);
  line-height: var(--smr-lh-body);
}

@media (max-width: 768px) {
  .smr-app-shell .smr-page {
    padding-inline: var(--smr-space-5);
  }

  .smr-score-card {
    padding: var(--smr-space-5);
  }

  .smr-diagnosis-corridor > .smr-section + .smr-section {
    margin-top: clamp(30px, 8vw, 40px);
  }

  .smr-analyzer__calibration-copy,
  .smr-analyzer__cal-flow-copy {
    font-size: 15px;
    line-height: 1.75;
  }
}

@media (min-width: 769px) {
  .smr-diagnosis-corridor > .smr-section + .smr-section {
    margin-top: clamp(36px, 3vw, 52px);
    padding-top: var(--smr-space-7);
  }

  .smr-breakdown-grid {
    gap: clamp(24px, 2.5vw, 36px);
  }

  .smr-score-card {
    padding: var(--smr-space-7) var(--smr-space-6);
  }
}

/* ==========================================================================
   UX workspace pass — full-screen analyzer + flow hierarchy
   ========================================================================== */

@supports not (height: 100dvh) {
  .smr-analyzer {
    --smr-analyzer-stage-max: calc(
      100vh - var(--smr-analyzer-header-h) - var(--smr-analyzer-controls-h) - 32px
    );
  }

  .smr-analyzer__panel {
    height: 100vh;
  }
}

.smr-analyzer--desktop-workspace:has(.smr-analyzer__desktop-footer:not([hidden])) {
  --smr-analyzer-stage-max: calc(
    100dvh - var(--smr-analyzer-header-h) - var(--smr-analyzer-controls-h) - var(--smr-analyzer-footer-h) - 32px
  );
}

.smr-analyzer__close {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.smr-practice-hub-grid,
.smr-practice-preview-chart {
  margin-top: clamp(36px, 5vw, 52px);
  margin-bottom: clamp(16px, 2.5vw, 24px);
  padding-top: clamp(16px, 2.5vw, 20px);
  border-top: 1px solid var(--smr-surface-border);
}

.smr-practice-set-actions {
  margin-top: clamp(18px, 2.5vw, 24px);
}

.smr-app-shell .smr-header {
  margin-bottom: clamp(32px, 4vw, 44px);
}

.smr-app-shell .smr-section + .smr-section {
  margin-top: clamp(32px, 5vw, 44px);
}

.smr-app-shell .smr-grid {
  gap: clamp(16px, 2.5vw, 24px);
}

.smr-app-shell .smr-action-card {
  border-top: 2px solid transparent;
}

.smr-app-shell .smr-banner-wrap + .smr-section,
.smr-app-shell .smr-header + .smr-banner-wrap {
  margin-top: 0;
}

/* Scrollable full-screen workspace — preserve locked drawing / zoom-pan exceptions */
.smr-analyzer.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill .smr-analyzer__body,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-zoom-pan .smr-analyzer__body {
  overflow-y: hidden;
}

/* Mobile draw/export tabs (not fullscreen stage): body scrolls so dock + OK-zone stay reachable */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__body,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__body {
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-bottom: max(120px, calc(env(safe-area-inset-bottom, 0px) + 88px));
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) [data-workspace],
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__grid,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__col-visual,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__video-section[data-video-section],
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) [data-workspace],
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__grid,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__col-visual,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__video-section[data-video-section] {
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__col-tools,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__col-tools {
  flex: 0 0 auto;
  max-height: none;
  overflow: visible;
}

.smr-practice-section {
  margin-bottom: clamp(34px, 5vw, 48px);
}

.smr-practice-section--hero {
  margin-bottom: clamp(28px, 4vw, 40px);
}

.smr-practice-section--hero .smr-practice-set-hero,
.smr-practice-section--hero .smr-practice-mastery-board {
  margin-bottom: 0;
}

.smr-practice-section--hero .smr-practice-banner {
  margin-bottom: clamp(16px, 2.5vw, 24px);
}

.smr-practice-section--hero .smr-practice-banner:last-child {
  margin-bottom: 0;
}

.smr-practice-section--task .smr-practice-set-actions:first-of-type {
  margin-top: clamp(20px, 3vw, 24px);
}

.smr-practice-section--history,
.smr-practice-section--trends {
  margin-top: clamp(36px, 5vw, 52px);
  padding-top: clamp(16px, 2.5vw, 20px);
  border-top: 1px solid var(--smr-surface-border);
}

.smr-analyzer--desktop-workspace:has(.smr-analyzer__desktop-footer:not([hidden])) {
  --smr-analyzer-stage-max: calc(
    100dvh - var(--smr-analyzer-header-h) - var(--smr-analyzer-controls-h) - var(--smr-analyzer-footer-h) - 48px
  );
}

/* Desktop analyzer 3-column workbench — workflow | stage | inspector */
@media (min-width: 769px) {
  .smr-analyzer--desktop-workbench .smr-analyzer__workspace,
  .smr-analyzer--desktop-workbench [data-workspace] {
    min-height: auto !important;
    height: auto !important;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    min-height: auto !important;
    height: auto !important;
  }

  .smr-analyzer--desktop-workbench [data-desktop-workflow-pane] {
    grid-area: workflow;
  }

  .smr-analyzer--desktop-workbench [data-desktop-stage-pane],
  .smr-analyzer--desktop-workbench .smr-analyzer__col-visual {
    grid-area: stage;
  }

  .smr-analyzer--desktop-workbench [data-desktop-inspector-pane],
  .smr-analyzer--desktop-workbench .smr-analyzer__col-tools {
    grid-area: inspector;
  }

  /* Narrow tablet: single column stack */
  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    grid-template-areas:
      "workflow"
      "stage"
      "inspector";
    grid-template-columns: minmax(0, 1fr);
    max-width: 560px;
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-locking [data-analyzer-freeze-row],
  .smr-analyzer--desktop-workbench.smr-analyzer--practice-rep.smr-analyzer--desktop-phase-locking [data-analyzer-freeze-row] {
    margin-top: 12px;
    margin-bottom: 16px;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-locking .smr-analyzer__freeze-btn,
  .smr-analyzer--desktop-workbench.smr-analyzer--practice-rep.smr-analyzer--desktop-phase-locking .smr-analyzer__freeze-btn {
    min-height: 52px;
    font-size: 17px;
    font-weight: 800;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-answer-summary {
    width: 100%;
    justify-content: center;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-edit-answer-collapsed
    [data-desktop-inspector-pane]
    .smr-analyzer__practice-card {
    display: none;
  }
}

@media (min-width: 900px) and (max-width: 1179px) {
  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    grid-template-columns: minmax(360px, 1fr) minmax(260px, 340px);
    grid-template-areas:
      "workflow workflow"
      "stage inspector";
    column-gap: clamp(16px, 2vw, 28px);
    row-gap: clamp(16px, 2vw, 24px);
    max-width: 960px;
    margin-inline: auto;
    align-items: start;
    justify-content: center;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "workflow"
      "stage";
    max-width: 640px;
  }
}

@media (min-width: 1180px) {
  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    grid-template-columns:
      minmax(240px, 300px)
      minmax(420px, 560px)
      minmax(280px, 360px);
    grid-template-areas: "workflow stage inspector";
    column-gap: clamp(20px, 2.4vw, 36px);
    max-width: 1320px;
    margin-inline: auto;
    align-items: start;
    justify-content: center;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload .smr-analyzer__grid {
    grid-template-columns: minmax(240px, 300px) minmax(420px, 560px);
    grid-template-areas:
      "workflow stage"
      "workflow stage";
    max-width: 900px;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload [data-desktop-inspector-pane] {
    display: none;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-calibration [data-desktop-inspector-pane] {
    display: grid;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--calibration-active.smr-analyzer--calibration-wizard [data-desktop-inspector-pane] {
    display: grid;
  }
}

/* Coach Mode desktop analyzer polish (Phase 23) */
@media (min-width: 769px) {
  .smr-analyzer--coach-mode.smr-analyzer--desktop-workspace .smr-analyzer__head {
    padding: 14px clamp(20px, 2.4vw, 28px);
    gap: 16px;
  }

  .smr-analyzer--coach-mode .smr-analyzer__head-main {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    gap: 4px;
  }

  .smr-analyzer--coach-mode .smr-analyzer__coach-context {
    margin: 0;
    font-size: clamp(13px, 0.35vw + 12px, 15px);
    font-weight: 600;
    color: var(--pga-guide-text-muted, rgba(255, 255, 255, 0.62));
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__head {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "title close"
      "context context";
    align-items: center;
    gap: 2px 8px;
    padding-bottom: 8px;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__title {
    grid-area: title;
    margin: 0;
    font-size: 15px;
    font-weight: 700;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__close {
    grid-area: close;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__coach-context--mobile {
    grid-area: context;
    white-space: normal;
    font-size: 12px;
    line-height: 1.25;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workspace [data-workspace] {
    max-width: min(1440px, 100%);
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__hint-details,
  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__assessment-override {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__desktop-footer:not([hidden]),
  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__desktop-actionbar:not([hidden]) {
    display: flex !important;
    margin-top: 0;
    position: sticky;
    bottom: 0;
    z-index: 22;
    padding: 14px clamp(20px, 2.4vw, 28px);
    border-top: 1px solid rgba(255, 120, 0, 0.28);
    background: rgba(8, 10, 14, 0.98);
    box-shadow: 0 -12px 32px rgba(0, 0, 0, 0.55);
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__desktop-footer-left,
  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__desktop-footer-right {
    flex: 0 0 auto;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__desktop-footer-right .smr-analyzer__submit {
    min-width: 240px;
    min-height: 48px;
    font-size: 16px;
    font-weight: 800;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__desktop-footer-left .smr-button {
    min-height: 48px;
    min-width: 120px;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-drawing .smr-analyzer__col-tools,
  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-drawing [data-desktop-inspector-pane] {
    padding-bottom: 8px;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__body {
    padding-bottom: 0;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-freeform .smr-analyzer__grid {
    max-width: min(1200px, 100%);
  }
}

@media (min-width: 1180px) {
  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__grid {
    grid-template-columns:
      minmax(220px, 280px)
      minmax(520px, 1fr)
      minmax(260px, 320px);
    max-width: 1440px;
    column-gap: clamp(24px, 2.8vw, 40px);
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench [data-desktop-stage-pane],
  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__col-visual {
    max-width: none;
    width: 100%;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench .smr-analyzer__stage {
    width: 100%;
    max-width: none;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-freeform .smr-analyzer__grid {
    grid-template-columns: minmax(560px, 1fr) minmax(280px, 340px);
    grid-template-areas: "stage inspector";
    max-width: 1280px;
  }

  .smr-analyzer--coach-mode.smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-freeform [data-desktop-workflow-pane] {
    display: none;
  }
}

.smr-practice-section--plan {
  margin-top: clamp(40px, 5vw, 56px);
}

/* Fixed address crosshair — child of stage, outside zoom-inner */
.smr-analyzer__address-crosshair {
  position: absolute;
  inset: 0;
  z-index: 40;
  pointer-events: none;
}

.smr-analyzer__address-crosshair[hidden] {
  display: none !important;
}

.smr-analyzer__address-crosshair-line {
  position: absolute;
  background: #ff7800;
  box-shadow: 0 0 14px rgba(255, 120, 0, 0.75);
  pointer-events: none;
}

.smr-analyzer__address-crosshair-line--v {
  left: 50%;
  top: 0;
  bottom: 0;
  width: 3px;
  transform: translateX(-50%);
}

.smr-analyzer__address-crosshair-line--h {
  top: 50%;
  left: 0;
  right: 0;
  height: 3px;
  transform: translateY(-50%);
}

.smr-analyzer__address-crosshair-dot {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #ff7800;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 18px rgba(255, 120, 0, 0.9);
  pointer-events: none;
}

/* Mobile address-align pre-lock mode — piggybacks mobile-draw-fullscreen */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__head,
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__row--top,
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__col-tools,
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__row--zoom,
  .smr-analyzer.smr-analyzer--mobile-address-align [data-analyzer-freeze-row],
  .smr-analyzer.smr-analyzer--mobile-address-align [data-cal-flow],
  .smr-analyzer.smr-analyzer--mobile-address-align [data-calibration-card],
  .smr-analyzer.smr-analyzer--mobile-address-align [data-toolbar],
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__draw-fs-chrome,
  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--address-align),
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__draw-dock-tool-float {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__stage {
    position: relative !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    background: #000 !important;
    overflow: hidden !important;
    touch-action: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__stage-scroll {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: none;
    overflow: auto !important;
    touch-action: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__draw-dock--address-align {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100004;
    display: grid;
    gap: 10px;
    padding: 10px 16px calc(16px + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.98) 0%,
      rgba(0, 0, 0, 0.92) 72%,
      rgba(0, 0, 0, 0) 100%
    );
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__draw-dock--address-align[hidden] {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__address-align-hint {
    margin: 0;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
    text-align: center;
    color: rgba(255, 255, 255, 0.84);
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    .smr-analyzer__draw-dock-transport {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    width: 100%;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    .smr-analyzer__seek-stack {
    margin: 0;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    .smr-analyzer__frame-step {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 22px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--smr-surface-border);
    background: rgba(0, 0, 0, 0.35);
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    .smr-analyzer__frame-nav.smr-button.smr-button-secondary {
    width: 48px;
    min-width: 48px;
    min-height: 44px;
    height: 44px;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    [data-seek] {
    width: 100%;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__address-align-lock {
    position: relative;
    z-index: 5;
    min-height: 58px;
    width: 100%;
    font-size: 20px;
    font-weight: 900;
    color: #111 !important;
    background: linear-gradient(135deg, #ff7800 0%, #ff9b33 52%, #ffb15c 100%) !important;
    border: 0 !important;
    box-shadow: 0 12px 28px rgba(255, 120, 0, 0.38);
    pointer-events: auto;
    touch-action: manipulation;
    -webkit-user-select: none;
    user-select: none;
  }
}

/* ==========================================================================
   Japan-aware design system pass — contextual overrides (CSS-only)
   ========================================================================== */

.smr-app-shell .smr-section h3 {
  font-size: var(--smr-type-section-title);
  line-height: var(--smr-lh-section);
}

.smr-app-shell .smr-card h3,
.smr-app-shell .smr-action-card h4,
.smr-app-shell .smr-step-card h4 {
  font-size: var(--smr-type-card-title);
}

.smr-app-shell .smr-section-head .smr-eyebrow {
  letter-spacing: var(--smr-track-eyebrow);
}

.smr-app-shell .smr-help,
.smr-app-shell .smr-checkpoint-jump__hint,
.smr-app-shell .smr-practice-shell__copy {
  font-size: var(--smr-type-helper);
  line-height: var(--smr-lh-helper);
}

.smr-practice-shell__bar {
  margin-bottom: var(--smr-space-5);
  padding-bottom: var(--smr-space-4);
  border-bottom: 1px solid var(--smr-surface-border);
}

.smr-practice-set-hero {
  padding: var(--smr-space-5) var(--smr-space-5);
  border-radius: var(--smr-radius-card);
}

.smr-checkpoint-bottom-nav,
.smr-checkpoint-top-nav {
  gap: var(--smr-space-3);
  margin: var(--smr-space-5) 0 var(--smr-space-3);
}

.smr-checkpoint-jump {
  padding: var(--smr-space-4);
  gap: var(--smr-space-3);
}

.smr-compare-image-frame,
.smr-resource img,
.smr-resource video {
  border-radius: var(--smr-radius-media);
}

/* Analyzer visual unification — SAFE_VISUAL_ONLY (see smr-redesign-analyzer-checklist.md) */

.smr-analyzer__help,
.smr-analyzer__section-label,
.smr-analyzer__hint-details,
.smr-analyzer__calibration-card p,
.smr-analyzer__practice-card p {
  font-size: var(--smr-type-body);
  line-height: var(--smr-lh-body);
  color: var(--pga-guide-text-soft);
}

.smr-analyzer__tools-card,
.smr-analyzer__practice-card,
.smr-analyzer__calibration-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--smr-surface-border);
  border-radius: var(--smr-radius-card);
}

.smr-analyzer__tool,
.smr-analyzer__edit-btn {
  border-radius: var(--smr-radius-button);
  min-height: 44px;
}

.smr-analyzer__draw-dock--freeform,
.smr-analyzer__draw-dock--assess-mobile {
  background: rgba(0, 0, 0, 0.94);
  border-top: 1px solid var(--smr-surface-border-strong);
}

.smr-analyzer__draw-dock-tool-float {
  background: rgba(0, 0, 0, 0.94);
  border: 1px solid var(--smr-surface-border-strong);
  border-radius: var(--smr-radius-card);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.smr-analyzer__draw-fs-chrome-inner {
  background: rgba(0, 0, 0, 0.94);
  border: 1px solid var(--smr-surface-border-strong);
  border-radius: var(--smr-radius-card);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.smr-analyzer__draw-dock-tab {
  border-radius: var(--smr-radius-button);
}

.smr-analyzer__draw-dock-tab.is-active,
.smr-analyzer__tool.is-active {
  border-color: var(--smr-surface-accent-border);
}

.smr-analyzer__close:hover,
.smr-analyzer__close:focus {
  color: var(--pga-guide-text);
  background: rgba(255, 120, 0, 0.12);
}

@media (max-width: 768px) {
  .smr-app-shell .smr-button,
  .smr-app-shell .smr-banner-button,
  .smr-app-shell .smr-resource-button {
    font-size: clamp(16px, 4vw, 18px);
    min-height: 52px;
    width: 100%;
  }

  .smr-app-shell .smr-section {
    margin-top: var(--smr-space-8);
  }

  .smr-app-shell .smr-card,
  .smr-app-shell .smr-step-card,
  .smr-app-shell .smr-action-card {
    padding: var(--smr-space-5);
  }

  .smr-diagnosis-corridor > .smr-section + .smr-section {
    margin-top: var(--smr-space-8);
    padding-top: var(--smr-space-7);
  }
}

@media (min-width: 769px) {
  .smr-app-shell .smr-page {
    max-width: 1180px;
    margin-inline: auto;
  }

  .smr-diagnosis-corridor {
    max-width: 1080px;
    margin-inline: auto;
  }

  .smr-app-shell .smr-section {
    margin-top: var(--smr-space-9);
  }

  .smr-app-shell .smr-card,
  .smr-app-shell .smr-step-card {
    padding: var(--smr-space-6);
  }
}

@media (min-width: 1280px) {
  .smr-diagnosis-corridor .smr-section-copy,
  .smr-diagnosis-corridor .smr-diagnosis-priority-card__copy {
    max-width: 760px;
  }
}

/* ==========================================================================
   Final alignment pass — analyzer + global consistency (CSS-only)
   ========================================================================== */

.smr-analyzer__hint,
.smr-analyzer__hint-summary,
.smr-analyzer__hint-body,
.smr-analyzer__help,
.smr-analyzer__help--compact,
.smr-analyzer__calibration-copy,
.smr-analyzer__calibration-longhelp-body,
.smr-analyzer__cal-flow-copy,
.smr-analyzer__cal-flow-seek-hint,
.smr-analyzer__desktop-step-copy,
.smr-analyzer__rating-sub,
.smr-analyzer__override-hint,
.smr-analyzer__practice-okay-note {
  font-size: max(14.5px, var(--smr-type-helper));
  line-height: var(--smr-lh-helper);
  color: var(--pga-guide-text-soft);
}

.smr-analyzer__hint,
.smr-analyzer__cal-flow-copy,
.smr-analyzer__calibration-copy,
.smr-analyzer__practice-okay-note {
  font-size: max(15px, var(--smr-type-body));
}

.smr-analyzer__section-label,
.smr-analyzer__cal-flow-eyebrow {
  font-size: max(12px, var(--smr-type-label));
  color: var(--pga-guide-text-muted);
}

.smr-analyzer__okay-choice {
  border-radius: var(--smr-radius-button);
  border-color: var(--smr-surface-border-strong);
  background: rgba(255, 255, 255, 0.04);
  color: var(--pga-guide-text-soft);
  font-size: 15px;
  min-height: 48px;
}

.smr-analyzer__okay-choice.is-selected,
.smr-analyzer__okay-choice[aria-pressed="true"],
.smr-analyzer__okay-choice[aria-checked="true"] {
  border-color: var(--pga-guide-accent);
  background: linear-gradient(180deg, rgba(255, 120, 0, 0.3), rgba(255, 120, 0, 0.14));
  color: #ffffff;
  box-shadow:
    inset 0 0 0 1px rgba(255, 177, 92, 0.34),
    0 0 0 1px rgba(255, 120, 0, 0.2),
    0 10px 24px rgba(255, 120, 0, 0.2);
}

.smr-analyzer .smr-analyzer__submit,
.smr-analyzer .smr-analyzer__freeze-btn {
  min-height: 52px;
  font-size: 16px;
  border-radius: var(--smr-radius-button);
}

.smr-analyzer .smr-analyzer__submit {
  background: var(--pga-guide-gradient) !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

.smr-analyzer__draw-dock-tab:not(.is-active) {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--smr-surface-border-strong);
  color: var(--pga-guide-text-soft);
}

.smr-analyzer__draw-dock-tab.is-active {
  border-color: var(--pga-guide-accent);
  background: rgba(255, 120, 0, 0.22);
  color: var(--pga-guide-text);
}

.smr-analyzer__draw-dock-panel {
  background: transparent;
}

.smr-analyzer.smr-analyzer--mobile .smr-analyzer__draw-fs-chrome-inner {
  border-radius: var(--smr-radius-card);
  border-color: var(--smr-surface-border-strong);
  background: rgba(0, 0, 0, 0.94);
}

.smr-score-card {
  margin-bottom: var(--smr-space-7);
  padding: var(--smr-space-6) var(--smr-space-5);
}

.smr-breakdown-card,
.smr-compare-card,
.smr-compare-pane {
  border-radius: var(--smr-radius-card);
}

.smr-breakdown-grid {
  gap: var(--smr-space-5);
}

.smr-portal-cta-card {
  border-radius: var(--smr-radius-card);
}

.smr-community-card {
  border-radius: var(--smr-radius-card);
}

.smr-community-card__body {
  font-size: max(15px, var(--smr-type-body));
  line-height: var(--smr-lh-body);
}

.smr-step-card,
.smr-action-card,
.smr-card--step {
  border-radius: var(--smr-radius-card);
}

.smr-step-card p,
.smr-action-card p,
.smr-card--step p {
  font-size: max(15.5px, var(--smr-type-body));
  line-height: 1.8;
}

.smr-practice-link-btn {
  min-height: 44px;
  border-radius: var(--smr-radius-button);
}

.smr-practice-instruction,
.smr-practice-summary {
  font-size: var(--smr-type-body);
  line-height: var(--smr-lh-body);
}

@media (max-width: 768px) {
  .smr-app-shell .smr-page {
    padding-inline: var(--smr-space-5);
  }

  .smr-score-card {
    padding: var(--smr-space-5);
  }

  .smr-diagnosis-corridor > .smr-section + .smr-section {
    margin-top: clamp(30px, 8vw, 40px);
  }

  .smr-analyzer__calibration-copy,
  .smr-analyzer__cal-flow-copy {
    font-size: 15px;
    line-height: 1.75;
  }
}

@media (min-width: 769px) {
  .smr-diagnosis-corridor > .smr-section + .smr-section {
    margin-top: clamp(36px, 3vw, 52px);
    padding-top: var(--smr-space-7);
  }

  .smr-breakdown-grid {
    gap: clamp(24px, 2.5vw, 36px);
  }

  .smr-score-card {
    padding: var(--smr-space-7) var(--smr-space-6);
  }
}

/* ==========================================================================
   UX workspace pass — full-screen analyzer + flow hierarchy
   ========================================================================== */

@supports not (height: 100dvh) {
  .smr-analyzer {
    --smr-analyzer-stage-max: calc(
      100vh - var(--smr-analyzer-header-h) - var(--smr-analyzer-controls-h) - 32px
    );
  }

  .smr-analyzer__panel {
    height: 100vh;
  }
}

.smr-analyzer--desktop-workspace:has(.smr-analyzer__desktop-footer:not([hidden])) {
  --smr-analyzer-stage-max: calc(
    100dvh - var(--smr-analyzer-header-h) - var(--smr-analyzer-controls-h) - var(--smr-analyzer-footer-h) - 32px
  );
}

.smr-analyzer__close {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.smr-practice-hub-grid,
.smr-practice-preview-chart {
  margin-top: clamp(36px, 5vw, 52px);
  margin-bottom: clamp(16px, 2.5vw, 24px);
  padding-top: clamp(16px, 2.5vw, 20px);
  border-top: 1px solid var(--smr-surface-border);
}

.smr-practice-set-actions {
  margin-top: clamp(18px, 2.5vw, 24px);
}

.smr-app-shell .smr-header {
  margin-bottom: clamp(32px, 4vw, 44px);
}

.smr-app-shell .smr-section + .smr-section {
  margin-top: clamp(32px, 5vw, 44px);
}

.smr-app-shell .smr-grid {
  gap: clamp(16px, 2.5vw, 24px);
}

.smr-app-shell .smr-action-card {
  border-top: 2px solid transparent;
}

.smr-app-shell .smr-banner-wrap + .smr-section,
.smr-app-shell .smr-header + .smr-banner-wrap {
  margin-top: 0;
}

/* Scrollable full-screen workspace — preserve locked drawing / zoom-pan exceptions */
.smr-analyzer.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill .smr-analyzer__body,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-zoom-pan .smr-analyzer__body {
  overflow-y: hidden;
}

/* Mobile draw/export tabs (not fullscreen stage): body scrolls so dock + OK-zone stay reachable */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__body,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__body {
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-bottom: max(120px, calc(env(safe-area-inset-bottom, 0px) + 88px));
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) [data-workspace],
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__grid,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__col-visual,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__video-section[data-video-section],
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) [data-workspace],
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__grid,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__col-visual,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__video-section[data-video-section] {
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-export:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__col-tools,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-fill.smr-analyzer--mobile-drawing:not(.smr-analyzer--mobile-draw-fullscreen) .smr-analyzer__col-tools {
  flex: 0 0 auto;
  max-height: none;
  overflow: visible;
}

.smr-practice-section {
  margin-bottom: clamp(34px, 5vw, 48px);
}

.smr-practice-section--hero {
  margin-bottom: clamp(28px, 4vw, 40px);
}

.smr-practice-section--hero .smr-practice-set-hero,
.smr-practice-section--hero .smr-practice-mastery-board {
  margin-bottom: 0;
}

.smr-practice-section--hero .smr-practice-banner {
  margin-bottom: clamp(16px, 2.5vw, 24px);
}

.smr-practice-section--hero .smr-practice-banner:last-child {
  margin-bottom: 0;
}

.smr-practice-section--task .smr-practice-set-actions:first-of-type {
  margin-top: clamp(20px, 3vw, 24px);
}

.smr-practice-section--history,
.smr-practice-section--trends {
  margin-top: clamp(36px, 5vw, 52px);
  padding-top: clamp(16px, 2.5vw, 20px);
  border-top: 1px solid var(--smr-surface-border);
}

.smr-analyzer--desktop-workspace:has(.smr-analyzer__desktop-footer:not([hidden])) {
  --smr-analyzer-stage-max: calc(
    100dvh - var(--smr-analyzer-header-h) - var(--smr-analyzer-controls-h) - var(--smr-analyzer-footer-h) - 48px
  );
}

/* Desktop analyzer 3-column workbench — workflow | stage | inspector */
@media (min-width: 769px) {
  .smr-analyzer--desktop-workbench .smr-analyzer__workspace,
  .smr-analyzer--desktop-workbench [data-workspace] {
    min-height: auto !important;
    height: auto !important;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    min-height: auto !important;
    height: auto !important;
  }

  .smr-analyzer--desktop-workbench [data-desktop-workflow-pane] {
    grid-area: workflow;
  }

  .smr-analyzer--desktop-workbench [data-desktop-stage-pane],
  .smr-analyzer--desktop-workbench .smr-analyzer__col-visual {
    grid-area: stage;
  }

  .smr-analyzer--desktop-workbench [data-desktop-inspector-pane],
  .smr-analyzer--desktop-workbench .smr-analyzer__col-tools {
    grid-area: inspector;
  }

  /* Narrow tablet: single column stack */
  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    grid-template-areas:
      "workflow"
      "stage"
      "inspector";
    grid-template-columns: minmax(0, 1fr);
    max-width: 560px;
    margin-inline: auto;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-locking [data-analyzer-freeze-row],
  .smr-analyzer--desktop-workbench.smr-analyzer--practice-rep.smr-analyzer--desktop-phase-locking [data-analyzer-freeze-row] {
    margin-top: 12px;
    margin-bottom: 16px;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-locking .smr-analyzer__freeze-btn,
  .smr-analyzer--desktop-workbench.smr-analyzer--practice-rep.smr-analyzer--desktop-phase-locking .smr-analyzer__freeze-btn {
    min-height: 52px;
    font-size: 17px;
    font-weight: 800;
  }

  .smr-analyzer--desktop-workbench .smr-analyzer__desktop-answer-summary {
    width: 100%;
    justify-content: center;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-edit-answer-collapsed
    [data-desktop-inspector-pane]
    .smr-analyzer__practice-card {
    display: none;
  }
}

@media (min-width: 900px) and (max-width: 1179px) {
  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    grid-template-columns: minmax(360px, 1fr) minmax(260px, 340px);
    grid-template-areas:
      "workflow workflow"
      "stage inspector";
    column-gap: clamp(16px, 2vw, 28px);
    row-gap: clamp(16px, 2vw, 24px);
    max-width: 960px;
    margin-inline: auto;
    align-items: start;
    justify-content: center;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload .smr-analyzer__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "workflow"
      "stage";
    max-width: 640px;
  }
}

@media (min-width: 1180px) {
  .smr-analyzer--desktop-workbench .smr-analyzer__grid {
    grid-template-columns:
      minmax(240px, 300px)
      minmax(420px, 560px)
      minmax(280px, 360px);
    grid-template-areas: "workflow stage inspector";
    column-gap: clamp(20px, 2.4vw, 36px);
    max-width: 1320px;
    margin-inline: auto;
    align-items: start;
    justify-content: center;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload .smr-analyzer__grid {
    grid-template-columns: minmax(240px, 300px) minmax(420px, 560px);
    grid-template-areas:
      "workflow stage"
      "workflow stage";
    max-width: 900px;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-upload [data-desktop-inspector-pane] {
    display: none;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--desktop-phase-calibration [data-desktop-inspector-pane] {
    display: grid;
  }

  .smr-analyzer--desktop-workbench.smr-analyzer--calibration-active.smr-analyzer--calibration-wizard [data-desktop-inspector-pane] {
    display: grid;
  }
}

.smr-practice-section--plan {
  margin-top: clamp(40px, 5vw, 56px);
}

/* Fixed address crosshair — child of stage, outside zoom-inner */
.smr-analyzer__address-crosshair {
  position: absolute;
  inset: 0;
  z-index: 40;
  pointer-events: none;
}

.smr-analyzer__address-crosshair[hidden] {
  display: none !important;
}

.smr-analyzer__address-crosshair-line {
  position: absolute;
  background: #ff7800;
  box-shadow: 0 0 14px rgba(255, 120, 0, 0.75);
  pointer-events: none;
}

.smr-analyzer__address-crosshair-line--v {
  left: 50%;
  top: 0;
  bottom: 0;
  width: 3px;
  transform: translateX(-50%);
}

.smr-analyzer__address-crosshair-line--h {
  top: 50%;
  left: 0;
  right: 0;
  height: 3px;
  transform: translateY(-50%);
}

.smr-analyzer__address-crosshair-dot {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #ff7800;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 18px rgba(255, 120, 0, 0.9);
  pointer-events: none;
}

/* Mobile address-align pre-lock mode — piggybacks mobile-draw-fullscreen */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__head,
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__row--top,
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__col-tools,
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__row--zoom,
  .smr-analyzer.smr-analyzer--mobile-address-align [data-analyzer-freeze-row],
  .smr-analyzer.smr-analyzer--mobile-address-align [data-cal-flow],
  .smr-analyzer.smr-analyzer--mobile-address-align [data-calibration-card],
  .smr-analyzer.smr-analyzer--mobile-address-align [data-toolbar],
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__draw-fs-chrome,
  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--address-align),
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__draw-dock-tool-float {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__stage {
    position: relative !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    background: #000 !important;
    overflow: hidden !important;
    touch-action: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__stage-scroll {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: none;
    overflow: auto !important;
    touch-action: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__draw-dock--address-align {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100004;
    display: grid;
    gap: 10px;
    padding: 10px 16px calc(16px + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.98) 0%,
      rgba(0, 0, 0, 0.92) 72%,
      rgba(0, 0, 0, 0) 100%
    );
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__draw-dock--address-align[hidden] {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__address-align-hint {
    margin: 0;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
    text-align: center;
    color: rgba(255, 255, 255, 0.84);
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    .smr-analyzer__draw-dock-transport {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    width: 100%;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    .smr-analyzer__seek-stack {
    margin: 0;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    .smr-analyzer__frame-step {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 22px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--smr-surface-border);
    background: rgba(0, 0, 0, 0.35);
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    .smr-analyzer__frame-nav.smr-button.smr-button-secondary {
    width: 48px;
    min-width: 48px;
    min-height: 44px;
    height: 44px;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    [data-seek] {
    width: 100%;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__address-align-lock {
    position: relative;
    z-index: 5;
    min-height: 58px;
    width: 100%;
    font-size: 20px;
    font-weight: 900;
    color: #111 !important;
    background: linear-gradient(135deg, #ff7800 0%, #ff9b33 52%, #ffb15c 100%) !important;
    border: 0 !important;
    box-shadow: 0 12px 28px rgba(255, 120, 0, 0.38);
    pointer-events: auto;
    touch-action: manipulation;
    -webkit-user-select: none;
    user-select: none;
  }
}


/* SMR v77: desktop assessment portrait lock should keep the baked canvas/stage footprint.
   JS sets these variables during flat lock; CSS must stop fit-content/max-width collapse. */
.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__col-visual {
  min-width: var(--smr-portrait-visual-width, 180px) !important;
  width: var(--smr-portrait-visual-width, auto) !important;
  max-width: var(--smr-portrait-visual-width, none) !important;
  flex: 0 0 var(--smr-portrait-visual-width, auto) !important;
}

.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__video-section[data-video-section],
.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__cal-visual-bundle {
  min-width: var(--smr-portrait-stage-width, 180px) !important;
  width: var(--smr-portrait-stage-width, auto) !important;
  max-width: var(--smr-portrait-stage-width, none) !important;
  flex: 0 0 auto !important;
}

.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__col-visual
  .smr-analyzer__stage {
  min-width: var(--smr-portrait-stage-width, 180px) !important;
  width: var(--smr-portrait-stage-width, auto) !important;
  max-width: var(--smr-portrait-stage-width, none) !important;
  min-height: var(--smr-portrait-stage-height, auto) !important;
  height: var(--smr-portrait-stage-height, auto) !important;
  max-height: var(--smr-portrait-stage-height, none) !important;
}


/* SMR v78: keep desktop locked portrait visual wrappers tall enough for baked canvas. */
.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__col-visual,
.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__video-section[data-video-section],
.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__cal-visual-bundle {
  min-height: var(--smr-portrait-stage-height, 315px) !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__col-visual
  .smr-analyzer__stage {
  min-height: min(var(--smr-portrait-stage-height, 315px), var(--smr-analyzer-stage-max, 315px)) !important;
  height: min(var(--smr-portrait-stage-height, 315px), var(--smr-analyzer-stage-max, 315px)) !important;
  max-height: min(var(--smr-portrait-stage-height, 315px), var(--smr-analyzer-stage-max, 315px)) !important;
  overflow: auto !important;
}


/* SMR v84: desktop locked portrait zoom wrappers must match baked canvas display size.
   This overrides late JS syncZoomLayout inline width/height like 103px/183px. */
.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__zoom-outer {
  width: var(--smr-portrait-stage-width, 180px) !important;
  height: var(--smr-portrait-stage-height, 315px) !important;
  min-width: var(--smr-portrait-stage-width, 180px) !important;
  min-height: var(--smr-portrait-stage-height, 315px) !important;
  max-width: var(--smr-portrait-stage-width, 180px) !important;
  max-height: var(--smr-portrait-stage-height, 315px) !important;
  overflow: visible !important;
}

.smr-analyzer:not(.smr-analyzer--mobile).smr-analyzer--assessment-stage-fill.smr-analyzer--desktop-portrait.smr-analyzer--frame-locked
  .smr-analyzer__zoom-inner {
  width: var(--smr-desktop-locked-raw-width, 518px) !important;
  height: var(--smr-desktop-locked-raw-height, 921px) !important;
  min-width: var(--smr-desktop-locked-raw-width, 518px) !important;
  min-height: var(--smr-desktop-locked-raw-height, 921px) !important;
  max-width: var(--smr-desktop-locked-raw-width, 518px) !important;
  max-height: var(--smr-desktop-locked-raw-height, 921px) !important;
  transform-origin: 0 0 !important;
  transform: none;
}

/* SMR v86: mobile practice lock should preserve card-like visual sizing.
   Assessment uses fullscreen fill; practice starts from a preview card, so don't stretch
   the locked drawing stage to viewport height after lock. */
.smr-analyzer.smr-analyzer--practice.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__body {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

.smr-analyzer.smr-analyzer--practice.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  [data-workspace],
.smr-analyzer.smr-analyzer--practice.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__grid,
.smr-analyzer.smr-analyzer--practice.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__col-visual,
.smr-analyzer.smr-analyzer--practice.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__video-section[data-video-section] {
  flex: 0 0 auto !important;
  min-height: 0 !important;
  height: auto !important;
  overflow: visible !important;
}

.smr-analyzer.smr-analyzer--practice.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__stage {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  align-self: stretch !important;
}

.smr-analyzer.smr-analyzer--practice.smr-analyzer--mobile.smr-analyzer--mobile-draw-fullscreen.smr-analyzer--mobile-fill.smr-analyzer--frame-locked
  .smr-analyzer__stage-scroll {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  flex: 0 0 auto !important;
  overflow: visible !important;
}

/* SMR mobile unlock cleanup: address-align controls must be visible above fullscreen video. */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile-address-align .smr-analyzer__draw-dock--address-align {
    z-index: 2147483500 !important;
    bottom: 0 !important;
    display: grid !important;
  }

  body [data-smr-v31-body-probe] {
    display: none !important;
  }
}

/* SMR mobile locked-draw UI polish: compact toolbar, no crop, cleaner dock spacing. */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-tool-float {
    right: max(10px, env(safe-area-inset-right, 0px)) !important;
    top: calc(env(safe-area-inset-top, 0px) + 130px) !important;
    width: 74px !important;
    max-width: 74px !important;
    min-width: 74px !important;
    max-height: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 260px) !important;
    overflow: hidden !important;
    border-radius: 10px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-tool-float
    .smr-analyzer__draw-dock-side-rail {
    width: 74px !important;
    max-width: 74px !important;
    min-width: 74px !important;
    padding: 5px !important;
    gap: 5px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__tools-card {
    padding: 4px !important;
    gap: 5px !important;
    border-radius: 8px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__tool,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__edit-btn {
    min-height: 52px !important;
    padding: 6px 5px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    border-radius: 7px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__tool-icon {
    width: 22px !important;
    height: 22px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock--assess-mobile {
    left: max(8px, env(safe-area-inset-left, 0px)) !important;
    right: max(8px, env(safe-area-inset-right, 0px)) !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 8px) !important;
    padding: 0 !important;
    border-radius: 8px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock--assess-mobile
    .smr-analyzer__draw-dock-tabs {
    gap: 6px !important;
    padding: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock--assess-mobile
    .smr-analyzer__draw-dock-tab {
    min-height: 54px !important;
    padding: 10px 12px !important;
    font-size: 18px !important;
    border-radius: 7px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome {
    left: max(8px, env(safe-area-inset-left, 0px)) !important;
    right: max(8px, env(safe-area-inset-right, 0px)) !important;
    top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome-inner {
    gap: 8px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome
    .smr-button {
    min-height: 50px !important;
    padding: 9px 10px !important;
    font-size: 16px !important;
    border-radius: 7px !important;
  }
}

/* SMR mobile locked-draw layout v3: controls live outside the video, not on top of it. */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame {
    --smr-locked-top-controls-h: 70px;
    --smr-locked-bottom-controls-h: 74px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__stage {
    padding-top: var(--smr-locked-top-controls-h) !important;
    padding-bottom: var(--smr-locked-bottom-controls-h) !important;
    box-sizing: border-box !important;
    background: #000 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome {
    left: max(10px, env(safe-area-inset-left, 0px)) !important;
    right: max(10px, env(safe-area-inset-right, 0px)) !important;
    top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
    z-index: 2147483500 !important;
    padding: 5px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.92) !important;
    box-shadow: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 54px !important;
    gap: 7px !important;
    align-items: stretch !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome
    .smr-button {
    min-height: 48px !important;
    height: 48px !important;
    padding: 8px 8px !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    border-radius: 8px !important;
    white-space: nowrap !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock--assess-mobile {
    left: max(10px, env(safe-area-inset-left, 0px)) !important;
    right: max(10px, env(safe-area-inset-right, 0px)) !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 8px) !important;
    z-index: 2147483490 !important;
    padding: 5px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.92) !important;
    box-shadow: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock--assess-mobile
    .smr-analyzer__draw-dock-tabs {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock--assess-mobile
    .smr-analyzer__draw-dock-tab {
    min-height: 50px !important;
    height: 50px !important;
    padding: 8px 12px !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    border-radius: 8px !important;
  }
}

/* SMR mobile locked-draw layout v4: preserve video framing; float controls without resizing stage. */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__stage {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome {
    top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
    left: max(12px, env(safe-area-inset-left, 0px)) !important;
    right: max(12px, env(safe-area-inset-right, 0px)) !important;
    padding: 5px !important;
    background: rgba(0, 0, 0, 0.78) !important;
    border-radius: 9px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome
    .smr-button {
    min-height: 46px !important;
    height: 46px !important;
    font-size: 15px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock--assess-mobile {
    bottom: calc(env(safe-area-inset-bottom, 0px) + 2px) !important;
    left: max(10px, env(safe-area-inset-left, 0px)) !important;
    right: max(10px, env(safe-area-inset-right, 0px)) !important;
    padding: 5px !important;
    background: rgba(0, 0, 0, 0.78) !important;
    border-radius: 10px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock--assess-mobile
    .smr-analyzer__draw-dock-tab {
    min-height: 48px !important;
    height: 48px !important;
    font-size: 17px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock[data-dock-tab="export"]
    .smr-analyzer__draw-dock-transport {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-panel--export
    [data-practice-okay-block] {
    gap: 10px;
    padding: 13px;
    border-color: rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.035);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-panel--export
    .smr-analyzer__practice-okay-title {
    color: #fff;
    font-size: 14px;
    font-weight: 750;
    line-height: 1.4;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-panel--export
    .smr-analyzer__practice-okay-btns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-panel--export
    .smr-analyzer__okay-choice {
    min-height: 50px;
    padding: 8px;
    font-size: 14px;
    border-color: rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.92);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-panel--export
    .smr-analyzer__actions {
    background: rgba(0, 0, 0, 0.72);
  }
}

/* SMR mobile locked-draw layout v5: tighten top chrome only, preserve golfer framing */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome {
    top: max(0px, env(safe-area-inset-top, 0px)) !important;
    left: max(8px, env(safe-area-inset-left, 0px)) !important;
    right: max(8px, env(safe-area-inset-right, 0px)) !important;
    padding: 3px !important;
    background: rgba(0, 0, 0, 0.82) !important;
    border-radius: 8px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome
    .smr-button {
    min-height: 44px !important;
    height: 44px !important;
  }
}

/* SMR mobile locked-draw layout v6: final top-arrow and tool rail placement polish. */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 48px !important;
    gap: 7px !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome
    .smr-analyzer__draw-dock-collapse-hit,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-fs-chrome
    [data-mobile-tool-toggle] {
    min-width: 48px !important;
    width: 48px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--phase-locked-frame
    .smr-analyzer__draw-dock-tool-float {
    right: max(2px, env(safe-area-inset-right, 0px)) !important;
    top: calc(env(safe-area-inset-top, 0px) + 118px) !important;
  }
}

/* SMR Auto Draw: keep guided workflow usable inside the mobile draw rail. */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__auto-draw-panel,
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__auto-draw-panel * {
    pointer-events: auto !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__auto-draw-panel {
    margin-top: 6px !important;
    width: 100% !important;
  }
}

/* SMR Auto Draw v2: bottom instruction overlay, not right tool-rail content. */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock {
    box-sizing: border-box !important;
    width: calc(100% - 16px) !important;
    margin: 0 8px 8px !important;
    padding: 10px 12px 11px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 145, 35, 0.42) !important;
    background: rgba(0, 0, 0, 0.86) !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.42) !important;
    gap: 7px !important;
    pointer-events: auto !important;
    z-index: 5 !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock[hidden] {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-head {
    gap: 8px !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__section-label {
    color: #ffffff !important;
    font-size: 12px !important;
    letter-spacing: 0.08em !important;
    margin: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-step {
    flex: 0 0 auto !important;
    font-size: 11px !important;
    padding: 3px 8px !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-copy {
    color: #ffffff !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-controls {
    gap: 6px !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-controls
    .smr-analyzer__edit-btn {
    min-height: 34px !important;
    padding: 6px 9px !important;
    font-size: 12px !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock-side-rail
    .smr-analyzer__auto-draw-panel {
    display: none !important;
  }
}

/* SMR Auto Draw v3: active mode uses right-side action rail + thin instruction banner. */
@media (max-width: 768px) {
  /* Turn the mobile Auto Draw panel into a thin instruction banner. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock {
    width: calc(100% - 18px) !important;
    margin: 0 9px 6px !important;
    padding: 8px 10px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    gap: 2px !important;
  }

  /* Hide the Auto Draw title; the step pill + instruction is enough. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__section-label {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-head {
    justify-content: flex-start !important;
    margin: 0 0 2px !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-step {
    font-size: 11px !important;
    padding: 3px 8px !important;
    border-radius: 999px !important;
    background: rgba(255, 145, 35, 0.26) !important;
    border-color: rgba(255, 145, 35, 0.55) !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-copy {
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.28 !important;
    margin: 0 !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.85) !important;
  }

  /* Hide normal drawing tools while Auto Draw is active. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock:has(.smr-analyzer__auto-draw-panel--mobile-dock:not([hidden]))
    ~ .smr-analyzer__draw-dock-tool-float
    .smr-analyzer__tool-row,
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock:has(.smr-analyzer__auto-draw-panel--mobile-dock:not([hidden]))
    ~ .smr-analyzer__draw-dock-tool-float
    .smr-analyzer__edit-row {
    display: none !important;
  }

  /* Move Auto Draw controls into the right-side rail while active. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-controls {
    position: fixed !important;
    right: max(7px, env(safe-area-inset-right, 0px)) !important;
    top: calc(env(safe-area-inset-top, 0px) + 374px) !important;
    width: 132px !important;
    z-index: 2147483001 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 8px !important;
    border: 1px solid rgba(255, 145, 35, 0.38) !important;
    border-radius: 14px !important;
    background: rgba(0, 0, 0, 0.78) !important;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5) !important;
    pointer-events: auto !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock[hidden]
    .smr-analyzer__auto-draw-controls {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-controls
    .smr-analyzer__edit-btn {
    width: 100% !important;
    min-height: 48px !important;
    padding: 8px 9px !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    border-radius: 9px !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-debug {
    display: none !important;
  }
}

/* SMR Auto Draw v4: minimal tap-instruction overlay.
   Keep the canvas usable; no big bottom panel and no right-side replacement rail. */
@media (max-width: 768px) {
  /* Undo the v3 toolbar hiding. Keep normal draw tools visible/usable. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock:has(.smr-analyzer__auto-draw-panel--mobile-dock:not([hidden]))
    ~ .smr-analyzer__draw-dock-tool-float
    .smr-analyzer__tool-row,
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock:has(.smr-analyzer__auto-draw-panel--mobile-dock:not([hidden]))
    ~ .smr-analyzer__draw-dock-tool-float
    .smr-analyzer__edit-row {
    display: flex !important;
  }

  /* Turn the Auto Draw panel into a non-blocking floating instruction layer. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock {
    position: fixed !important;
    left: 50% !important;
    top: 25vh !important;
    transform: translateX(-50%) !important;
    width: min(86vw, 390px) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    z-index: 2147482998 !important;
    pointer-events: none !important;
    display: block !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock[hidden] {
    display: none !important;
  }

  /* Hide all panel chrome/buttons/debug. Instruction only. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-head,
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-controls,
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-debug {
    display: none !important;
  }

  /* Plain white text, readable over video, but no box. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-copy {
    display: block !important;
    color: #ffffff !important;
    font-size: clamp(18px, 5vw, 25px) !important;
    font-weight: 950 !important;
    line-height: 1.28 !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 0 10px !important;
    text-shadow:
      0 2px 3px rgba(0, 0, 0, 0.95),
      0 0 12px rgba(0, 0, 0, 0.85),
      0 0 22px rgba(0, 0, 0, 0.7) !important;
    pointer-events: none !important;
  }
}

/* SMR Auto Draw v5: bottom instruction text + right rail action mode. */
@media (max-width: 768px) {
  /* Keep instruction text low on screen, around lower 25%, with no box. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock {
    position: fixed !important;
    left: 50% !important;
    top: auto !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 168px) !important;
    transform: translateX(-50%) !important;
    width: min(92vw, 430px) !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    z-index: 2147482998 !important;
    pointer-events: none !important;
    display: block !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock[hidden] {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-head,
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-debug {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-copy {
    display: block !important;
    color: #ffffff !important;
    font-size: clamp(18px, 5vw, 24px) !important;
    font-weight: 950 !important;
    line-height: 1.24 !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-shadow:
      0 2px 3px rgba(0, 0, 0, 0.95),
      0 0 12px rgba(0, 0, 0, 0.9),
      0 0 22px rgba(0, 0, 0, 0.72) !important;
    pointer-events: none !important;
  }

  /* Hide normal draw tools while Auto Draw is active. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--auto-draw-active
    .smr-analyzer__draw-dock-tool-float
    .smr-analyzer__tool-row,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--auto-draw-active
    .smr-analyzer__draw-dock-tool-float
    .smr-analyzer__edit-row {
    display: none !important;
  }

  /* Show Auto Draw controls as the replacement right rail. */
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__auto-draw-controls--mobile-rail {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--auto-draw-active
    .smr-analyzer__auto-draw-controls--mobile-rail {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 0 !important;
    pointer-events: auto !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--auto-draw-active
    .smr-analyzer__auto-draw-controls--mobile-rail
    .smr-analyzer__edit-btn {
    width: 100% !important;
    min-height: 56px !important;
    padding: 8px 7px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    text-align: center !important;
    white-space: normal !important;
  }
}

/* SMR Auto Draw v6: replace the normal right toolbar with Auto Draw actions. */
@media (max-width: 768px) {
  /* Hide the entire original right-side drawing toolbar while Auto Draw is active. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--auto-draw-active
    .smr-analyzer__draw-dock-side-rail
    > .smr-analyzer__tools-card {
    display: none !important;
  }

  /* Make the side rail shrink to the Auto Draw action buttons only. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--auto-draw-active
    .smr-analyzer__draw-dock-side-rail {
    gap: 0 !important;
  }

  /* Put the Auto Draw controls at the top of the same right rail position. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--auto-draw-active
    .smr-analyzer__auto-draw-controls--mobile-rail {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    pointer-events: auto !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--auto-draw-active
    .smr-analyzer__auto-draw-controls--mobile-rail
    .smr-analyzer__edit-btn {
    width: 100% !important;
    min-height: 58px !important;
    padding: 8px 7px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  /* Keep the normal toolbar visible when Auto Draw is not active. */
  .smr-analyzer.smr-analyzer--mobile:not(.smr-analyzer--auto-draw-active)
    .smr-analyzer__auto-draw-controls--mobile-rail {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--multi-position-flow
    .smr-analyzer__draw-dock-side-rail {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--multi-position-seek
    .smr-analyzer__auto-draw-controls--mobile-rail,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--multi-position-seek
    .smr-analyzer__auto-draw-progress {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--multi-position-confirm
    .smr-analyzer__auto-draw-panel--mobile-dock
    .smr-analyzer__auto-draw-confirm
    .smr-button {
    min-height: 48px;
    width: 100%;
  }

  /* Mobile setup-test workbench (動画でテスト): phase header + dark coach sheet. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__draw-dock-tabs,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__draw-dock-tool-float,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__draw-dock-panel--export,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__tools-card,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__draw-fs-tool-toggle,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__col-tools
    .smr-analyzer__actions,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    [data-cancel] {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__draw-fs-chrome,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__draw-dock:not(.smr-analyzer__draw-dock--address-align),
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__draw-dock-tool-float {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-import
    .smr-analyzer__mob-st-header,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-import
    .smr-analyzer__mob-st-sheet,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-import
    .smr-analyzer__draw-fs-chrome,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-import
    [data-address-align-dock],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-import
    .smr-analyzer__seek-stack,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-import
    [data-analyzer-freeze-row],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-import
    .smr-analyzer__col-tools {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-align
    .smr-analyzer__mob-st-sheet,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-seek
    .smr-analyzer__mob-st-sheet {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-header {
    position: fixed;
    z-index: 2147483488;
    top: calc(env(safe-area-inset-top, 0px) + 8px);
    left: max(12px, env(safe-area-inset-left, 0px));
    right: max(12px, env(safe-area-inset-right, 0px));
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.82);
    border: 1px solid var(--smr-surface-border-strong);
    color: #fff;
    pointer-events: none;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-kicker {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-title {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.35;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-progress {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    background: rgba(255, 120, 0, 0.22);
    color: #ffb15c;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-sheet {
    position: fixed;
    z-index: 2147483490;
    left: max(10px, env(safe-area-inset-left, 0px));
    right: max(10px, env(safe-area-inset-right, 0px));
    bottom: calc(env(safe-area-inset-bottom, 0px) + 8px);
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: min(52dvh, 440px);
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.92);
    border: 1px solid var(--smr-surface-border-strong);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-lead {
    margin: 0;
    font-size: 14px;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.78);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 0;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__auto-draw-panel--mob-st-sheet {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: #fff;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__auto-draw-panel--mob-st-sheet
    .smr-analyzer__section-label,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__auto-draw-panel--mob-st-sheet
    .smr-analyzer__auto-draw-step,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__auto-draw-panel--mob-st-sheet
    .smr-analyzer__auto-draw-copy,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__auto-draw-panel--mob-st-sheet
    .smr-analyzer__auto-draw-progress {
    color: rgba(255, 255, 255, 0.88);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__auto-draw-panel--mob-st-sheet
    .smr-analyzer__auto-draw-controls {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-footer
    .smr-button,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-footer
    .smr-analyzer__submit {
    width: 100%;
    min-height: 52px;
    font-size: 17px;
    font-weight: 800;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-footer {
    flex: 0 0 auto;
    padding-top: 2px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-footer
    [data-done-tap-catcher][hidden] {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-footer
    .smr-analyzer__auto-draw-confirm {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    width: 100%;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-footer
    .smr-analyzer__auto-draw-confirm .smr-button {
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-review {
    display: grid;
    gap: 10px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-review[hidden] {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-figure {
    min-width: 0;
    margin: 0;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-canvas {
    display: block;
    width: 100%;
    max-height: 180px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 8px;
    background: #050505;
    object-fit: contain;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-figure figcaption {
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.8);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.35;
    text-align: center;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-summary {
    margin: 0;
    padding: 8px 10px;
    border: 1px solid rgba(255, 120, 0, 0.42);
    border-radius: 8px;
    background: rgba(255, 120, 0, 0.1);
    color: #fff;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.45;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-actions .smr-button {
    min-height: 44px;
    padding: 8px;
    font-size: 12px;
    line-height: 1.3;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-import
    .smr-analyzer__row--top {
    display: flex !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-import
    [data-pick-video] {
    display: inline-flex !important;
    min-height: 48px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--multi-position-confirm
    .smr-analyzer__auto-draw-panel--mob-st-sheet
    .smr-analyzer__auto-draw-confirm
    .smr-button {
    min-height: 48px;
    width: 100%;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-test
    .smr-analyzer__stage,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-confirm
    .smr-analyzer__stage,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb.smr-analyzer--mob-st-review
    .smr-analyzer__stage {
    padding-bottom: min(52dvh, 440px);
  }
}

/* SMR Auto Draw v7: hide Auto Draw instruction/result text during output decision flow. */
@media (max-width: 768px) {
  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock:has(.smr-analyzer__draw-dock-panel--export:not([hidden]))
    .smr-analyzer__auto-draw-panel--mobile-dock {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile
    .smr-analyzer__draw-dock:has(.smr-analyzer__draw-dock-panel--export:not([hidden]))
    .smr-analyzer__auto-draw-controls--mobile-rail {
    display: none !important;
  }
}

/* Consumer position-pair workbench: one stable media viewport and one UI layer per phase. */
@media (max-width: 768px) {
  /* Mobile-browser themes can apply their own heading colors inside the
     fullscreen analyzer. Keep this override limited to the two-position
     browser flow; installed PWAs retain their existing presentation. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-title,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-lead {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-kicker {
    color: rgba(255, 255, 255, 0.72) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.72) !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--multi-position-flow
    .smr-analyzer__mob-st-undo-tap {
    align-self: center;
    min-height: 42px;
    padding: 8px 16px;
    border-color: rgba(255, 158, 51, 0.7);
    background: rgba(255, 120, 0, 0.16);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-undo-tap[hidden] {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    column-gap: 10px;
    align-items: center;
    top: calc(env(safe-area-inset-top, 0px) + 8px);
    left: max(10px, env(safe-area-inset-left, 0px));
    right: max(10px, env(safe-area-inset-right, 0px));
    min-height: 58px;
    padding: 8px 10px;
    border-radius: 14px;
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(7, 16, 27, 0.91);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-address-align
    .smr-analyzer__mob-st-header {
    right: max(64px, calc(env(safe-area-inset-right, 0px) + 64px));
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-kicker {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    font-size: 10px;
    line-height: 1.2;
    color: rgba(255, 255, 255, 0.58);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-title {
    grid-column: 1;
    grid-row: 2;
    overflow: hidden;
    margin: 1px 0 0;
    font-size: clamp(17px, 4.8vw, 20px);
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-progress {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
    padding: 5px 9px;
    font-size: 11px;
    line-height: 1;
    white-space: nowrap;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-progress[hidden] {
    display: none !important;
  }

  /* The old 52dvh stage padding was clipping the locked frame. Every capture
     state now uses the same full-height stage, so the golfer keeps the same
     size between tapping and scrubbing the next position. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb:not(.smr-analyzer--mob-st-review)
    .smr-analyzer__stage {
    position: fixed !important;
    top: calc(env(safe-area-inset-top, 0px) + 78px) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    background: #000 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb:not(.smr-analyzer--mob-st-review)
    .smr-analyzer__stage-scroll {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb:not(.smr-analyzer--mob-st-review)
    .smr-analyzer__zoom-outer {
    margin-right: auto !important;
    margin-left: auto !important;
  }

  /* Guided tapping is a single instruction, not a second analyzer panel. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-test
    .smr-analyzer__mob-st-sheet {
    bottom: calc(env(safe-area-inset-bottom, 0px) + 8px);
    max-height: none;
    padding: 11px 14px;
    border-radius: 14px;
    background: rgba(7, 10, 15, 0.92);
    overflow: visible;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-test
    .smr-analyzer__mob-st-body,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-test
    .smr-analyzer__mob-st-footer {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-test
    .smr-analyzer__mob-st-lead {
    color: #fff;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
  }

  /* Position confirmation is a compact action card over the unchanged frame. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-confirm
    .smr-analyzer__mob-st-sheet {
    bottom: calc(env(safe-area-inset-bottom, 0px) + 8px);
    max-height: none;
    padding: 12px;
    border-radius: 14px;
    overflow: visible;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-confirm
    .smr-analyzer__mob-st-body {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-confirm
    .smr-analyzer__mob-st-lead {
    color: rgba(255, 255, 255, 0.78);
    font-size: 13px;
    text-align: center;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-confirm
    .smr-analyzer__mob-st-footer
    .smr-analyzer__auto-draw-confirm {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-confirm
    .smr-analyzer__mob-st-footer
    .smr-button {
    min-height: 48px;
    padding-right: 6px;
    padding-left: 6px;
    font-size: clamp(12px, 3.2vw, 13px);
    line-height: 1.25;
  }

  /* Keep the next-position scrub deck compact; the stage remains the same
     size underneath, eliminating the visible golfer resize. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align {
    gap: 7px;
    padding: 8px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-address-align
    .smr-analyzer__address-align-hint {
    font-size: 12px;
    line-height: 1.3;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-address-align
    .smr-analyzer__draw-dock--address-align
    .smr-analyzer__frame-step {
    gap: 16px;
    padding: 4px 8px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-address-align
    .smr-analyzer__address-align-lock {
    min-height: 52px;
    font-size: 17px;
  }

  /* Review and rating are dedicated screens. The live canvas is removed from
     the stacking context instead of showing through behind the evidence. */
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__stage,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    [data-address-align-dock],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__row--zoom,
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__seek-stack {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-sheet {
    top: calc(env(safe-area-inset-top, 0px) + 78px);
    right: 0;
    bottom: 0;
    left: 0;
    max-height: none;
    padding: 14px 14px 0;
    border: 0;
    border-radius: 18px 18px 0 0;
    background: #070a0f;
    box-shadow: none;
    overflow: hidden;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-lead {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-body {
    flex: 1 1 auto;
    gap: 12px;
    min-height: 0;
    padding: 0 0 12px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-footer {
    position: relative;
    z-index: 2;
    margin: 0 -14px;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    background: #070a0f;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-pair-review {
    gap: 12px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-pair-grid {
    gap: 10px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-pair-figure {
    padding: 7px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.035);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-canvas-wrap {
    aspect-ratio: 3 / 4;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: #050505;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-setup-test-wb
    .smr-analyzer__mob-st-pair-canvas-wrap
    .smr-analyzer__mob-st-pair-canvas {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-pair-canvas {
    width: 100%;
    height: min(27dvh, 210px);
    max-height: none;
    border: 0;
    border-radius: 8px;
    object-fit: contain;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-pair-figure figcaption {
    margin-top: 7px;
    color: rgba(255, 255, 255, 0.76);
    font-size: 11px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-pair-summary {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
  }

  .smr-analyzer__mob-st-pair-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .smr-analyzer__mob-st-pair-metric {
    display: grid;
    gap: 2px;
    min-width: 0;
    padding: 8px 6px;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.055);
    text-align: center;
  }

  .smr-analyzer__mob-st-pair-metric small {
    color: rgba(255, 255, 255, 0.55);
    font-size: 10px;
    font-weight: 700;
  }

  .smr-analyzer__mob-st-pair-metric strong {
    color: #fff;
    font-size: 16px;
    line-height: 1.2;
  }

  .smr-analyzer__mob-st-pair-result-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }

  .smr-analyzer__mob-st-pair-range {
    color: rgba(255, 255, 255, 0.66);
    font-size: 11px;
    font-weight: 650;
  }

  .smr-analyzer__mob-st-pair-result {
    flex: 0 0 auto;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 11px;
    line-height: 1;
  }

  .smr-analyzer__mob-st-pair-result.is-pass {
    color: #a7f3d0;
    background: rgba(16, 185, 129, 0.18);
    border: 1px solid rgba(52, 211, 153, 0.36);
  }

  .smr-analyzer__mob-st-pair-result.is-outside {
    color: #fed7aa;
    background: rgba(249, 115, 22, 0.16);
    border: 1px solid rgba(251, 146, 60, 0.36);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-review
    .smr-analyzer__mob-st-pair-actions .smr-button {
    min-height: 42px;
    border-color: rgba(255, 255, 255, 0.18);
    background: transparent;
    color: rgba(255, 255, 255, 0.82);
    font-size: 12px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-rating
    [data-practice-okay-block] {
    gap: 10px;
    padding: 13px;
    border-color: rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.035);
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-rating
    [data-inline-okay-heading],
  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-rating
    .smr-analyzer__practice-okay-note {
    display: none !important;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-rating
    .smr-analyzer__practice-okay-title {
    color: #fff;
    font-size: 14px;
    font-weight: 750;
    line-height: 1.4;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-rating
    .smr-analyzer__practice-okay-btns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .smr-analyzer.smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mob-st-rating
    .smr-analyzer__okay-choice {
    min-height: 50px;
    padding: 8px;
    font-size: 14px;
  }
}

/* Premium video placeholder for mobile/PWA browsers that show black before first frame decode. */
.smr-video-frame {
  position: relative;
  contain: layout;
  background:
    radial-gradient(circle at 50% 38%, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0) 42%),
    linear-gradient(135deg, #111827 0%, #020617 100%);
}

.smr-video-fallback {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  background:
    radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0) 44%),
    linear-gradient(135deg, rgba(15, 23, 42, 0.92), rgba(2, 6, 23, 0.96));
  color: #fff;
  font: inherit;
  text-align: center;
  transition: opacity 160ms ease, visibility 160ms ease;
}

.smr-video-fallback[hidden],
.is-video-frame-ready .smr-video-fallback {
  display: none;
}

.smr-video-fallback__play {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
  font-size: 22px;
  line-height: 1;
  transform: translateX(2px);
}

.smr-video-fallback__text {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  opacity: 0.92;
}

@media (hover: hover) {
  .smr-video-fallback:hover .smr-video-fallback__play {
    background: rgba(255, 255, 255, 0.24);
  }
}

/* Mobile/PWA lock screen escape: keep the analyzer X visible during address-align pre-lock. */
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__head .smr-analyzer__title,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__head .smr-analyzer__head-main,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__head .smr-analyzer__coach-context,
.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__head [data-coach-context] {
  display: none !important;
  visibility: hidden !important;
  overflow: hidden !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__head {
  display: block !important;
  position: fixed !important;
  top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
  right: 8px !important;
  left: auto !important;
  width: 48px !important;
  height: 48px !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  z-index: 2147483647 !important;
  pointer-events: none !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__head .smr-analyzer__title {
  display: none !important;
}

.smr-analyzer.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__close {
  display: grid !important;
  position: fixed !important;
  top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
  right: 8px !important;
  width: 44px !important;
  height: 44px !important;
  place-items: center !important;
  border-radius: 999px !important;
  background: rgba(15, 23, 42, 0.72) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28) !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  -webkit-tap-highlight-color: transparent;
}

/* Coach mobile/PWA analyzer — Import + close only; no title/context copy */
@media (max-width: 768px) {
  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: calc(env(safe-area-inset-top, 0px) + 8px) 12px 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(8, 10, 14, 0.96);
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__title,
  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__coach-context,
  .smr-analyzer--coach-mode.smr-analyzer--mobile [data-coach-context] {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__coach-mobile-head-import {
    order: 1;
    flex: 0 0 auto;
    min-height: 40px;
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 700;
    border-radius: 1px;
    background: var(--pga-guide-gradient, linear-gradient(135deg, #ff7800 0%, #ff9b33 48%, #ffd27a 100%));
    color: #111;
    border: 0;
  }

  /* Consumer mobile checkpoint import (Assessment + Practice Rep — uses native shell close + row pick). */
  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--consumer-import-awaiting .smr-analyzer__head {
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: calc(env(safe-area-inset-top, 0px) + 8px) 12px 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(8, 10, 14, 0.96);
    pointer-events: auto !important;
  }

  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--consumer-import-awaiting .smr-analyzer__title {
    display: none !important;
  }

  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--consumer-import-awaiting .smr-analyzer__close {
    display: grid !important;
    place-items: center;
    width: 40px;
    height: 40px;
    margin-left: auto;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
  }

  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--consumer-import-awaiting .smr-analyzer__row--top {
    display: flex !important;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    pointer-events: auto !important;
  }

  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--consumer-import-awaiting .smr-analyzer__row--top [data-pick-video] {
    width: 100%;
    min-height: 44px;
    padding: 10px 16px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 1px;
    border: 0;
    background: var(--pga-guide-gradient, linear-gradient(135deg, #ff7800 0%, #ff9b33 48%, #ffd27a 100%));
    color: #111;
  }

  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--consumer-import-awaiting .smr-analyzer__row--top [data-video-name],
  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--consumer-import-awaiting [data-frame-help],
  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--consumer-import-awaiting .smr-analyzer__help--compact {
    display: none !important;
  }

  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-address-align .smr-analyzer__row--top,
  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--mobile-drawing .smr-analyzer__row--top,
  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--phase-locked-drawing .smr-analyzer__row--top,
  .smr-analyzer--mobile.smr-analyzer--consumer-checkpoint.smr-analyzer--phase-locked-frame .smr-analyzer__row--top {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__close {
    order: 2;
    margin-left: auto;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__row--top [data-pick-video],
  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__row--top [data-change-session-video] {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing) .smr-analyzer__head,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing).smr-analyzer--mobile-draw-fullscreen .smr-analyzer__head {
    display: flex !important;
    pointer-events: auto !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing).smr-analyzer--mobile-draw-fullscreen .smr-analyzer__close {
    pointer-events: auto !important;
  }

  /* Import awaiting: fixed exit owns top-right; stack import controls beneath it. */
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing) .smr-analyzer__close {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing) .smr-analyzer__head {
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: stretch;
    gap: 10px;
    padding: calc(env(safe-area-inset-top, 0px) + 8px) 12px 12px;
    padding-right: 60px;
    border-bottom: none;
    background: transparent;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing) .smr-analyzer__coach-mobile-head-import {
    order: 2;
    flex: 1 1 100%;
    width: 100%;
    margin-top: 4px;
    text-align: center;
    box-sizing: border-box;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing) .smr-analyzer__row--top {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin: 0 12px 12px;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing) .smr-analyzer__resume-freeform {
    width: 100%;
    box-sizing: border-box;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing) [data-frame-help],
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing) .smr-analyzer__help--compact {
    display: block !important;
    margin: 0 12px 12px;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing).smr-analyzer--mobile-draw-fullscreen .smr-analyzer__row--top {
    display: flex !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing).smr-analyzer--mobile-draw-fullscreen [data-frame-help],
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing).smr-analyzer--mobile-draw-fullscreen .smr-analyzer__help--compact {
    display: block !important;
  }

  /* Coach mobile draw: only intended draw chrome — hide import/head bleed even if import class stuck. */
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--phase-locked-frame .smr-analyzer__head,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-drawing .smr-analyzer__head,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--phase-freeform-drawing.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__head {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--phase-locked-frame .smr-analyzer__row--top,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-drawing .smr-analyzer__row--top,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--phase-freeform-drawing.smr-analyzer--mobile-draw-fullscreen .smr-analyzer__row--top,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--phase-locked-frame [data-video-name],
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-drawing [data-video-name],
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--phase-freeform-drawing.smr-analyzer--mobile-draw-fullscreen [data-video-name] {
    display: none !important;
  }

  body:has(.smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--phase-locked-frame) > .smr-analyzer__coach-mobile-exit[data-coach-mobile-exit],
  body:has(.smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-drawing) > .smr-analyzer__coach-mobile-exit[data-coach-mobile-exit],
  body:has(.smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--phase-freeform-drawing.smr-analyzer--mobile-draw-fullscreen) > .smr-analyzer__coach-mobile-exit[data-coach-mobile-exit] {
    display: none !important;
  }

  /* Coach freeform video hub (after Back to video): Import + resume below fixed X. */
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--freeform-mobile-hub .smr-analyzer__close {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--freeform-mobile-hub .smr-analyzer__head {
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: stretch;
    gap: 10px;
    padding: calc(env(safe-area-inset-top, 0px) + 8px) 12px 12px;
    padding-right: 60px;
    border-bottom: none;
    background: transparent;
    pointer-events: auto !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--freeform-mobile-hub .smr-analyzer__coach-mobile-head-import {
    order: 2;
    flex: 1 1 100%;
    width: 100%;
    margin-top: 4px;
    text-align: center;
    box-sizing: border-box;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--freeform-mobile-hub .smr-analyzer__row--top {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin: 0 12px 12px;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--freeform-mobile-hub .smr-analyzer__resume-freeform {
    width: 100%;
    box-sizing: border-box;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--freeform-mobile-hub [data-frame-help],
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--freeform-mobile-hub .smr-analyzer__help--compact {
    display: block !important;
    margin: 0 12px 12px;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile .smr-analyzer__coach-mobile-exit,
  body > .smr-analyzer__coach-mobile-exit[data-coach-mobile-exit] {
    position: fixed;
    top: calc(env(safe-area-inset-top, 0px) + 8px);
    right: 12px;
    z-index: 2147483647;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(8, 10, 14, 0.92);
    color: #fff;
    font-size: 24px;
    line-height: 1;
    display: grid;
    place-items: center;
    pointer-events: auto;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__coach-mobile-exit,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--practice-import-awaiting-video:not(.smr-analyzer--phase-locked-frame):not(.smr-analyzer--phase-locked-drawing):not(.smr-analyzer--phase-locked-export):not(.smr-analyzer--phase-freeform-drawing):not(.smr-analyzer--mobile-drawing) .smr-analyzer__coach-mobile-exit {
    display: grid !important;
  }

  body > .smr-analyzer__coach-mobile-exit[data-coach-mobile-exit][hidden] {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-heading,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-copy,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-eyebrow,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-step,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-flow-seek-hint,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-address-cta-hint,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--cal-flow-mobile .smr-analyzer__cal-screen[data-cal-screen='video'] .smr-analyzer__cal-flow-actions {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__address-align-hint,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__coach-context,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-address-align [data-coach-context],
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__head-main,
  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__title {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__head {
    display: flex !important;
    position: fixed !important;
    top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    z-index: 2147483647 !important;
    pointer-events: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__coach-mobile-head-import {
    display: none !important;
  }

  .smr-analyzer--coach-mode.smr-analyzer--mobile.smr-analyzer--mobile-address-align .smr-analyzer__close {
    pointer-events: auto !important;
    position: fixed !important;
    top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
    right: 8px !important;
    left: auto !important;
  }
}

.smr-community-notification-settings {
  margin: 16px 0 0;
  padding: 14px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 14px;
  background: rgba(248, 250, 252, 0.72);
}

.smr-community-notification-settings legend {
  padding: 0 6px;
  font-weight: 800;
  font-size: 13px;
}

.smr-community-notification-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.35;
}

.smr-community-notification-option input {
  margin-top: 2px;
}

/* Community profile notification settings - branded dark theme */
.smr-community-notification-settings {
  position: relative;
  margin: 22px 0 0;
  padding: 24px 24px 22px;
  border: 1px solid rgba(255, 145, 0, 0.42);
  border-radius: 18px;
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 145, 0, 0.12), transparent 34%),
    linear-gradient(180deg, rgba(24, 24, 24, 0.98), rgba(10, 10, 10, 0.98));
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.03) inset,
    0 18px 42px rgba(0, 0, 0, 0.36),
    0 0 26px rgba(255, 145, 0, 0.08);
}

.smr-community-notification-settings legend {
  float: none;
  width: auto;
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  color: #ff9800;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.smr-community-notification-settings legend::before {
  content: "🔔";
  display: inline-block;
  margin-right: 10px;
  font-size: 18px;
  transform: translateY(-1px);
}

.smr-community-notification-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 54px;
  margin: 10px 0 0;
  padding: 14px 48px 14px 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  background:
    linear-gradient(180deg, rgba(38, 38, 38, 0.92), rgba(22, 22, 22, 0.92));
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  font-weight: 750;
  line-height: 1.35;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.smr-community-notification-option:hover {
  border-color: rgba(255, 145, 0, 0.42);
  background:
    linear-gradient(180deg, rgba(44, 38, 28, 0.96), rgba(25, 23, 20, 0.96));
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.24);
  transform: translateY(-1px);
}

.smr-community-notification-option::after {
  content: "›";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-52%);
  color: #ff9800;
  font-size: 30px;
  font-weight: 300;
  line-height: 1;
  opacity: 0.9;
}

.smr-community-notification-option input {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  margin: 0;
  border: 2px solid rgba(255, 145, 0, 0.72);
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.34);
  box-shadow: 0 0 0 1px rgba(255, 145, 0, 0.08) inset;
  cursor: pointer;
  transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.smr-community-notification-option input:checked {
  border-color: #ff9800;
  background:
    linear-gradient(135deg, #ff9800, #ffb84d);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.16) inset,
    0 0 18px rgba(255, 145, 0, 0.24);
}

.smr-community-notification-option input:checked::after {
  content: "✓";
  display: block;
  color: #070707;
  font-size: 17px;
  font-weight: 950;
  line-height: 18px;
  text-align: center;
}

.smr-community-notification-option span {
  display: block;
  color: rgba(255, 255, 255, 0.93);
}

@media (max-width: 640px) {
  .smr-community-notification-settings {
    padding: 20px 16px 18px;
    border-radius: 16px;
  }

  .smr-community-notification-option {
    padding: 13px 38px 13px 14px;
    font-size: 14px;
  }

  .smr-community-notification-option::after {
    right: 14px;
  }
}

/* Community profile notification settings - app-native refinement */
.smr-community-notification-settings {
  margin: 22px 0 0;
  padding: 18px;
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-card);
  background: rgba(255, 255, 255, 0.045);
  box-shadow: none;
}

.smr-community-notification-settings legend {
  float: none;
  width: auto;
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  color: var(--pga-guide-text-soft);
  font-size: 13px;
  font-weight: 800;
  line-height: var(--smr-lh-control);
  letter-spacing: var(--smr-track-body);
}

.smr-community-notification-settings legend::before {
  content: none;
}

.smr-community-notification-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  margin: 0;
  padding: 12px 13px;
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-button);
  background: rgba(0, 0, 0, 0.28);
  color: var(--pga-guide-text);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  cursor: pointer;
  transition: border-color 140ms ease, background 140ms ease;
}

.smr-community-notification-option + .smr-community-notification-option {
  margin-top: 8px;
}

.smr-community-notification-option:hover {
  border-color: rgba(255, 120, 0, 0.5);
  background: rgba(255, 120, 0, 0.055);
  box-shadow: none;
  transform: none;
}

.smr-community-notification-option::after {
  content: none;
}

.smr-community-notification-option input {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 1px solid var(--pga-guide-border-strong);
  border-radius: var(--smr-radius-input);
  background: rgba(0, 0, 0, 0.45);
  cursor: pointer;
  box-shadow: none;
}

.smr-community-notification-option input:checked {
  border-color: var(--pga-guide-accent);
  background: var(--pga-guide-accent);
  box-shadow: none;
}

.smr-community-notification-option input:checked::after {
  content: "";
  display: block;
  width: 6px;
  height: 10px;
  margin: 2px auto 0;
  border: solid #000;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.smr-community-notification-option input:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 120, 0, 0.16);
}

.smr-community-notification-option span {
  display: block;
  color: var(--pga-guide-text-soft);
}

@media (max-width: 640px) {
  .smr-community-notification-settings {
    padding: 16px;
  }

  .smr-community-notification-option {
    align-items: flex-start;
    font-size: 14px;
  }

  .smr-community-notification-option input {
    margin-top: 2px;
  }
}

/* Practice Mode: Dispersion Tests */
.smr-practice-section--dispersion {
  margin-top: 18px;
}

.smr-dispersion-hub-card,
.smr-dispersion-dashboard,
.smr-dispersion-runner,
.smr-dispersion-start,
.smr-dispersion-panel,
.smr-dispersion-summary {
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-card);
  background: rgba(255, 255, 255, 0.045);
}

.smr-dispersion-hub-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 20px;
}

.smr-dispersion-hub-card h3,
.smr-dispersion-dashboard h3,
.smr-dispersion-runner h3,
.smr-dispersion-start h4,
.smr-dispersion-panel h4,
.smr-dispersion-summary h4 {
  margin: 0;
  color: var(--pga-guide-text);
  line-height: var(--smr-lh-heading);
}

.smr-dispersion-hub-card p,
.smr-dispersion-start p,
.smr-dispersion-mode-note,
.smr-dispersion-tap-hint,
.smr-dispersion-tap-subhint,
.smr-dispersion-empty {
  margin: 8px 0 0;
  color: var(--pga-guide-text-soft);
  line-height: 1.5;
}

.smr-dispersion-tap-subhint {
  margin-top: 4px;
  color: var(--pga-guide-text-muted);
  font-size: 13px;
}

.smr-dispersion-hub-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.smr-dispersion-hub-card__meta span,
.smr-dispersion-period,
.smr-dispersion-club small {
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-button);
  background: rgba(0, 0, 0, 0.22);
  color: var(--pga-guide-text-muted);
}

.smr-dispersion-hub-card__meta span {
  padding: 5px 9px;
  font-size: 13px;
  font-weight: 750;
}

.smr-dispersion-dashboard,
.smr-dispersion-runner {
  padding: 20px;
}

.smr-dispersion-dashboard__head,
.smr-dispersion-runner__hero,
.smr-dispersion-panel__head,
.smr-dispersion-start__row {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
}

.smr-dispersion-start {
  display: grid;
  gap: 16px;
  margin-top: 18px;
  padding: 18px;
}

.smr-dispersion-club-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.smr-dispersion-club {
  min-height: 74px;
  padding: 12px;
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-button);
  background: rgba(0, 0, 0, 0.28);
  color: var(--pga-guide-text);
  text-align: left;
  cursor: pointer;
}

.smr-dispersion-club span,
.smr-dispersion-club small {
  display: block;
}

.smr-dispersion-club span {
  font-size: 15px;
  font-weight: 850;
}

.smr-dispersion-club small {
  width: fit-content;
  margin-top: 8px;
  padding: 3px 7px;
  font-size: 11px;
}

.smr-dispersion-club.is-selected {
  border-color: rgba(71, 194, 167, 0.78);
  background: rgba(71, 194, 167, 0.12);
  box-shadow: 0 0 0 2px rgba(71, 194, 167, 0.12) inset;
}

.smr-dispersion-field {
  display: grid;
  gap: 6px;
  min-width: min(240px, 100%);
  color: var(--pga-guide-text-soft);
  font-size: 13px;
  font-weight: 800;
}

.smr-dispersion-field input {
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-input);
  background: rgba(0, 0, 0, 0.35);
  color: var(--pga-guide-text);
  font: inherit;
}

.smr-dispersion-dashboard__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.smr-dispersion-panel {
  padding: 16px;
}

.smr-dispersion-panel--trends {
  margin-top: 16px;
}

.smr-dispersion-periods {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.smr-dispersion-period {
  padding: 8px 11px;
  font-weight: 800;
  cursor: pointer;
}

.smr-dispersion-period.is-selected {
  border-color: rgba(71, 194, 167, 0.75);
  color: var(--pga-guide-text);
  background: rgba(71, 194, 167, 0.14);
}

.smr-dispersion-test-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, auto);
  gap: 12px;
  width: 100%;
  margin-top: 10px;
  padding: 13px;
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-button);
  background: rgba(0, 0, 0, 0.25);
  color: var(--pga-guide-text);
  text-align: left;
  cursor: pointer;
}

.smr-dispersion-test-row strong,
.smr-dispersion-test-row small {
  display: block;
}

.smr-dispersion-test-row small {
  margin-top: 4px;
  color: var(--pga-guide-text-muted);
  font-size: 12px;
}

.smr-dispersion-runner__hero {
  padding: 18px;
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-card);
  background: rgba(0, 0, 0, 0.24);
}

.smr-dispersion-runner__hero p {
  margin: 8px 0 0;
  color: var(--pga-guide-text-soft);
}

.smr-dispersion-runner__hero > strong {
  min-width: 76px;
  padding: 10px 12px;
  border-radius: var(--smr-radius-button);
  background: rgba(71, 194, 167, 0.14);
  color: #8ef0d2;
  font-size: 24px;
  text-align: center;
}

.smr-dispersion-input-panel {
  margin-top: 16px;
}

.smr-dispersion-radar-wrap {
  max-width: 560px;
  margin: 0 auto;
}

.smr-dispersion-radar {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1;
  min-height: 280px;
  padding: 0;
  border: 1px solid rgba(71, 194, 167, 0.45);
  border-radius: 50%;
  background:
    linear-gradient(90deg, transparent calc(50% - 1px), rgba(255, 255, 255, 0.18) 50%, transparent calc(50% + 1px)),
    linear-gradient(180deg, transparent calc(50% - 1px), rgba(255, 255, 255, 0.18) 50%, transparent calc(50% + 1px)),
    rgba(6, 18, 18, 0.88);
  color: var(--pga-guide-text);
  font: inherit;
  overflow: hidden;
  cursor: crosshair;
}

.smr-dispersion-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  border: 1px solid rgba(142, 240, 210, 0.42);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.smr-dispersion-ring--1 { width: 25%; height: 25%; }
.smr-dispersion-ring--2 { width: 50%; height: 50%; }
.smr-dispersion-ring--3 { width: 75%; height: 75%; }
.smr-dispersion-ring--4 { width: 100%; height: 100%; }

.smr-dispersion-ring-label {
  position: absolute;
  z-index: 2;
  padding: 2px 6px;
  border: 1px solid rgba(142, 240, 210, 0.22);
  border-radius: 999px;
  background: rgba(5, 18, 18, 0.82);
  color: rgba(213, 255, 244, 0.82);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
  white-space: nowrap;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.smr-dispersion-ring-label--1 { left: 62%; top: 35%; }
.smr-dispersion-ring-label--2 { left: 70%; top: 28%; }
.smr-dispersion-ring-label--3 { left: 77%; top: 21%; }
.smr-dispersion-ring-label--4 { left: 83%; top: 15%; }

.smr-dispersion-axis {
  position: absolute;
  z-index: 2;
  color: rgba(255, 255, 255, 0.76);
  font-size: 12px;
  font-weight: 850;
  pointer-events: none;
}

.smr-dispersion-axis--top { top: 12px; left: 50%; transform: translateX(-50%); }
.smr-dispersion-axis--bottom { bottom: 12px; left: 50%; transform: translateX(-50%); }
.smr-dispersion-axis--left { left: 12px; top: 50%; transform: translateY(-50%); }
.smr-dispersion-axis--right { right: 12px; top: 50%; transform: translateY(-50%); }

.smr-dispersion-target-marker {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(142, 240, 210, 0.88);
  border-radius: 50%;
  background:
    radial-gradient(circle, #d8fff3 0 3px, transparent 4px),
    radial-gradient(circle, rgba(142, 240, 210, 0.18) 0 52%, transparent 54%);
  box-shadow: 0 0 0 4px rgba(71, 194, 167, 0.08), 0 0 18px rgba(142, 240, 210, 0.24);
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.smr-dispersion-target-marker::before,
.smr-dispersion-target-marker::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: rgba(213, 255, 244, 0.78);
  transform: translate(-50%, -50%);
}

.smr-dispersion-target-marker::before {
  width: 18px;
  height: 1px;
}

.smr-dispersion-target-marker::after {
  width: 1px;
  height: 18px;
}

.smr-dispersion-marker,
.smr-dispersion-line-marker {
  position: absolute;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 2px solid #071313;
  border-radius: 50%;
  background: #8ef0d2;
  color: #071313;
  font-size: 12px;
  font-weight: 950;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.smr-dispersion-line {
  position: relative;
  display: block;
  width: 100%;
  min-height: 320px;
  margin-top: 8px;
  padding: 0;
  border: 1px solid rgba(71, 194, 167, 0.45);
  border-radius: var(--smr-radius-card);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.055), transparent 38%, rgba(0, 0, 0, 0.18)),
    rgba(6, 18, 18, 0.9);
  color: var(--pga-guide-text);
  font: inherit;
  overflow: hidden;
  cursor: crosshair;
}

.smr-dispersion-line::before {
  content: "";
  position: absolute;
  left: 6%;
  right: 6%;
  top: 43%;
  height: 30%;
  border-top: 1px solid rgba(142, 240, 210, 0.18);
  border-bottom: 1px solid rgba(142, 240, 210, 0.13);
  background: linear-gradient(180deg, rgba(142, 240, 210, 0.04), rgba(255, 255, 255, 0.02));
  pointer-events: none;
}

.smr-dispersion-line-zone {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  display: grid;
  align-content: start;
  gap: 3px;
  padding-top: 54px;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.55);
  text-align: center;
  pointer-events: none;
}

.smr-dispersion-line-zone strong,
.smr-dispersion-line-zone small {
  display: block;
  min-width: 0;
  padding: 0 4px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.smr-dispersion-line-zone strong {
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.smr-dispersion-line-zone small {
  color: rgba(255, 255, 255, 0.4);
  font-size: 9px;
  font-weight: 800;
}

.smr-dispersion-line-zone--big-left {
  left: 0;
  width: 12%;
  background: rgba(188, 78, 70, 0.18);
}

.smr-dispersion-line-zone--left {
  left: 12%;
  width: 18%;
  background: rgba(222, 160, 76, 0.13);
}

.smr-dispersion-line-zone--slight-left {
  left: 30%;
  width: 16%;
  background: rgba(142, 240, 210, 0.07);
}

.smr-dispersion-line-zone--center {
  left: 46%;
  width: 8%;
  background: rgba(71, 194, 167, 0.18);
}

.smr-dispersion-line-zone--center strong,
.smr-dispersion-line-zone--center small {
  display: none;
}

.smr-dispersion-line-zone--slight-right {
  left: 54%;
  width: 16%;
  background: rgba(142, 240, 210, 0.07);
}

.smr-dispersion-line-zone--right {
  left: 70%;
  width: 18%;
  background: rgba(222, 160, 76, 0.13);
}

.smr-dispersion-line-zone--big-right {
  left: 88%;
  width: 12%;
  border-right: 0;
  background: rgba(188, 78, 70, 0.18);
}

.smr-dispersion-line-label {
  position: absolute;
  top: 16px;
  z-index: 3;
  color: rgba(255, 255, 255, 0.82);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
  pointer-events: none;
}

.smr-dispersion-line-label--left { left: 18px; }
.smr-dispersion-line-label--right { right: 18px; }

.smr-dispersion-line-center {
  position: absolute;
  left: 50%;
  top: 18px;
  bottom: 45px;
  z-index: 3;
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(213, 255, 244, 0.9) 16%, rgba(213, 255, 244, 0.9) 84%, transparent);
  box-shadow: 0 0 16px rgba(142, 240, 210, 0.22);
  transform: translateX(-50%);
  pointer-events: none;
}

.smr-dispersion-line-center em {
  position: absolute;
  left: 50%;
  top: 8px;
  padding: 3px 7px;
  border: 1px solid rgba(142, 240, 210, 0.24);
  border-radius: 999px;
  background: rgba(5, 18, 18, 0.86);
  color: rgba(213, 255, 244, 0.86);
  font-size: 10px;
  font-style: normal;
  font-weight: 850;
  line-height: 1.2;
  white-space: nowrap;
  transform: translateX(-50%);
}

.smr-dispersion-line-shot-band {
  position: absolute;
  left: 8%;
  right: 8%;
  top: 42%;
  z-index: 2;
  height: 24%;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.16);
  pointer-events: none;
}

.smr-dispersion-line-scale-label {
  position: absolute;
  bottom: 15px;
  z-index: 3;
  color: rgba(255, 255, 255, 0.76);
  font-size: 11px;
  font-weight: 850;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  transform: translateX(-50%);
  pointer-events: none;
}

.smr-dispersion-line-scale-label i {
  display: block;
  width: 1px;
  height: 24px;
  margin: 0 auto 6px;
  background: rgba(142, 240, 210, 0.32);
}

.smr-dispersion-line-scale-label em {
  display: block;
  font-style: normal;
}

.smr-dispersion-line-marker {
  z-index: 5;
}

.smr-dispersion-shot-log {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.smr-dispersion-shot-log li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-button);
  background: rgba(0, 0, 0, 0.22);
}

.smr-dispersion-shot-log li > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(71, 194, 167, 0.16);
  color: #8ef0d2;
  font-weight: 950;
}

.smr-dispersion-shot-log strong,
.smr-dispersion-shot-log small {
  display: block;
  min-width: 0;
}

.smr-dispersion-shot-log small {
  margin-top: 3px;
  color: var(--pga-guide-text-muted);
  font-size: 12px;
}

.smr-dispersion-summary {
  margin-top: 16px;
  padding: 16px;
}

.smr-dispersion-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.smr-dispersion-summary-grid article {
  min-height: 118px;
  padding: 13px;
  border: 1px solid var(--pga-guide-border);
  border-radius: var(--smr-radius-button);
  background: rgba(0, 0, 0, 0.24);
}

.smr-dispersion-summary-grid span,
.smr-dispersion-summary-grid small {
  display: block;
  color: var(--pga-guide-text-muted);
}

.smr-dispersion-summary-grid span {
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}

.smr-dispersion-summary-grid strong {
  display: block;
  margin: 8px 0;
  color: var(--pga-guide-text);
  font-size: 20px;
  line-height: 1.15;
}

@media (max-width: 820px) {
  .smr-dispersion-hub-card,
  .smr-dispersion-dashboard__grid,
  .smr-dispersion-summary-grid {
    grid-template-columns: 1fr;
  }

  .smr-dispersion-dashboard__head,
  .smr-dispersion-runner__hero,
  .smr-dispersion-panel__head,
  .smr-dispersion-start__row {
    align-items: stretch;
    flex-direction: column;
  }

  .smr-dispersion-club-grid,
  .smr-dispersion-shot-log {
    grid-template-columns: 1fr;
  }

  .smr-dispersion-test-row {
    grid-template-columns: 1fr;
  }

  .smr-dispersion-radar {
    min-height: 260px;
  }

  .smr-dispersion-line {
    min-height: 260px;
  }
}

@media (max-width: 520px) {
  .smr-dispersion-ring-label {
    padding: 2px 5px;
    font-size: 10px;
  }

  .smr-dispersion-ring-label--4 {
    left: 81%;
    top: 16%;
  }

  .smr-dispersion-axis {
    font-size: 11px;
  }

  .smr-dispersion-target-marker {
    width: 24px;
    height: 24px;
  }

  .smr-dispersion-line-zone {
    padding-top: 0;
  }

  .smr-dispersion-line-zone strong,
  .smr-dispersion-line-zone small {
    display: none;
  }

  .smr-dispersion-line-label {
    top: 14px;
    font-size: 11px;
  }

  .smr-dispersion-line-label--left { left: 14px; }
  .smr-dispersion-line-label--right { right: 14px; }

  .smr-dispersion-line-center {
    top: 18px;
    bottom: 42px;
  }

  .smr-dispersion-line-center em {
    top: 28px;
    font-size: 9px;
  }

  .smr-dispersion-line-scale-label {
    bottom: 12px;
    font-size: 10px;
  }

  .smr-dispersion-line-scale-label i {
    height: 18px;
    margin-bottom: 5px;
  }

  .smr-dispersion-marker,
  .smr-dispersion-line-marker {
    width: 22px;
    height: 22px;
    font-size: 11px;
  }
}
