/* Masters page — two-row filters
 *
 * Bootstrap .form-control / .form-select are width:100%. Without an explicit
 * width on each field, every flex item grows to the full row (one field per line).
 */

.masters-filters {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Select filters: fill full row width; equal share; wrap when needed.
   New filters automatically use remaining space (auto-fit). */
.masters-filters__row--selects {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    align-items: end;
    gap: 0.75rem;
    width: 100%;
}

.masters-filters__row--selects .masters-filter-field {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: none;
}

.masters-filters__row--selects .masters-filter-field .form-select,
.masters-filters__row--selects .masters-filter-field .form-control,
.masters-filters__row--selects .masters-service-filter {
    width: 100%;
    max-width: 100%;
}

.masters-filters__row--selects .masters-filter-field--service {
    /* stay in the same equal grid track as other selects */
    align-self: start;
}

/* Inputs row is pure Bootstrap .row — no custom widths that override cols */
.masters-filters__inputs {
    margin-left: 0;
    margin-right: 0;
}

/* Anchor for the validation message below the field */
.masters-filters__field {
    position: relative;
}

/* Absolute so a transient error never reflows the align-items-end inputs row */
.masters-filters__error {
    position: absolute;
    top: 100%;
    left: calc(var(--bs-gutter-x) * 0.5);
    right: calc(var(--bs-gutter-x) * 0.5);
    margin-top: 0.125rem;
    font-size: 0.75rem;
    line-height: 1.2;
}

/* Stack filters above table while service menu is open (.card-shadow is z-index: 1) */
.card.card-shadow.masters-filters-card {
    position: relative;
    overflow: visible;
    z-index: 2;
}

.card.card-shadow.masters-filters-card.masters-filters-card--dropdown-open {
    z-index: 40;
    overflow: visible;
}

.masters-filters-card--dropdown-open .masters-filters__row--selects {
    position: relative;
    z-index: 1;
    overflow: visible;
}

/* Button-sized anchor; absolute menu must not grow this box */
.masters-service-filter {
    position: relative;
    width: 100%;
}

.masters-service-filter > .form-select {
    width: 100%;
}

.masters-service-filter__backdrop {
    position: fixed;
    inset: 0;
    z-index: 1040;
}

.masters-service-filter__menu {
    position: absolute !important;
    top: calc(100% + 4px) !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 1050 !important;
    display: block !important;
    box-sizing: border-box;
    min-width: 100%;
    width: max-content;
    max-width: min(320px, 90vw);
    max-height: min(70vh, 480px);
    overflow-x: hidden;
    overflow-y: auto;
    margin: 0;
    padding: 0.5rem;
    list-style: none;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 0.5rem;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.masters-service-filter__option {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0.35rem 0.5rem;
    border-radius: 0.35rem;
    cursor: pointer;
}

.masters-service-filter__option:hover {
    background-color: #f5f5f5;
}

.masters-service-filter__clear {
    margin-top: 0.5rem;
}

.masters-service-filter__mode {
    margin: 0 0 0.5rem;
    padding: 0.35rem 0.5rem 0.65rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.masters-service-filter__mode-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.masters-service-filter__mode-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.masters-service-filter__mode-btns .btn {
    flex: 1 1 auto;
    min-width: 0;
}

/* Dark mode toggle (not Bootstrap primary blue) */
.masters-service-filter__mode-btn {
    color: #374151;
    background: #f3f4f6;
    border: 1px solid #d1d5db;
}

.masters-service-filter__mode-btn:hover {
    color: #111827;
    background: #e5e7eb;
    border-color: #9ca3af;
}

.masters-service-filter__mode-btn.is-active {
    color: #f9fafb;
    background: #1f2937;
    border-color: #111827;
    box-shadow: none;
}

.masters-service-filter__mode-btn.is-active:hover {
    color: #fff;
    background: #111827;
    border-color: #030712;
}
