* { box-sizing: border-box; }
body { margin: 0; font-family: 'Vazirmatn', sans-serif; }

@keyframes fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.animate-fade { animation: fade 0.4s ease-out; }

@keyframes toast { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } }
.animate-toast { animation: toast 0.3s ease-out; }

/* smooth theme transition */
body, .transition-theme { transition: background-color 0.3s ease, color 0.3s ease; }

/* scrollbar */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #94a3b8; border-radius: 4px; }
.dark ::-webkit-scrollbar-thumb { background: #475569; }
::-webkit-scrollbar-thumb:hover { background: #FF4D2E; }

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

/* range input styling */
input[type="range"] { height: 6px; border-radius: 3px; cursor: pointer; }

/* RTL number inputs stay LTR-safe */
input, textarea, select { font-family: 'Vazirmatn', sans-serif; }
button { cursor: pointer; }