.sidebar-wrapper {
    .list-group-item {
        font-weight: 500;
        padding: 0.75rem 1.25rem;
        i {
            min-width: 25px;
        }
        &:hover {
            background-color: var(--color-overlay);
        }
    }
}
.fc-day-past {
    background-color: #00808030;
}

.custom-button {
    background-color: var(--color-primary);
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 0.5rem;
    font-weight: 500;
    transition: all 0.3s ease;
    &:hover {
        background-color: var(--color-primary-dark);
        color: var(--color-white);
        transform: translateY(-2px);
    }
}

.text-button {
    color: #ff8000;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 0.9rem;
    &:hover {
        color: var(--color-primary-dark);
    }
}

.auth-container {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f8f9ff;
    padding: 2rem;
}

.auth-card {
    width: 100%;
    background: white;
    border-radius: 1rem;
    border: 1px solid var(--color-border);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    &:hover {
        transform: translateY(-5px);
        box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
    }
}

.alert-danger {
    background-color: #fee2e2;
    border: 1px solid #fecaca;
    color: var(--color-danger);
    border-radius: 0.5rem;
    padding: 1rem;
    margin-bottom: 1rem;
}

.ts-wrapper.multi .ts-control {
    .item {
        background-image: none !important;
        background: var(--color-primary);
        border-color: var(--color-primary);
        a {
            border-color: var(--color-white) !important;
        }
    }
}

.schedule-wrapper {
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
    padding: 1rem;
    background: var(--color-background-light);
}

.calendar-wrapper {
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
}

.images-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    
    & > div {
        padding: 1rem;
        
        /* Top row borders */
        &:nth-child(1), &:nth-child(2) {
            border-bottom: 1px solid var(--color-border);
        }
        
        /* Right column borders */
        &:nth-child(1), &:nth-child(3) {
            border-right: 1px solid var(--color-border);
        }
    }
}
.flatpickr-day.selected {
    background: var(--color-primary);
    border-color: var(--color-primary);
    &:hover {
        background: var(--color-primary-dark);
        border-color: var(--color-primary-dark);
    }
}
.flatpickr-months .flatpickr-month {
    height: 36px;
}

.calendar-date-header {
    background: var(--color-background-light);
}

.form-check-input {
    &:checked {
        background-color: var(--color-primary);
        border: 1px solid var(--color-primary);
    }
    &:focus {
        outline: none;
        box-shadow: none;
        border-color: var(--color-primary);
    }
}

.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {
    background: var(--color-primary);
    border-color: var(--color-primary);
}

/* welcome / unauthenticated pages */
.welcome-wrap {
    height: 100vh;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow-y: auto;
    background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
}
.welcome-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    a {
        color: #000;
        transition: all 0.3s ease;
        &:hover {
            transform: scale(1.1);
        }
    }
}

label.form-label + ul > li {
    color: var(--color-danger);
}


@media (min-width: 767px) {
    .calendar-wrapper {
        display: grid;
        grid-template-columns: minmax(300px, 1fr) minmax(0, 4fr);
        &.collapsed {
            grid-template-columns: 76px minmax(0, 4fr);
            .external-event, h4 {
                font-size: 0;
            }
            #activity-search {
                pointer-events: none;
            }
        }
    }
    .calendar-date-header {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        border-bottom: 1px solid var(--color-border);
        padding: 0.5rem;
    }
    #draggable-events-container {
        position: sticky;
        top: 40px;
        z-index: 100;
    }
    #sidebar-container {
        background-color: var(--color-background-light);
        border-right: 1px solid var(--color-border);
        padding: 1rem;
        & > i {
            display: none;
        }
    }
}

@media (max-width: 768px) {
    .calendar-date-header {
        padding: 0.5rem;
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
        grid-template-areas:
            "prev next"
            "current current";
        gap: 0.5rem;
        & > *:first-child {
            grid-area: prev;
            justify-content: space-between;
        }
        & > *:nth-child(2) {
            grid-area: current;
        }
        & > *:nth-child(3) {
            grid-area: next;
            justify-content: space-between;
        }
    }
    #sidebar-container {
        background-color: var(--color-white);
        position: fixed;
        z-index: 999;
        transition: right 0.3s ease-in-out;
        top: 50%;
        transform: translateY(-50%);
        width: 320px;
        padding: 0.5rem;
        border-radius: 0.5rem;
        border: 1px solid var(--color-border);
        & > i {
            position: absolute;
            left: -30px;
            top: calc(50% - 16px);
            padding: 0.5rem;
            color: var(--color-white);
            background-color: var(--color-primary);
            border-top-left-radius: 0.5rem;
            border-bottom-left-radius: 0.5rem;
        }
        &.in {
            right: 0;
        }
        &.out {
            right: -320px;
        }
        #schedule-activity-sidebar {
            display: none;
        }
    }
    .dropdown-item {
        padding: 0.5rem 0;
    }
    .form-check-label {
        text-overflow: ellipsis;
        overflow: hidden;
    }
    .images-wrapper {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(4, 1fr);
        
        & > div {
            /* All items except the last one get bottom border */
            &:not(:last-child) {
                border-bottom: 1px solid var(--color-border);
            }
            
            /* Remove right borders on mobile */
            &:nth-child(1), &:nth-child(3) {
                border-right: none;
            }
        }
    }
    .auth-container {
        padding: 1rem;
        & > div {
            width: 100%;
        }
    }

    .welcome-wrap {
        padding: 10px 0;
        padding-bottom: max(10px, env(safe-area-inset-bottom));
        align-items: flex-start;
    }
    .welcome-card {
        padding-bottom: 40px;
        margin-bottom: 40px;
        border-bottom: 1px solid var(--color-border);
        h1, p {
            text-align: center;
        }
    }
}
