/* One visual language for existing click hints. Paint inside the target so
   rounded cards, sheets and scroll containers cannot crop an outside halo.
   Do not raise targets above dialogs or change their hit area/geometry. */
html body #pc-phone-stage :is(.quest-focus, .tutorial-focus, .onboarding-focus, .watch-surface-tour-focus, .optional-goal-ready):not(:disabled):not([aria-disabled="true"]) {
  outline: 3px solid #ffca28 !important;
  /* Flush with the border-box: no original button colour outside the ring. */
  outline-offset: -3px !important;
  border-color: #ffca28 !important;
  box-shadow: inset 0 0 0 2px #ffca28 !important;
  scroll-margin-block: 16px;
  filter: none !important;
}

html body #pc-phone-stage :is(.quest-focus, .tutorial-focus, .onboarding-focus, .watch-surface-tour-focus, .optional-goal-ready):not(.daytrade-target) {
  animation: none !important;
}

/* The sell sheet resets its buttons to static !important. The shimmer must
   remain anchored to the button, not to the full-screen backdrop. */
html body #pc-phone-stage :is(button, [role="button"]):is(.quest-focus, .tutorial-focus, .onboarding-focus, .watch-surface-tour-focus, .optional-goal-ready):not(.daytrade-target) { position: relative !important; }

/* Some NEW badges own ::after. Use ::before only on those NEW targets;
   price labels and the free-cash/boost badges retain their existing slots. */
html body #pc-phone-stage :is(button, [role="button"]):is(.quest-focus, .tutorial-focus, .onboarding-focus, .watch-surface-tour-focus, .optional-goal-ready):not(:disabled):not([aria-disabled="true"]):is(:not([data-feature-new="true"]), #free-cash-btn, #boost-btn)::after,
html body #pc-phone-stage :is(button, [role="button"])[data-feature-new="true"]:not(#free-cash-btn):not(#boost-btn):is(.quest-focus, .tutorial-focus, .onboarding-focus, .watch-surface-tour-focus, .optional-goal-ready):not(:disabled):not([aria-disabled="true"])::before {
  content: "";
  position: absolute;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  box-sizing: border-box;
  border: 2px solid #fff5b0 !important;
  border-radius: inherit !important;
  background: transparent !important;
  box-shadow: inset 0 0 5px rgb(255 202 40 / 55%);
  pointer-events: none;
  transform: none !important;
  opacity: .35;
  animation: click-guide-shimmer 1.8s ease-in-out infinite !important;
}

@keyframes click-guide-shimmer {
  0%, 100% { opacity: .18; }
  50% { opacity: .85; }
}

/* The tour's target scroll margin intentionally leaves room for its coach. */
html body #pc-phone-stage .watch-surface-tour-focus { scroll-margin-block: 92px 180px; }

@media (prefers-reduced-motion: reduce) {
  html body #pc-phone-stage :is(button, [role="button"]):is(.quest-focus, .tutorial-focus, .onboarding-focus, .watch-surface-tour-focus, .optional-goal-ready):not(:disabled):not([aria-disabled="true"]):is(:not([data-feature-new="true"]), #free-cash-btn, #boost-btn)::after,
  html body #pc-phone-stage :is(button, [role="button"])[data-feature-new="true"]:not(#free-cash-btn):not(#boost-btn):is(.quest-focus, .tutorial-focus, .onboarding-focus, .watch-surface-tour-focus, .optional-goal-ready):not(:disabled):not([aria-disabled="true"])::before {
    animation: none !important;
    opacity: .5 !important;
  }
}

html body #pc-phone-stage :is(.quest-focus, .tutorial-focus, .onboarding-focus, .watch-surface-tour-focus, .optional-goal-ready):is(:disabled, [aria-disabled="true"]) {
  outline: none !important;
  box-shadow: none !important;
  animation: none !important;
}
