@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  --primary: #10b981;
  --primary-hover: #059669;
  --primary-light: #ecfdf5;
  --primary-dark: #064e3b;
  --wed-thu-accent: #6366f1;
  --wed-thu-bg: #eef2ff;
  --bg-dark: #0f172a;
  --card-dark: #1e293b;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

body {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
  touch-action: manipulation;
}

/* Glassmorphism effects */
.glass-panel {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.dark .glass-panel {
  background: rgba(30, 41, 59, 0.85);
}

/* Calendar Day Cell Transition */
.day-cell {
  transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (hover: hover) {
  .day-cell:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px -4px rgba(0, 0, 0, 0.08);
  }

  .dark .day-cell:hover {
    box-shadow: 0 8px 20px -4px rgba(0, 0, 0, 0.35);
  }
}

.day-cell:active {
  transform: scale(0.985);
}

/* Custom Scrollbars */
::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
.dark ::-webkit-scrollbar-thumb {
  background: #475569;
}

/* Micro animations */
@keyframes checkmarkPop {
  0% { transform: scale(0.75); opacity: 0; }
  60% { transform: scale(1.15); }
  100% { transform: scale(1); opacity: 1; }
}

.check-pop {
  animation: checkmarkPop 0.22s ease-out forwards;
}

/* Lock screen shake animation on wrong password */
@keyframes shakeError {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-8px); }
  40%, 80% { transform: translateX(8px); }
}

.shake-error {
  animation: shakeError 0.4s ease-in-out;
}

/* PIN Numpad Button */
.pin-btn {
  transition: all 0.12s ease;
  user-select: none;
}
.pin-btn:active {
  transform: scale(0.92);
  background-color: rgba(99, 102, 241, 0.2);
}

/* Modal Bottom-Sheet for Mobile */
@media (max-width: 640px) {
  .mobile-bottom-sheet {
    align-items: flex-end !important;
    padding: 0 !important;
  }
  .mobile-sheet-content {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    max-height: 88vh !important;
    width: 100% !important;
  }
}

/* Print styles */
@media print {
  .no-print {
    display: none !important;
  }
  body {
    background: white !important;
    color: black !important;
  }
  .day-cell {
    border: 1px solid #ccc !important;
    break-inside: avoid;
  }
}
