/**
 * Tom Select + Bootstrap 3 forms (VKU)
 *
 * Load after tom-select.bootstrap4.css (see assets/app.js import order).
 */

/* --- Native select: never visible next to Tom Select --- */
select.tomselected,
select.ts-hidden-accessible {
    display: none !important;
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    clip: rect(0, 0, 0, 0) !important;
}

/* Bootstrap .form-control on wrapper must not duplicate the control border / height */
.ts-wrapper.form-control,
.ts-wrapper.form-select {
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Match legacy Bootstrap 3 / select2 control sizing */
.ts-wrapper .ts-control {
    min-height: 34px;
    padding: 6px 12px;
    border-radius: 4px;
    border: 1px solid #ccc;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

/* Layout: same slot as legacy select2 / form selects (45% in .form-container) */
.form-container form .ts-wrapper {
    position: relative;
    display: inline-block;
    width: 45%;
    vertical-align: middle;
}

.form-container .ts-wrapper .ts-control {
    width: 100%;
}

.form-container .ts-wrapper,
.ts-wrapper {
    overflow: visible;
}

/* Flush dropdown under control (bootstrap4 theme adds margin + detached border) */
.form-container .ts-wrapper .ts-dropdown,
.ts-wrapper .ts-dropdown,
.ts-wrapper.dropdown-active .ts-dropdown {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    border-top: 0 !important;
    border-radius: 0 0 4px 4px !important;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
    z-index: 2000;
}

.ts-wrapper.dropdown-active .ts-control {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

/* Long single-select labels: one line, stable height when opened */
.ts-wrapper.single .ts-control {
    flex-wrap: nowrap;
}

.ts-wrapper.single .ts-control .item {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

/* Entity selects: keep selected label on one line (do not hide the filter input) */
.ts-wrapper.single:not(.vku-tomselect-search) .ts-control > input {
    color: #555;
}

/* AJAX search (PLZ/Ort, header org): typed query must stay visible */
.ts-wrapper.vku-tomselect-search .ts-control > input {
    flex: 1 1 auto !important;
    min-width: 7rem !important;
    width: auto !important;
    max-width: 100% !important;
    opacity: 1 !important;
    color: #555 !important;
    background: transparent !important;
    position: relative !important;
    left: auto !important;
}

.ts-wrapper.plugin-clear_button .ts-control {
    padding-right: 52px;
}

.ts-wrapper.plugin-clear_button .ts-control .clear-button {
    position: absolute;
    right: 28px;
    top: 50%;
    transform: translateY(calc(-50% - 1px));
    font-size: 18px;
    line-height: 18px;
    width: 18px;
    height: 18px;
    text-align: center;
    color: #777;
}

.ts-wrapper.plugin-clear_button .ts-control .clear-button:hover {
    color: #333;
}

.ts-wrapper.multi .ts-control > div.clear-button {
    transform: translateY(calc(-50% - 2px)) !important;
}

.ts-wrapper.multi .ts-control .item {
    background: linear-gradient(to bottom, #bc202b, #8a181f) !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #fff !important;
}

.ts-wrapper.plugin-remove_button:not(.rtl) .item .remove {
    border: 0 !important;
    margin-left: 0 !important;
}

.form-container form .ts-wrapper.multi .ts-control .item div {
    margin-bottom: 0;
}
