.custom-scrollbar::-webkit-scrollbar { height: 10px; width: 10px; }
.custom-scrollbar::-webkit-scrollbar-track { background: #f8fafc; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
.custom-scrollbar::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

.hide-number-spinners::-webkit-outer-spin-button, 
.hide-number-spinners::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.hide-number-spinners { -moz-appearance: textfield; }

input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
input[type="color"]::-webkit-color-swatch { border: none; border-radius: 4px; }

@keyframes expandDown {
  from { opacity: 0; transform: translate(-50%, -10px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}
.animate-expand-down { animation: expandDown 0.2s ease-out forwards; }

@keyframes dropDown {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-drop-down { animation: dropDown 0.2s ease-out forwards; }

body { user-select: none; -webkit-user-select: none; }
input, textarea, select { user-select: text; -webkit-user-select: text; }

input[type="date"] { position: relative; text-align: center; }
input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  width: auto; height: auto; color: transparent; background: transparent;
  cursor: pointer; opacity: 0; z-index: 10;
}
input[type="date"]::-webkit-datetime-edit-fields-wrapper { display: flex; justify-content: center; width: 100%; }
input[type="date"]::-webkit-clear-button { display: none; }

.touch-none { touch-action: none; }

.task-row {
  contain: layout paint;
  isolation: isolate;
}
.task-row-left,
.task-row-right {
  will-change: auto;
  transition: none !important;
}
.task-row:hover .task-row-left,
.task-row:hover .task-row-right {
  background-color: #f8fafc;
}
.task-row-drag-handle {
  transition: none !important;
}
