/**
 * Manage the improvements of the standard advanced search.
 *
 * Chosen containers are display:inline-block by default. Fix:
 * display:block + min-width:0 for proper flex behavior.
 *
 * The admin CSS sets .inputs select { width: 100% }. Chosen
 * also sets width:100% inline. In flex-nowrap, all elements
 * with width:100% share space equally via flex-shrink — this
 * is the correct core behavior. The module only needs to make
 * chosen containers display:block and shrinkable.
 */
@media all {
    /* Override theme .value { flex-wrap: wrap } to keep
       multi-element rows on one line. Property-queries,
       item-sets and datetime need nowrap. */
    #advanced-search #property-queries .value,
    #advanced-search #item-sets .value,
    #advanced-search #datetime-queries .value {
        flex-wrap: nowrap;
    }

    /* Make chosen behave like native selects in flex:
       block display + shrinkable. */
    #advanced-search .chosen-container {
        display: block;
        min-width: 0;
    }

    /* === Filter-queries specific === */

    /* Filter .value needs wrap so sub-query goes below. */
    #advanced-search #filter-queries .inputs > .value {
        flex-wrap: wrap;
    }

    /* Filter .value-fields: inner flex row. */
    #advanced-search .inputs > .value .value-fields {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: .25rem;
        flex: 1 1 auto;
        min-width: 0;
    }

    /* In filters, chosen and text input grow to fill space
       while joiner and query-type keep natural width. */
    #advanced-search #filter-queries .chosen-container,
    #advanced-search #filter-queries .query-text {
        flex: 1 1 0;
    }
    #advanced-search #filter-queries .query-type {
        width: auto;
        flex: 0 0 auto;
    }
    #advanced-search #filter-queries .joiner {
        width: auto;
        flex: 0 0 auto;
        min-width: 4em;
    }

    /* Hide disabled/empty filter elements. */
    #advanced-search #filter-queries .query-text:disabled,
    #advanced-search #filter-queries .chosen-disabled,
    #advanced-search #filter-queries.multi-value:not(.has-joiner-not) .value:first-child .joiner,
    #advanced-search #filter-queries.multi-value:not(.has-joiner-not) .value:first-child .chosen-container:first-of-type {
       display: none;
    }
    /* Show first joiner when "not" joiner is enabled. */
    #advanced-search #filter-queries.multi-value.has-joiner-not .value:first-child .joiner {
        display: initial;
    }

    #advanced-search #filter-queries .chosen-container-multi .chosen-choices .search-choice {
        max-width: 24em;
    }
    #advanced-search .chosen-choices li.search-choice span {
        padding: 4px;
    }

    #advanced-search #filter-queries .query-form-element {
        display: none;
    }
    #advanced-search #filter-queries .query-text.hide {
        display: none;
    }

    /* Sub-query wraps to next line in the parent .value. */
    #advanced-search .inputs > .value .sub-query {
        width: 100%;
    }
    #advanced-search .inputs > .value .sub-query .query-display {
        min-height: 35px;
    }
    #advanced-search .inputs > .value .sub-query .query-form-element {
        flex: 1;
        margin-top: 0.25rem;
        margin-bottom: 0.5rem;
    }

    /* === Item-sets === */
    #advanced-search #item-sets .value {
        gap: .25rem;
    }
    /* "Dans/Pas dans" fixed width for column alignment. */
    #advanced-search #item-sets .item-set-select-type + .chosen-container {
        flex: 0 0 7em;
        width: 7em !important;
    }

    /* === Datetime: native selects, no chosen === */
    #advanced-search #datetime-queries .value {
        gap: .25rem;
        align-items: center;
    }
    #advanced-search #datetime-queries .value select {
        width: auto;
        flex: 0 0 auto;
    }
    #advanced-search #datetime-queries .value .query-text {
        width: auto;
        flex: 1 1 auto;
        min-width: 12em;
    }
}
