body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  background: #0b0b0f;
  color: #fff;
  -webkit-tap-highlight-color: transparent;
}

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.modal-enter {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.modal-enter.active {
  opacity: 1;
  pointer-events: auto;
}
.modal-sheet {
  transform: translateY(100%);
  transition: transform 0.35s cubic-bezier(0.32,0.72,0,1);
}
.modal-enter.active .modal-sheet {
  transform: translateY(0);
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator {
  filter: invert(1);
  opacity: 0.4;
  cursor: pointer;
}

.press:active {
  transform: scale(0.97);
  transition: transform 0.08s;
}

@keyframes scan {
  0% { top: 0%; opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}
.scan-line {
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #10b981, transparent);
  animation: scan 2.5s linear infinite;
  box-shadow: 0 0 12px rgba(16,185,129,0.6);
}

@keyframes ping-ring {
  0% { transform: scale(0.8); opacity: 0.5; }
  100% { transform: scale(2); opacity: 0; }
}
.pulse-ring::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid #10b981;
  animation: ping-ring 2s cubic-bezier(0,0,0.2,1) infinite;
}

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