/* Focused calendar toolbar polish. Existing calendar views and actions stay intact. */

.calendar-container .ui-calendar-toolbar {
    gap: 0.75rem;
}

.calendar-container .ui-calendar-views {
    align-items: flex-start;
    gap: 0.5rem;
}

.calendar-container .ui-calendar-view-group,
.calendar-container .ui-calendar-filter-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.calendar-container .ui-calendar-filter-details {
    position: relative;
}

.calendar-container .ui-calendar-filter-details > summary {
    display: none;
}

.calendar-container .ui-calendar-filter-group .btn {
    min-height: 36px;
}

.calendar-container .ui-calendar-personal {
    white-space: nowrap;
}

@media (max-width: 768px) {
    .calendar-container .ui-calendar-toolbar {
        align-items: stretch;
    }

    .calendar-container .ui-calendar-views {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        gap: 0.45rem;
    }

    .calendar-container .ui-calendar-view-group {
        width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 0.1rem;
    }

    .calendar-container .ui-calendar-view-group .btn {
        flex: 0 0 auto;
        min-height: 44px;
    }

    .calendar-container .ui-calendar-filter-details {
        width: 100%;
        border: 1px solid var(--gray-200);
        border-radius: var(--radius);
        background: var(--white);
    }

    .calendar-container .ui-calendar-filter-details > summary {
        display: flex;
        align-items: center;
        min-height: 44px;
        padding: 0.5rem 0.75rem;
        color: var(--gray-700);
        font-size: var(--text-data);
        font-weight: 700;
        cursor: pointer;
        list-style: none;
    }

    .calendar-container .ui-calendar-filter-details > summary::-webkit-details-marker {
        display: none;
    }

    .calendar-container .ui-calendar-filter-details > summary::before {
        content: '☷';
        margin-right: 0.45rem;
        color: var(--primary);
    }

    .calendar-container .ui-calendar-filter-details > summary::after {
        content: '＋';
        margin-left: auto;
        color: var(--gray-500);
    }

    .calendar-container .ui-calendar-filter-details[open] > summary::after {
        content: '−';
    }

    .calendar-container .ui-calendar-filter-group {
        display: flex;
        padding: 0.5rem;
        border-top: 1px solid var(--gray-200);
    }

    .calendar-container .ui-calendar-filter-group .btn {
        flex: 1 1 auto;
        min-height: 44px;
    }

    .calendar-container .ui-calendar-personal {
        flex-basis: 100%;
    }

    /* The legacy mobile stylesheet targets the shared calendar classes with an
       ID selector. Keep the view controls in one compact, scrollable row. */
    #page-content .calendar-header .ui-calendar-views {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        min-width: 0;
        overflow: visible !important;
        flex-wrap: initial !important;
    }

    #page-content .calendar-header .ui-calendar-view-group {
        width: 100% !important;
        min-width: 0;
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
    }

    #page-content .calendar-header .ui-calendar-view-group .btn {
        flex: 0 0 auto;
        padding-inline: 0.45rem !important;
        font-size: var(--text-micro);
    }
}

[data-theme="dark"] .calendar-container .ui-calendar-filter-details {
    border-color: var(--gray-700);
    background: var(--gray-800);
}

[data-theme="dark"] .calendar-container .ui-calendar-filter-details > summary,
[data-theme="dark"] .calendar-container .ui-calendar-filter-group {
    border-color: var(--gray-700);
    color: var(--gray-100);
}

@media (prefers-reduced-motion: reduce) {
    .calendar-container .ui-calendar-filter-details,
    .calendar-container .ui-calendar-filter-group {
        transition: none !important;
    }
}
