body {
    font-family: 'Inter', sans-serif;
    -webkit-tap-highlight-color: transparent;
}

/* Custom Scrollbar */
::-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; }

/* Grid Setup */
.schedule-grid {
    display: grid;
    /* Mobile Default */
    grid-template-columns: 50px 1fr;
    grid-template-rows: 50px repeat(48, 80px); 
}

@media (min-width: 768px) {
    .schedule-grid {
        /* Desktop */
        grid-template-columns: 80px repeat(7, minmax(130px, 1fr));
        grid-template-rows: 50px repeat(48, 60px);
    }
}

/* Event Card Styles for Mobile */
@media (max-width: 768px) {
    .event-card .event-title {
        font-size: 0.875rem; 
        line-height: 1.25rem;
        white-space: normal; 
        overflow: visible;
        text-overflow: clip;
        display: block; 
    }
    .event-card .event-time {
        font-size: 0.75rem; 
        margin-top: 0.25rem;
    }
}

.event-card { transition: transform 0.1s, box-shadow 0.1s; }
.event-card:active { transform: scale(0.97); }

.modal-overlay {
    opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 50;
}
.modal-overlay.active { opacity: 1; visibility: visible; }
.modal-content { transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }

@media (max-width: 768px) {
    .modal-content {
        transform: translateY(100%);
        border-bottom-left-radius: 0; border-bottom-right-radius: 0;
        max-height: 90vh;
    }
    .modal-overlay.active .modal-content { transform: translateY(0); }
}

@media (min-width: 768px) {
    .modal-content { transform: scale(0.95); opacity: 0; }
    .modal-overlay.active .modal-content { transform: scale(1); opacity: 1; }
}