/* =====================================================================
   polish.css — premium polish for the standalone (non-shell) surfaces:
   auth / error / commerce / drill-down pages that don't load shell.css.
   GLOBAL but layout-safe: only focus rings + interactive transitions
   (color/background/border/shadow/transform — never layout properties),
   and a reduced-motion guard. No new markup, no logic.
   ===================================================================== */
:root { --qs-focus: #D4AF37; --qs-ease-out: cubic-bezier(.22, .61, .36, 1); }

/* Unified gold focus-visible ring (outline doesn't affect layout → CLS-safe) */
:focus-visible {
  outline: 2px solid var(--qs-focus);
  outline-offset: 2px;
  border-radius: 6px;
}

/* Smooth, consistent ease-out on interactive elements */
a, button, input, select, textarea,
[role="button"], .btn, .button {
  transition: background-color var(--qs-ease-out) 160ms,
              border-color var(--qs-ease-out) 160ms,
              color var(--qs-ease-out) 160ms,
              box-shadow var(--qs-ease-out) 160ms,
              transform 60ms var(--qs-ease-out);
}

/* Tabular numerics wherever a page opts in */
.qs-num, [data-qs-num] { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; }

/* Kill grey tap flash (inert on non-touch) */
html { -webkit-tap-highlight-color: transparent; }

/* ---- Mobile: iOS-zoom-safe inputs + comfortable touch targets ----
   Gated behind max-width:900 so desktop rendering is unchanged. */
@media (max-width: 900px) {
  input, select, textarea { font-size: 16px; }        /* >=16px prevents iOS focus-zoom */
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  select, textarea { min-height: 44px; }
  button, [role="button"], .btn, .button, a.btn, input[type="submit"], input[type="button"] {
    min-height: 44px;
  }
}

/* Touch press feedback (desktop-inert via hover:none) */
@media (hover: none) {
  button:active, [role="button"]:active, .btn:active, .button:active,
  a.btn:active, input[type="submit"]:active { transform: scale(.98); }
}

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