/* DigitalCRM Custom Styles */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Inter', system-ui, -apple-system, sans-serif; }

/* Scrollbar styling */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #94a3b8; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #64748b; }

/* Card hover effects */
.card-hover { transition: all 0.2s ease; }
.card-hover:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0,0,0,0.08); }

/* Gradient backgrounds */
.gradient-primary { background: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%); }
.gradient-success { background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%); }
.gradient-danger { background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); }
.gradient-warning { background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); }

/* Table styles */
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.data-table th { font-weight: 600; text-transform: uppercase; font-size: 0.7rem; letter-spacing: 0.05em; }
.data-table td { vertical-align: middle; }

/* Status badges */
.badge { display: inline-flex; align-items: center; padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 500; }

/* Sidebar transition */
#sidebar { transition: transform 0.3s ease-in-out; }

/* FullCalendar customizations */
.fc { font-size: 0.9rem; }
.fc-toolbar-title { font-size: 1.2rem !important; font-weight: 600; }
.fc-button-primary { background-color: #3b82f6 !important; border-color: #3b82f6 !important; }
.fc-button-primary:hover { background-color: #2563eb !important; }
.fc-day-today { background-color: #eff6ff !important; }
.fc-event { cursor: pointer; border-radius: 6px !important; padding: 2px 4px !important; }

/* Modal backdrop */
.modal-backdrop { background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); }

/* Drag & drop upload zone */
.upload-zone { border: 2px dashed #d1d5db; border-radius: 0.75rem; padding: 2rem; text-align: center; transition: all 0.2s; cursor: pointer; }
.upload-zone:hover { border-color: #3b82f6; background-color: #eff6ff; }
.upload-zone.dragover { border-color: #3b82f6; background-color: #dbeafe; }

/* Notification badge */
.notification-dot { position: absolute; top: -2px; right: -2px; width: 8px; height: 8px; background-color: #ef4444; border-radius: 50%; }

/* Loading spinner */
.spinner { border: 3px solid #f3f3f3; border-top: 3px solid #3b82f6; border-radius: 50%; width: 24px; height: 24px; animation: spin 0.8s linear infinite; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Print styles */
@media print {
    #sidebar, header, footer, .no-print { display: none !important; }
    body { background: white !important; }
    .main-content { margin-left: 0 !important; }
}

/* Responsive sidebar overlay */
@media (max-width: 1023px) {
    #sidebar { position: fixed; z-index: 40; }
    #sidebar.open { transform: translateX(0); }
}

/* Alert animations */
.alert-enter { animation: slideDown 0.3s ease-out; }
@keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

/* Focus styles */
input:focus, select:focus, textarea:focus { outline: none; ring: 2px solid #3b82f6; border-color: #3b82f6; }

/* Custom checkbox */
input[type="checkbox"] { border-radius: 0.25rem; border: 1px solid #d1d5db; }
input[type="checkbox"]:checked { background-color: #3b82f6; border-color: #3b82f6; }
