/* Shared browse controls: events, frontpage and marketplace. */
.kp-browse-search-row { display:flex; align-items:center; gap:.5rem; }
.kp-browse-search-row .app-search { flex:1; min-width:0; padding:0; }
.kp-browse-filter-toggle { flex-shrink:0; min-height:38px; white-space:nowrap; touch-action:manipulation; }
@media(max-width:991.98px) {
    body.kp-marketplace-browse-page .kp-market-actions #market-filter-toggle { display:none !important; }
}
[data-filter-count][hidden] { display:none !important; }
.kp-browse-panel, #market-filter-col { --kp-filter-font:.875rem; }
.kp-browse-panel .form-label, #market-filter-col .form-label,
.kp-browse-panel .form-check-label, #market-filter-col .form-check-label {
    font-size:var(--kp-filter-font) !important; line-height:1.4; letter-spacing:normal;
}
.kp-browse-panel .form-label:not(.mb-0), #market-filter-col .form-label:not(.mb-0) { margin-bottom:.3rem !important; }
.kp-browse-panel .form-control, .kp-browse-panel .form-select,
#market-filter-col .form-control, #market-filter-col .form-select {
    font-size:var(--kp-filter-font) !important; height:38px !important; padding:.375rem .65rem !important;
}
.kp-browse-panel .select2-selection--single, #market-filter-col .select2-selection--single {
    height:38px !important; min-height:38px !important; font-size:var(--kp-filter-font) !important;
}
.kp-browse-panel .select2-selection--single .select2-selection__rendered, #market-filter-col .select2-selection--single .select2-selection__rendered { line-height:36px !important; }
.kp-browse-panel .select2-selection__arrow, #market-filter-col .select2-selection__arrow { height:36px !important; }
.kp-browse-dropdown { font-size:.875rem !important; }
.kp-browse-dropdown .select2-results__options { max-height:280px !important; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.kp-browse-dropdown .select2-results__option { padding:.5rem .65rem; }
.kp-filter-organizer { display:flex; gap:.5rem; align-items:center; min-width:0; }
.kp-filter-organizer > img, .kp-filter-organizer > .mdi { width:28px; height:28px; flex-shrink:0; object-fit:contain; border-radius:.25rem; }
.kp-filter-organizer > .mdi { display:flex; align-items:center; justify-content:center; font-size:1.25rem; }
.kp-filter-organizer > span { overflow:hidden; text-overflow:ellipsis; }
.select2-selection__rendered .kp-filter-organizer { height:100%; }
.select2-results__option .kp-filter-organizer > span { white-space:normal; line-height:1.35; }
.kp-browse-filter-bar:has([data-filter-chips]:empty) { display:none !important; }
.kp-browse-filter-bar [data-filter-chips] .btn, .kp-category-chip { border-radius:999px !important; font-size:.8125rem !important; }
/* No slide delay: filtering is a utility panel, not a page transition. */
.kp-browse-panel, #market-filter-col, #market-filter-collapse { transition:none !important; }
@media(max-width:991.98px) {
    .kp-browse-filter-toggle, #market-filter-toggle-mobile { min-height:44px; min-width:44px; }
    .kp-browse-search-row .form-control { min-height:44px; }
    .kp-browse-panel .form-control, .kp-browse-panel .form-select,
    #market-filter-col .form-control, #market-filter-col .form-select,
    .kp-browse-panel .select2-selection--single, #market-filter-col .select2-selection--single {
        height:44px !important; min-height:44px !important; font-size:1rem !important;
    }
    .kp-browse-panel .select2-selection--single .select2-selection__rendered, #market-filter-col .select2-selection--single .select2-selection__rendered { line-height:42px !important; }
    .kp-browse-panel .select2-selection__arrow, #market-filter-col .select2-selection__arrow { height:42px !important; }
    .kp-browse-dropdown { font-size:1rem !important; }
    .kp-browse-dropdown .select2-results__option { min-height:44px; }
}

