/* Shared filter bar: same-size controls on a grid, muted labels, actions on the right */
.filter-bar { max-width:100%; box-sizing:border-box; border: 1px solid #e3e6ea; border-radius: 6px; background: #fff; margin-bottom: 1.25rem; }
.filter-bar__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .6rem 1rem; border-bottom: 1px solid #e3e6ea; }
.filter-bar__head h6 { margin: 0; font-size: .875rem; font-weight: 700; }
.filter-bar__count { white-space:nowrap; font-size: .75rem; font-weight: 600; color: #c0392b; background: #fdecea; padding: .15rem .6rem; border-radius: 999px; }
.filter-bar__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(190px, 100%), 1fr)); gap: .75rem 1rem; padding: .9rem 1rem .25rem; }
.filter-bar__grid .form-group { margin-bottom: 0; min-width: 0; }
.filter-bar__grid label { display: block; font-size: .75rem; font-weight: 600; color: #6c757d; margin-bottom: .25rem; }
.filter-bar__grid .form-control,
.filter-bar__grid .select2-container .select2-selection--single { height: 36px !important; font-size: .8125rem; padding-top: .375rem; padding-bottom: .375rem; }
.filter-bar__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; padding: .75rem 1rem .9rem; }
.filter-bar__actions .btn { min-width: 96px; }
@media (max-width: 575px) { .filter-bar__actions .btn { flex: 1 1 auto; } }

/* Collapsible */
.filter-bar__head { cursor: pointer; user-select: none; }
.filter-bar__head h6 { margin-right: auto; }
.filter-bar__toggle { border: 0; background: transparent; color: #6c757d; width: 28px; height: 28px; border-radius: 4px; line-height: 1; padding: 0; }
.filter-bar__toggle:hover, .filter-bar__toggle:focus { background: #f1f3f5; outline: none; }
.filter-bar__toggle .fa { transition: transform .2s; font-size: .75rem; }
.filter-bar.is-collapsed .filter-bar__toggle .fa { transform: rotate(180deg); }
.filter-bar.is-collapsed .filter-bar__head { border-bottom: 0; }
.filter-bar.is-collapsed .filter-bar__grid, .filter-bar.is-collapsed .filter-bar__actions { display: none; }

/* Active filter chips */
.filter-bar__chips { display: flex; flex-wrap: wrap; gap: .375rem; padding: .5rem 1rem; border-bottom: 1px solid #e3e6ea; }
.filter-bar.is-collapsed .filter-bar__chips { border-bottom: 0; }
.filter-chip { display: inline-flex; align-items: center; gap: .35rem; max-width: 100%; font-size: .75rem; line-height: 1.2; color: #495057; background: #f1f3f5; border: 1px solid #e3e6ea; border-radius: 999px; padding: .2rem .25rem .2rem .6rem; }
.filter-chip b { font-weight: 600; color: #6c757d; }
.filter-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.filter-chip a { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; color: #6c757d; text-decoration: none; font-size: .9rem; line-height: 1; }
.filter-chip a:hover { background: #fdecea; color: #ed1c23; }
.filter-chip--clear { background: transparent; border-color: transparent; padding-right: .6rem; }
.filter-chip--clear a { width: auto; height: auto; border-radius: 0; font-size: .75rem; color: #ed1c23; }
.filter-chip--clear a:hover { background: transparent; text-decoration: underline; }

/* Search in the head, beside the title */
.filter-bar__head h6 { margin-right: 0; }
.filter-bar__search { position: relative; flex: 0 1 280px; margin-right: auto; margin-left: .75rem; cursor: auto; }
.filter-bar__search .fa { position: absolute; left: .65rem; top: 50%; transform: translateY(-50%); font-size: .75rem; color: #adb5bd; pointer-events: none; }
.filter-bar__search .form-control { height: 32px; font-size: .8125rem; padding: .25rem .6rem .25rem 1.9rem; margin: 0 !important; width: 100% !important; border-radius: 4px; }
.filter-bar__head > .filter-bar__count { margin-left: auto; }

/* Pinned under the navbar while the page scrolls */
.filter-bar.is-pinned { position: sticky; z-index: 6; box-shadow: 0 2px 6px rgba(0,0,0,.06); }

/* DataTables page-size picker moved down beside the "Showing x of y" line */
.dataTables_wrapper .dataTables_length { display: inline-block; margin-right: 1rem; }
.dataTables_wrapper .dataTables_length + .dataTables_info { display: inline-block; }
.filter-bar.is-stuck .filter-bar__grid, .filter-bar.is-stuck .filter-bar__actions { display: none; }
.filter-bar.is-stuck .filter-bar__head { border-bottom: 0; }
.filter-bar.is-stuck .filter-bar__chips { border-bottom: 0; border-top: 1px solid #e3e6ea; }
