/* ============================================
   Lo de Juan — Shared Styles
   ============================================ */

html { scroll-behavior: smooth; }

body {
  font-family: 'Manrope', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Calendar Grid */
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.12); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.2); }

/* Toast */
.toast {
  position: fixed; bottom: 2rem; left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: #34322c; color: white;
  padding: 1rem 2rem; border-radius: 1rem;
  font-size: 0.875rem; font-weight: 600;
  z-index: 9999; transition: transform 0.3s ease;
  box-shadow: 0 12px 30px rgba(0,0,0,0.15);
}
.toast.show { transform: translateX(-50%) translateY(0); }
.toast.success { background: #5b9669; }
.toast.error { background: #b8524d; }

/* Modal */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 5000; display: flex;
  align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s ease;
}
.modal-overlay.active { opacity: 1; pointer-events: all; }
.modal-content {
  background: #fff; border-radius: 1.5rem;
  padding: 2rem; max-width: 520px; width: 90%;
  max-height: 90vh; overflow-y: auto;
  transform: scale(0.95); transition: transform 0.3s ease;
}
.modal-overlay.active .modal-content { transform: scale(1); }
