/* Korean Mall — Premium Finish v1
 * Visual/accessibility-only layer. No API, game, wallet, settlement, or database logic.
 * Loaded last from index.html so these small shared UI refinements are predictable.
 */
:root {
  --km-premium-primary: #008f7a;
  --km-premium-primary-dark: #006b5b;
  --km-premium-gold: #d5a63b;
  --km-premium-ink: #1d2939;
  --km-premium-muted: #667085;
  --km-premium-border: #e5eaf0;
  --km-premium-surface: #ffffff;
  --km-premium-canvas: #f5f8f8;
  --km-premium-radius: 14px;
  --km-premium-shadow: 0 8px 24px rgba(16, 36, 32, .075);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, select, textarea { font: inherit; }
button, [role="button"], a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--km-premium-primary) !important; outline-offset: 3px; }

/* Common Vue/Vant controls used across the app. */
.van-button {
  border-radius: 12px;
  font-weight: 700;
  transition: box-shadow .16s ease, filter .16s ease, transform .16s ease;
}
.van-button--primary,
.van-button--success {
  background: linear-gradient(135deg, #00a58e, var(--km-premium-primary-dark));
  border-color: var(--km-premium-primary);
  box-shadow: 0 5px 13px rgba(0, 143, 122, .14);
}
.van-button--primary:active,
.van-button--success:active { filter: brightness(.96); transform: translateY(1px); }
.van-cell { color: var(--km-premium-ink); }
.van-cell::after { border-color: var(--km-premium-border); }
.van-field__control { min-width: 0; }
.van-nav-bar { color: var(--km-premium-ink); }
.van-nav-bar__title { font-weight: 800; }
.van-tabs__line { background: var(--km-premium-primary); border-radius: 999px; }
.van-tabbar { border-top: 1px solid rgba(16, 36, 32, .07); box-shadow: 0 -4px 18px rgba(16, 36, 32, .045); }
.van-tabbar-item--active { color: var(--km-premium-primary); }
.van-popup { box-shadow: 0 18px 54px rgba(16, 36, 32, .18); }
.van-dialog { overflow: hidden; border-radius: 18px; box-shadow: 0 18px 54px rgba(16, 36, 32, .2); }
.van-dialog__confirm,
.van-dialog__confirm:active { color: var(--km-premium-primary); }

/* Keep small-screen rendering smooth and respect the user's motion preference. */
@media (max-width: 480px) {
  .van-dialog { max-width: calc(100vw - 36px); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