/* Both pages use the same shell, padding and actions. Keep this after legacy marketplace CSS. */
:is(#event-filter-panel,#market-filter-col).kp-browse-panel .kp-filter-card {
    position:static; width:100%; margin:0; max-height:none; overflow:visible;
}
:is(#event-filter-panel,#market-filter-col).kp-browse-panel .kp-filter-card .kp-filter-card-body {
    padding:.5rem .875rem .875rem !important;
}
.kp-browse-panel .kp-filter-header { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin:0 0 .375rem; }
.kp-browse-panel .kp-filter-reset { min-height:32px; margin:0; padding:0; font-size:.875rem; text-align:left; text-decoration:none; }
.kp-browse-panel .kp-filter-close { min-width:32px; min-height:32px; padding:.25rem; }
.kp-browse-panel .kp-filter-fields > .mb-2, .kp-browse-panel .kp-filter-fields > .row { margin-bottom:.5rem !important; }
.kp-browse-panel .form-check-label { font-weight:400; padding:0; }
.kp-browse-panel .form-check { min-height:1.5rem; }
.kp-browse-panel .kp-filter-footer { margin-top:.5rem; padding-top:.5rem; border-top:1px solid var(--ct-border-color); }
.kp-browse-panel .kp-filter-footer .btn { min-height:44px; font-size:.875rem; padding:.5rem .75rem; border-radius:.25rem; }
.kp-browse-panel .input-group .form-control { min-width:0; width:1%; }
.kp-browse-panel .input-group-text { font-size:.875rem; padding:.375rem .6rem; }
.kp-browse-panel [hidden] { display:none !important; }
body .kp-browse-filter-toggle { border-radius:.25rem !important; font-weight:400; box-shadow:none !important; }
.kp-browse-filter-toggle .mdi { font-size:1.2rem; line-height:1; }
@media(min-width:992px) {
    .kp-browse-panel { position:relative; }
    .filters-collapsed > .kp-browse-panel { display:none !important; }
}
@media(max-width:991.98px) {
    body .kp-browse-panel, body.kp-marketplace-browse-page #market-filter-col.kp-browse-panel {
        position:fixed !important; inset:0 !important; width:100vw !important; max-width:100vw !important;
        height:100dvh; margin:0 !important; padding:0 !important; overflow:hidden !important; z-index:1060;
        background:var(--ct-body-bg); color:var(--ct-body-color); display:flex !important; flex-direction:column;
    }
    :is(#event-filter-panel,#market-filter-col).kp-browse-panel .kp-filter-card {
        flex:1; display:flex; min-height:0; height:100%; border:0; box-shadow:none; background:inherit;
    }
    :is(#event-filter-panel,#market-filter-col).kp-browse-panel .kp-filter-card .kp-filter-card-body {
        display:flex; flex-direction:column; min-height:0; height:100%; padding:.25rem .875rem max(.5rem,env(safe-area-inset-bottom)) !important;
    }
    .kp-browse-panel .kp-filter-header, .kp-browse-panel .kp-filter-footer { flex-shrink:0; }
    .kp-browse-panel .kp-filter-reset, .kp-browse-panel .kp-filter-close { min-height:44px; }
    .kp-browse-panel .kp-filter-close { min-width:44px; }
    .kp-browse-panel .kp-filter-fields { min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; flex:1; }
    .kp-browse-panel .form-check { display:flex; align-items:center; gap:.5rem; min-height:36px; }
    .kp-browse-panel .form-check-label { padding:.4rem 0; }
    body.kp-marketplace-browse-page #market-filter-toggle-mobile.kp-browse-filter-toggle { width:44px !important; min-width:44px; padding:0 !important; }
    #event-filter-toggle .badge, #market-filter-toggle-mobile .badge { position:absolute; top:-.4rem; right:-.4rem; border-radius:999px; }
    .kp-browse-filter-toggle { position:relative; }
    .kp-browse-panel .daterangepicker { max-width:calc(100vw - 1.75rem); }
}

.kp-filter-country { display:inline-flex; align-items:center; gap:.5rem; min-width:0; }
.kp-filter-country img { width:20px; height:15px; flex-shrink:0; object-fit:contain; border-radius:2px; }
.kp-filter-country img[hidden] { display:none; }

.kp-browse-filter-bar [data-filter-chips] button { display:inline-flex; align-items:center; gap:.4rem; min-height:2rem; text-align:left; white-space:normal; overflow-wrap:anywhere; }
@media (max-width:767.98px) {
    .kp-browse-filter-bar [data-filter-chips] button { min-height:44px; }
}

