:root { color-scheme: dark; }
* { -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; background: #0A0E14; }
body { font-family: 'Vazirmatn', sans-serif; }
.font-mono { font-family: 'JetBrains Mono', monospace; direction: ltr; unicode-bidi: plaintext; }

/* Skeleton shimmer */
.sk {
  background: linear-gradient(90deg, #121821 0%, #1a2230 50%, #121821 100%);
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite;
  border: 1px solid #1E2733;
  border-radius: 6px;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Scrollbars */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #0D1117; }
::-webkit-scrollbar-thumb { background: #1E2733; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #2a3644; }

/* Range slider */
input[type=range] { height: 4px; background: #1E2733; border-radius: 4px; }

/* Remove number input spinners */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; }

select { background-image: none; }

/* Price flash micro-animation */
@keyframes flashUp { 0% { color: #10B981; } 100% {} }
@keyframes flashDown { 0% { color: #EF4444; } 100% {} }

table td, table th { white-space: nowrap; }

/* Smooth page transitions */
main > div { animation: fadeIn 0.25s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }