.package-search-filter {
    width: min(1180px, calc(100% - 32px));
    margin: 24px auto;
}

.package-search-filter__form {
    display: grid;
    grid-template-columns: repeat(4, minmax(140px, 1fr));
    gap: 12px;
    align-items: end;
    padding: 16px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 8px;
}

.package-search-filter__field {
    display: grid;
    gap: 6px;
    color: var(--color-text);
    font-size: 0.9rem;
    font-weight: 600;
}

.package-search-filter__field--small {
    min-width: 96px;
}

.package-search-filter__field input,
.package-search-filter__field select {
    width: 100%;
    min-height: 42px;
    padding: 9px 10px;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: var(--color-white);
    color: var(--color-text);
    font: inherit;
    font-weight: 400;
}

.package-search-filter__field input:focus,
.package-search-filter__field select:focus {
    outline: 2px solid var(--navbar-brand-color);
    outline-offset: 1px;
}

.package-search-filter__submit {
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid var(--package-carousel-link-border-color);
    border-radius: 6px;
    background: var(--package-carousel-link-bg);
    color: var(--package-carousel-link-text-color);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.package-search-filter__submit:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.package-search-filter__errors {
    grid-column: 1 / -1;
    padding: 10px 12px;
    border: 1px solid #d94a38;
    border-radius: 6px;
    background: #fff4f1;
    color: #8f2418;
}

.package-search-filter__errors p,
.package-search-filter__status {
    margin: 0;
}

.package-search-filter__status {
    grid-column: 1 / -1;
    color: var(--color-text-soft);
    font-size: 0.9rem;
}

.package-search-empty {
    width: min(1180px, calc(100% - 32px));
    margin: 24px auto;
    padding: 18px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    background: var(--color-surface);
    color: var(--color-text-soft);
}

@media (max-width: 900px) {
    .package-search-filter__form {
        grid-template-columns: repeat(2, minmax(140px, 1fr));
    }
}

@media (max-width: 560px) {
    .package-search-filter__form {
        grid-template-columns: 1fr;
    }
}