.kp-filter-locate { min-height:32px; padding:.125rem 0; font-size:.8125rem; text-decoration:none; }
.kp-filter-locate[aria-busy="true"] .mdi { opacity:.5; }

.kp-filter-location-heading { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.3rem; }
.kp-browse-panel .kp-filter-location-heading .form-label { margin:0; }
.kp-filter-location-heading .kp-filter-locate { display:inline-flex; align-items:center; flex-shrink:0; gap:.2rem; margin:0; }
@media(min-width:992px) { .kp-filter-location-heading .kp-filter-locate { min-height:0; padding:0; line-height:1.4; } }
.kp-filter-opening { width:1.2rem; height:1.2rem; vertical-align:middle; margin-right:.25rem; }
/* Override Select2's absolute remove button and reserved text padding in both themes. */
.kp-browse-panel .select2-selection--multiple .select2-selection__choice { position:static; padding:0 .35rem 0 0; gap:.35rem; line-height:1.4; }
.kp-browse-panel .select2-selection--multiple .select2-selection__choice__remove { position:static; display:inline-flex; align-items:center; justify-content:center; align-self:stretch; flex-shrink:0; min-width:24px; margin:0; padding:0; line-height:1; border-right:1px solid rgba(255,255,255,.2); }
.kp-browse-panel .select2-selection--multiple .select2-selection__choice__display { padding:2px 0; line-height:1.4; }
.kp-browse-panel .select2-selection--multiple .select2-selection__rendered { line-height:1.4; }
@media(max-width:991.98px) { .kp-browse-panel .select2-selection--multiple .select2-selection__choice__remove { min-width:28px; min-height:28px; } }

/* One toolbar and counter treatment across browse pages. */
.kp-browse-toolbar > .card-body { padding:.5rem .875rem; }
.kp-browse-toolbar-row { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.kp-browse-toolbar-row .kp-browse-search-row { flex:1 1 18rem; min-width:0; }
.kp-browse-scope .btn { min-height:38px; }
body .kp-browse-filter-toggle { display:inline-flex; align-items:center; justify-content:center; transition:none; }
body .kp-browse-filter-toggle [data-filter-icon] { display:inline-block; width:1.2rem; flex-shrink:0; }
body .kp-browse-filter-toggle .kp-filter-opening { margin-right:0; }
body .kp-browse-filter-toggle .kp-filter-count { display:inline-flex; align-items:center; justify-content:center; min-width:1.25rem; height:1.25rem; padding:0 .35rem; font-size:.75rem; line-height:1; background:#3b4652; color:#fff; }

/* Badges and the editable query share a baseline, including Select2 4.1's textarea. */
body .kp-browse-panel .kp-browse-location + .select2 .select2-selection--multiple { display:flex; flex-wrap:wrap; align-items:center; gap:.25rem; min-height:38px; padding:.375rem .5rem; }
body .kp-browse-panel .kp-browse-location + .select2 .select2-selection__rendered { display:contents; }
body .kp-browse-panel .kp-browse-location + .select2 .select2-selection__choice { display:inline-flex; align-items:center; margin:0; float:none; max-width:100%; }
body .kp-browse-panel .kp-browse-location + .select2 .select2-search--inline { display:block; flex:1 1 4rem; min-width:4rem; max-width:100%; margin:0; float:none; }
body .kp-browse-panel .kp-browse-location + .select2 .select2-search__field { display:block; margin:0; padding:0; min-width:4rem; max-width:100%; height:1.5rem; line-height:1.5rem; vertical-align:middle; font-family:inherit; }
@media(max-width:991.98px) {
    .kp-browse-scope .btn { min-height:44px; }
    body .kp-browse-panel .kp-browse-location + .select2 .select2-selection--multiple { min-height:44px; }
}
@media(max-width:575.98px) {
    .kp-browse-toolbar-row .kp-browse-search-row { flex-basis:100%; }
    .kp-browse-scope, .kp-browse-scope .btn-group { width:100%; }
    .kp-browse-scope .btn { flex:1; }
}
