:root { color-scheme: light dark; }
* { scroll-behavior: smooth; }
body { -webkit-tap-highlight-color: transparent; }

.card-surface {
  background: #fff;
  border: 1px solid #eef2f7;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.dark .card-surface {
  background: #1e293b;
  border-color: #334155;
}

.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.toast-in { animation: toastIn .3s cubic-bezier(.16,1,.3,1); }
@keyframes toastIn {
  from { opacity: 0; transform: translateY(20px) scale(.95); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.fade-up { animation: fadeUp .6s ease both; }
.fade-up:nth-child(3) { animation-delay: .1s; }
.fade-up:nth-child(4) { animation-delay: .2s; }
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

/* RTL-friendly range slider */
input[type=range] { direction: ltr; }

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
.dark ::-webkit-scrollbar-thumb { background: #475569; }

img { user-select: none; }
button { transition: all .15s ease; }
a { text-decoration: none; }