/* Schultracker Beta - Global Styles */

body {
  font-family: 'Inter', sans-serif;
}

.mono-time {
  font-variant-numeric: tabular-nums;
}

.gradient-dashboard {
  background: linear-gradient(135deg, var(--color-primary, #4f46e5) 0%, var(--color-secondary, #7c3aed) 100%);
}

/* Card hover animation - only transition on state change, not on hover trigger */
.card-hover {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), 
              box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.card-hover:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.15);
}

/* Prevent animation re-triggering on child elements */
.card-hover * {
  pointer-events: auto;
}

/* Calendar day cells */
.day-cell {
  transition: border-color 0.15s linear, background-color 0.15s ease;
  cursor: pointer;
  user-select: none;
}

.day-cell:hover {
  border-color: rgb(99, 102, 241);
}

/* Prevent nested element hover from re-triggering parent animations */
.day-cell * {
  pointer-events: none;
}

/* Button simple animations */
.btn-simple {
  transition: background-color 0.15s linear, 
              color 0.15s linear,
              box-shadow 0.15s ease;
  cursor: pointer;
}

.btn-simple:hover {
  background-color: var(--hover-color, rgba(100, 100, 100, 0.1));
}

.btn-simple:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

/* Progress ring animation */
.progress-ring {
  transition: stroke-dashoffset 0.5s ease;
}

/* Prevent animation jank on rapid state changes */
@media (prefers-reduced-motion: reduce) {
  .card-hover,
  .day-cell,
  .btn-simple,
  .progress-ring {
    transition: none;
  }
}

/* Input focus states - don't animate on hover */
input:focus,
textarea:focus {
  outline: none;
}

/* Smooth color transitions for themes */
:root {
  --color-primary: #4f46e5;
  --color-secondary: #7c3aed;
  --color-accent: #06b6d4;
  transition: background-color 0.3s ease, color 0.3s ease;
}

html.dark {
  color-scheme: dark;
}
