/* ==============================================
   SIDEBAR (für Events, etc.)
   ============================================== */
.events-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 900px) {
    .events-layout {
        grid-template-columns: 320px 1fr;
        align-items: start;
    }
}

.sidebar-sticky {
    position: sticky;
    top: 2rem;
}

.sidebar-widget {
    background: var(--bg-card);
    padding: 1.25rem;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    margin-bottom: 1.5rem;
    border: 1px solid var(--border-color-light);
}

.sidebar-widget h2 {
    margin-top: 0;
    margin-bottom: 1rem;
    font-size: 0.9rem;
    color: var(--primary-color);
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ==============================================
   MOBILE COLLAPSIBLE SIDEBAR WIDGETS
   ============================================== */
@media (max-width: 899px) {

    /* Sidebar Widget Title als Button stylen */
    .sidebar-widget h2 {
        cursor: pointer;
        justify-content: space-between;
        padding: 0.5rem 0;
        margin-bottom: 0;
        border-bottom: 1px solid var(--border-color-light);
        transition: color var(--transition-fast);
    }

    .sidebar-widget h2::after {
        content: '\ea4e';
        /* ri-arrow-down-s-line */
        font-family: 'remixicon';
        font-size: 1.2rem;
        color: var(--text-muted);
        transition: transform 0.3s ease;
    }

    .sidebar-widget h2:hover {
        color: var(--primary-hover);
    }

    /* Eingeklappter Zustand (Standard auf Mobile) */
    .sidebar-widget .filter-list,
    .sidebar-widget #mini-calendar,
    .sidebar-widget .btn-outline {
        display: none;
        overflow: hidden;
        max-height: 0;
        opacity: 0;
        transition: max-height 0.3s ease, opacity 0.3s ease;
    }

    /* Ausgeklappter Zustand */
    .sidebar-widget.expanded .filter-list,
    .sidebar-widget.expanded #mini-calendar,
    .sidebar-widget.expanded .btn-outline {
        display: block;
        max-height: 500px;
        opacity: 1;
        margin-top: 1rem;
    }

    .sidebar-widget.expanded h3::after {
        transform: rotate(180deg);
    }

    /* Kompakterer Look auf Mobile */
    .sidebar-widget {
        padding: 1rem;
        margin-bottom: 0.75rem;
    }
}

/* Desktop: Sidebar immer sichtbar */
@media (min-width: 900px) {

    .sidebar-widget .filter-list,
    .sidebar-widget #mini-calendar,
    .sidebar-widget .btn-outline {
        display: block !important;
        max-height: none !important;
        opacity: 1 !important;
    }

    .sidebar-widget h2::after {
        display: none !important;
    }

    .sidebar-widget h2 {
        cursor: default;
    }
}

/* --- Filter List (Sidebar vertical buttons) --- */
.filter-list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.filter-btn {
    background: transparent;
    border: none;
    border-radius: var(--radius-sm);
    padding: 0.6rem 0.75rem;
    text-align: left;
    cursor: pointer;
    transition: all var(--transition-fast);
    display: block;
    /* War flex */
    width: 100%;
    font-size: 0.9rem;
    color: var(--text-muted);
    font-weight: 500;
}

.filter-btn:hover {
    background: var(--color-yellow);
    color: var(--text-on-bright);
}

.filter-btn.active {
    background: var(--color-yellow);
    color: var(--text-on-bright);
    font-weight: 600;
}