/* Layout and Typography */
.event-body-container {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    width: 100%;
    padding-top: 24px;
    padding-bottom: 48px;
    font-family: 'Roboto', sans-serif;
}

/* Header */
.event-calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 12px;
}

.event-calendar-month-nav {
    display: flex;
    align-items: center;
    gap: 16px;
}

#eventMonthTitle {
    margin: 0;
    font-size: 24px;
    font-weight: 500;
    color: #212529;
    line-height: 32px;
}

.event-nav-buttons {
    display: flex;
    gap: 8px;
    align-items: center;
}

.event-btn-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    color: #A6A8A9;
}

.event-btn-outline {
    height: 40px;
    padding: 8px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: transparent;
    font-size: 14px;
    font-weight: 500;
    color: #212529;
    cursor: pointer;
}

.event-calendar-tabs {
    display: flex;
    background-color: #F3F4F6;
    padding: 4px;
    border-radius: 8px;
}

.event-tab-btn {
    padding: 6px 16px;
    border-radius: 4px;
    border: none;
    background: transparent;
    font-size: 14px;
    font-weight: 500;
    color: #212529;
    cursor: pointer;
}

.event-tab-btn.active {
    background-color: #ffffff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

/* Left: FullCalendar Main */
.event-calendar-main {
    flex: 1;
    min-width: 0;
}

.event-calendar-grid {
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    overflow: hidden;
}

/* FullCalendar Overrides */
.fc {
    border-radius: 16px;
    border: 1px solid #E5E7EB;
    overflow: hidden;
    background-color: #ffffff;
}

.fc-theme-standard .fc-scrollgrid {
    border: none !important;
}

.fc-theme-standard td, .fc-theme-standard th {
    border-color: #E5E7EB !important;
}

.fc-col-header-cell {
    background-color: #F5F3FF !important;
    padding: 8px !important;
}

.fc-col-header-cell-cushion {
    color: #212529 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    line-height: 24px !important;
}

.fc-day-other {
    background-color: #F3F4F6 !important;
}

.fc-day-other .fc-daygrid-day-number {
    opacity: 0.5 !important;
}

.fc-daygrid-day-frame {
    display: flex !important;
    flex-direction: column !important;
    height: 150px !important;
    min-height: 150px !important;
    padding: 8px !important;
}

.fc-daygrid-day-top {
    display: flex !important;
    justify-content: center !important;
    margin-bottom: 4px !important;
    order: 1 !important; /* Force to top */
}

.fc-daygrid-day-events {
    order: 2 !important;
    flex-grow: 1 !important;
    margin-bottom: 0 !important;
}

.fc-daygrid-day-number {
    font-size: 16px !important;
    font-weight: 500 !important;
    color: #212529 !important;
    text-decoration: none !important;
    padding: 4px !important;
    width: 32px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
}

.fc-day-today .fc-daygrid-day-number {
    background-color: #7008E7 !important;
    color: #ffffff !important;
}

.fc-daygrid-event {
    border-radius: 4px !important;
    padding: 4px 8px !important;
    margin-bottom: 4px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 20px !important;
    border: 1px solid transparent !important;
    cursor: pointer !important;
}

.fc-h-event .fc-event-main {
    color: inherit;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fc-daygrid-more-link {
    color: #212529 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    margin-left: 8px !important;
    text-decoration: none !important;
    display: block !important;
    text-align: center !important;
    margin-top: 4px !important;
}

/* Right: Sidebar */
.event-sidebar {
    width: 384px;
    flex-shrink: 0;
    border-left: 1px solid #E5E7EB;
    padding-left: 24px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.event-sidebar-title {
    font-size: 24px;
    font-weight: 500;
    color: #212529;
    margin: 0;
    line-height: 32px;
}

.event-upcoming-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sidebar-event-item {
    display: flex;
    flex-direction: row;
    gap: 16px;
    padding: 8px;
    border-radius: 8px;
    width: 100%;
}

.sidebar-event-item.event-info {
    background-color: #EFF6FF;
    border: 1px solid #DBEAFE;
    color: #1447E6;
}

.sidebar-event-item.event-warning {
    background-color: #FFF7ED;
    border: 1px solid #FFEDD4;
    color: #FF6900;
}

.sidebar-event-image {
    width: 105px;
    height: 72px;
    object-fit: cover;
    border-radius: 4px;
    flex-shrink: 0;
}

.sidebar-event-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 0;
    justify-content: center;
}

.sidebar-event-time {
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    color: inherit;
}

.sidebar-event-name {
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    margin: 0;
    color: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-event-location {
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    color: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 1200px) {
    .event-body-container {
        flex-direction: column;
    }
    
    .event-sidebar {
        width: 100%;
    }
}

/* --- MOBILE SPECIFIC VIEW (.sk-mobile-view) --- */
.sk-mobile-view {
    font-family: 'Roboto', sans-serif;
}
.sk-mobile-view .custom-mobile-calendar {
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: white;
    padding: 16px;
}
.sk-mobile-view .calendar-header-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    color: #4D179A;
    font-weight: 500;
    font-size: 14px;
    margin-bottom: 12px;
}
.sk-mobile-view .calendar-days-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    row-gap: 16px;
    text-align: center;
}
.sk-mobile-view .calendar-day-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    position: relative;
    height: 40px;
}
.sk-mobile-view .calendar-day-number {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: #212529;
    border-radius: 50%;
    margin-bottom: 2px;
}
.sk-mobile-view .calendar-day-number.faded {
    color: #a0a0a0;
}
.sk-mobile-view .calendar-day-number.selected {
    background-color: #7008E7;
    color: white;
    font-weight: 600;
}
.sk-mobile-view .calendar-day-dot {
    width: 4px;
    height: 4px;
    background-color: #7008E7;
    border-radius: 50%;
}
.sk-mobile-view .event-tab-btn-mobile.active {
    background-color: #ffffff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.sk-mobile-header-top { display: flex; align-items: center; }
.sk-mobile-back-btn { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-right: 12px; }
.sk-mobile-back-btn i { font-size: 24px; color: #212529; }
.sk-mobile-main-title { font-size: 20px; font-weight: 500; color: #212529; }
.sk-mobile-nav-bar { display: flex; justify-content: space-between; align-items: center; }
.sk-mobile-month-picker-wrapper { position: relative; display: inline-block; }
.sk-mobile-month-title { font-size: 20px; font-weight: 500; color: #1F2937; display: flex; align-items: center; }
.sk-mobile-month-title svg { margin-left: 4px; }
.sk-mobile-month-input { position: absolute; left: 0; top: 0; width: 100%; height: 100%; opacity: 0; z-index: 10; cursor: pointer; }
.sk-mobile-nav-actions { display: flex; align-items: center; }
.sk-mobile-nav-btn { width: 36px; height: 36px; border-radius: 8px; border: 1px solid #E5E7EB; background: #FFFFFF; display: flex; align-items: center; justify-content: center; padding: 0; color: #6B7280; }
.sk-mobile-today-btn { height: 36px; border-radius: 8px; border: 1px solid #E5E7EB; background: #FFFFFF; color: #1F2937; font-size: 14px; font-weight: 500; padding: 0 12px; }
.sk-mobile-tabs-container { width: 100%; display: flex; background: #F3F4F6; padding: 4px; border-radius: 8px; }
.sk-mobile-tabs-container .event-tab-btn-mobile { flex: 1; text-align: center; border-radius: 4px; padding: 6px 0; border: none; background: transparent; font-size: 14px; font-weight: 500; }
