html { scroll-behavior: smooth; }

.fade-in { animation: fadeIn 0.25s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.toast {
  animation: toastIn 0.2s ease;
  box-shadow: 0 10px 25px -5px rgba(0,0,0,0.15);
}
@keyframes toastIn { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: none; } }

/* кастомный скролл для логов */
.log-scroll::-webkit-scrollbar { width: 8px; }
.log-scroll::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }

.modal-backdrop { backdrop-filter: blur(2px); }

/* переключатель */
.switch { position: relative; display: inline-block; width: 44px; height: 24px; }
.switch input { opacity: 0; width: 0; height: 0; }
.slider { position: absolute; cursor: pointer; inset: 0; background: #cbd5e1; transition: .2s; border-radius: 24px; }
.slider:before { content: ""; position: absolute; height: 18px; width: 18px; left: 3px; bottom: 3px; background: white; transition: .2s; border-radius: 50%; }
input:checked + .slider { background: #2348f0; }
input:checked + .slider:before { transform: translateX(20px); }
