/* Catering Management System - Custom Styles */

/* Loading states */
.loading {
  opacity: 0.6;
  pointer-events: none;
}

.spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  border-top-color: #fff;
  animation: spin 1s ease-in-out infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Status badges */
.status-badge {
  @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
}

.status-new { @apply bg-blue-100 text-blue-800; }
.status-contacted { @apply bg-yellow-100 text-yellow-800; }
.status-qualified { @apply bg-orange-100 text-orange-800; }
.status-proposal { @apply bg-purple-100 text-purple-800; }
.status-booked { @apply bg-green-100 text-green-800; }
.status-confirmed { @apply bg-green-100 text-green-800; }
.status-completed { @apply bg-gray-100 text-gray-800; }
.status-cancelled { @apply bg-red-100 text-red-800; }

/* Dashboard stats cards */
.stats-card {
  @apply bg-white overflow-hidden shadow rounded-lg;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.stats-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

/* Form styles */
.form-group {
  @apply mb-4;
}

.form-label {
  @apply block text-sm font-medium text-gray-700 mb-1;
}

.form-input {
  @apply mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500;
}

.form-select {
  @apply mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500;
}

.form-textarea {
  @apply mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500;
}

/* Button styles */
.btn {
  @apply inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2;
}

.btn-primary {
  @apply text-white bg-blue-600 hover:bg-blue-700 focus:ring-blue-500;
}

.btn-secondary {
  @apply text-gray-700 bg-white hover:bg-gray-50 border-gray-300 focus:ring-blue-500;
}

.btn-success {
  @apply text-white bg-green-600 hover:bg-green-700 focus:ring-green-500;
}

.btn-danger {
  @apply text-white bg-red-600 hover:bg-red-700 focus:ring-red-500;
}

/* Table styles */
.table {
  @apply min-w-full divide-y divide-gray-200;
}

.table th {
  @apply px-6 py-3 bg-gray-50 text-left text-xs font-medium text-gray-500 uppercase tracking-wider;
}

.table td {
  @apply px-6 py-4 whitespace-nowrap text-sm text-gray-900;
}

.table tr:nth-child(even) {
  @apply bg-gray-50;
}

/* Modal styles */
.modal-overlay {
  @apply fixed inset-0 bg-gray-600 bg-opacity-50 overflow-y-auto h-full w-full z-50;
}

.modal-container {
  @apply relative top-20 mx-auto p-5 border w-96 shadow-lg rounded-md bg-white;
}

/* Notification styles */
.notification {
  @apply fixed top-4 right-4 max-w-sm w-full bg-white shadow-lg rounded-lg pointer-events-auto z-50;
}

.notification.success {
  @apply border-l-4 border-green-400;
}

.notification.error {
  @apply border-l-4 border-red-400;
}

.notification.warning {
  @apply border-l-4 border-yellow-400;
}

.notification.info {
  @apply border-l-4 border-blue-400;
}

/* Responsive design */
@media (max-width: 768px) {
  .sidebar {
    @apply transform -translate-x-full;
  }
  
  .sidebar.open {
    @apply transform translate-x-0;
  }
  
  .main-content {
    @apply ml-0;
  }
}

/* Print styles */
@media print {
  .no-print {
    display: none;
  }
  
  .print-break {
    page-break-before: always;
  }
}