 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 body {
     font-family: 'Plus Jakarta Sans', 'Inter', sans-serif;
 }

 ::-webkit-scrollbar {
     width: 6px;
     height: 6px;
 }

 ::-webkit-scrollbar-track {
     background: transparent;
 }

 ::-webkit-scrollbar-thumb {
     background: #cbd5e1;
     border-radius: 3px;
 }

 .dark ::-webkit-scrollbar-thumb {
     background: #475569;
 }

 ::-webkit-scrollbar-thumb:hover {
     background: #94a3b8;
 }

 .sidebar-link {
     transition: all 0.2s ease;
     position: relative;
 }

 .sidebar-link::before {
     content: '';
     position: absolute;
     left: 0;
     top: 50%;
     transform: translateY(-50%);
     width: 3px;
     height: 0;
     background: linear-gradient(135deg, #3b8bff, #1e6af5);
     border-radius: 0 4px 4px 0;
     transition: height 0.2s ease;
 }

 .sidebar-link:hover::before,
 .sidebar-link.active::before {
     height: 60%;
 }

 .sidebar-link.active {
     background: linear-gradient(135deg, rgba(59, 139, 255, 0.1), rgba(30, 106, 245, 0.05));
     color: #3b8bff;
 }

 .dark .sidebar-link.active {
     background: linear-gradient(135deg, rgba(59, 139, 255, 0.15), rgba(30, 106, 245, 0.08));
 }

 .notification-badge {
     position: absolute;
     top: -4px;
     right: -4px;
     width: 18px;
     height: 18px;
     background: linear-gradient(135deg, #ef4444, #dc2626);
     border-radius: 50%;
     font-size: 10px;
     display: flex;
     align-items: center;
     justify-content: center;
     color: white;
     font-weight: 700;
     border: 2px solid white;
 }

 .dark .notification-badge {
     border-color: #1e293b;
 }

 .status-dot {
     width: 8px;
     height: 8px;
     border-radius: 50%;
 }

 .status-online {
     background: #22c55e;
     box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.2);
 }

 .status-away {
     background: #f59e0b;
     box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2);
 }

 .status-offline {
     background: #94a3b8;
 }

 .progress-bar {
     height: 6px;
     border-radius: 3px;
     overflow: hidden;
     background: #e2e8f0;
 }

 .dark .progress-bar {
     background: #334155;
 }

 .progress-fill {
     height: 100%;
     border-radius: 3px;
     transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
 }

 .modal-overlay {
     position: fixed;
     inset: 0;
     background: rgba(0, 0, 0, 0.5);
     backdrop-filter: blur(4px);
     z-index: 100;
     display: none;
     align-items: center;
     justify-content: center;
     padding: 1rem;
 }

 .modal-overlay.active {
     display: flex;
 }

 .toast-container {
     position: fixed;
     top: 1rem;
     right: 1rem;
     z-index: 200;
     display: flex;
     flex-direction: column;
     gap: 0.5rem;
 }

 .sidebar-section-title {
     font-size: 0.65rem;
     font-weight: 700;
     letter-spacing: 0.1em;
     text-transform: uppercase;
     padding: 0.75rem 1.25rem 0.35rem;
 }

 @keyframes fadeInUp {
     from {
         opacity: 0;
         transform: translateY(20px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 @keyframes slideInRight {
     from {
         opacity: 0;
         transform: translateX(20px);
     }

     to {
         opacity: 1;
         transform: translateX(0);
     }
 }

 @keyframes slideDown {
     from {
         opacity: 0;
         transform: translateY(-10px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 @keyframes scaleIn {
     from {
         opacity: 0;
         transform: scale(0.95);
     }

     to {
         opacity: 1;
         transform: scale(1);
     }
 }

 .animate-fade-in-up {
     animation: fadeInUp 0.5s ease forwards;
 }

 .animate-slide-in-right {
     animation: slideInRight 0.4s ease forwards;
 }

 .animate-slide-down {
     animation: slideDown 0.3s ease forwards;
 }

 .animate-scale-in {
     animation: scaleIn 0.2s ease forwards;
 }

 .dropdown-menu {
     display: none;
 }

 .dropdown-menu.active {
     display: block;
 }

 @media (max-width: 1024px) {
     .sidebar-desktop {
         transform: translateX(-100%);
         position: fixed;
         z-index: 50;
     }

     .sidebar-desktop.open {
         transform: translateX(0);
     }
 }

 /* Calendar-specific styles */
 .calendar-day {
     aspect-ratio: 1 / 1;
     min-height: 90px;
     padding: 8px;
     border-radius: 10px;
     border: 1px solid transparent;
     transition: all 0.2s ease;
     cursor: pointer;
     display: flex;
     flex-direction: column;
     gap: 4px;
     background: transparent;
     position: relative;
     overflow: hidden;
 }

 @media (max-width: 640px) {
     .calendar-day {
         min-height: 62px;
         padding: 4px;
     }
 }

 .calendar-day:hover {
     background: rgba(59, 139, 255, 0.05);
     border-color: rgba(59, 139, 255, 0.2);
 }

 .dark .calendar-day:hover {
     background: rgba(59, 139, 255, 0.1);
 }

 .calendar-day.other-month {
     opacity: 0.35;
 }

 .calendar-day.today {
     background: linear-gradient(135deg, rgba(59, 139, 255, 0.1), rgba(30, 106, 245, 0.05));
     border-color: rgba(59, 139, 255, 0.3);
 }

 .dark .calendar-day.today {
     background: linear-gradient(135deg, rgba(59, 139, 255, 0.15), rgba(30, 106, 245, 0.08));
 }

 .calendar-day.today .day-number {
     width: 26px;
     height: 26px;
     border-radius: 50%;
     background: linear-gradient(135deg, #3b8bff, #1e6af5);
     color: white;
     display: flex;
     align-items: center;
     justify-content: center;
     font-weight: 800;
     box-shadow: 0 4px 12px rgba(59, 139, 255, 0.4);
 }

 .calendar-day.selected {
     background: rgba(59, 139, 255, 0.15);
     border-color: #3b8bff;
 }

 .day-number {
     font-size: 12px;
     font-weight: 700;
     color: #64748b;
 }

 .dark .day-number {
     color: #94a3b8;
 }

 .calendar-day.today .day-number {
     color: white;
 }

 .event-chip {
     font-size: 9px;
     font-weight: 700;
     padding: 2px 5px;
     border-radius: 4px;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
     line-height: 1.3;
 }

 @media (max-width: 640px) {
     .event-chip {
         font-size: 0;
         padding: 3px;
         border-radius: 3px;
     }
 }

 .event-blue {
     background: rgba(59, 139, 255, 0.15);
     color: #1e6af5;
     border-left: 2px solid #3b8bff;
 }

 .dark .event-blue {
     background: rgba(59, 139, 255, 0.2);
     color: #59afff;
 }

 .event-green {
     background: rgba(34, 197, 94, 0.15);
     color: #15803d;
     border-left: 2px solid #22c55e;
 }

 .dark .event-green {
     background: rgba(34, 197, 94, 0.2);
     color: #4ade80;
 }

 .event-purple {
     background: rgba(139, 92, 246, 0.15);
     color: #6d28d9;
     border-left: 2px solid #8b5cf6;
 }

 .dark .event-purple {
     background: rgba(139, 92, 246, 0.2);
     color: #a78bfa;
 }

 .event-amber {
     background: rgba(245, 158, 11, 0.15);
     color: #b45309;
     border-left: 2px solid #f59e0b;
 }

 .dark .event-amber {
     background: rgba(245, 158, 11, 0.2);
     color: #fbbf24;
 }

 .event-red {
     background: rgba(239, 68, 68, 0.15);
     color: #b91c1c;
     border-left: 2px solid #ef4444;
 }

 .dark .event-red {
     background: rgba(239, 68, 68, 0.2);
     color: #f87171;
 }

 .weekday-header {
     font-size: 11px;
     font-weight: 700;
     text-transform: uppercase;
     letter-spacing: 0.05em;
     padding: 10px 8px;
     text-align: center;
     color: #64748b;
     border-bottom: 1px solid #e2e8f0;
 }

 .dark .weekday-header {
     color: #94a3b8;
     border-bottom-color: #334155;
 }

 .view-btn {
     transition: all 0.2s ease;
 }

 .view-btn.active {
     background: linear-gradient(135deg, #3b8bff, #1e6af5);
     color: white;
     box-shadow: 0 4px 12px rgba(59, 139, 255, 0.25);
 }

 .mini-day {
     width: 28px;
     height: 28px;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 11px;
     font-weight: 600;
     cursor: pointer;
     transition: all 0.15s ease;
 }

 .mini-day:hover {
     background: rgba(59, 139, 255, 0.1);
 }

 .mini-day.today {
     background: linear-gradient(135deg, #3b8bff, #1e6af5);
     color: white;
     box-shadow: 0 2px 6px rgba(59, 139, 255, 0.4);
 }

 .mini-day.has-event {
     position: relative;
 }

 .mini-day.has-event::after {
     content: '';
     position: absolute;
     bottom: 2px;
     left: 50%;
     transform: translateX(-50%);
     width: 4px;
     height: 4px;
     border-radius: 50%;
     background: #3b8bff;
 }

 .mini-day.today.has-event::after {
     background: white;
 }

 .mini-day.other {
     color: #cbd5e1;
 }

 .dark .mini-day.other {
     color: #475569;
 }

 input[type="search"]::-webkit-search-cancel-button {
     display: none;
 }