/**
 * Search Dropdown Component
 * Includes search input, filter panel, results grid
 */

@use '../variables' as *;
@use '../mixins' as *;

.target-conditions-trait,
.entity-selector-trait {

    // Search wrapper
    .target-search-wrapper {
        position: relative;
    }

    // Search dropdown
    .target-search-dropdown {
        @include dropdown-container;
        display: none;
        width: 600px;
        max-width: calc(100vw - 40px);

        &.show {
            display: block;
        }
    }

    // Dropdown header
    .dropdown-header {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-md;
        background: $es-bg-header;
        border-bottom: 1px solid $es-border-color;
        border-radius: $es-radius-lg $es-radius-lg 0 0;
    }

    .dropdown-search-input {
        @include input-base;
        flex: 1;
        padding: $es-spacing-sm $es-spacing-md;
    }

    .dropdown-close-btn {
        @include button-reset;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        color: $es-text-muted;
        border-radius: $es-radius-md;
        transition: all $es-transition-fast;

        &:hover {
            background: $es-slate-200;
            color: $es-text-secondary;
        }
    }

    // Dropdown controls bar
    .dropdown-controls {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: $es-spacing-sm;
        padding: $es-spacing-sm $es-spacing-md;
        background: $es-white;
        border-bottom: 1px solid $es-border-color;
    }

    .dropdown-controls-left,
    .dropdown-controls-right {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
    }

    // View mode buttons
    .view-mode-btn {
        @include button-reset;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        color: $es-text-muted;
        background: transparent;
        border-radius: $es-radius-sm;
        transition: all $es-transition-fast;

        &:hover {
            background: $es-slate-100;
            color: $es-text-secondary;
        }

        &.active {
            background: $es-primary;
            color: $es-white;
        }
    }

    // Results count
    .dropdown-results-count {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
    }

    // Dropdown body
    .dropdown-body {
        max-height: 400px;
        overflow-y: auto;
        @include custom-scrollbar;
    }

    // Results container
    .dropdown-results {
        padding: 0 $es-spacing-sm;
    }

    // Results count text
    .results-count {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
        padding: $es-spacing-xs $es-spacing-sm;
    }

    // Results header (for list view columns)
    .results-header {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xs $es-spacing-md;
        background: $es-slate-100;
        border-bottom: 1px solid $es-border-color;
        font-size: $es-font-size-xs;
        font-weight: $es-font-weight-semibold;
        color: $es-text-secondary;
    }

    // Grid view
    .dropdown-results-grid {
        display: grid;
        gap: $es-spacing-sm;

        &.view-list {
            grid-template-columns: 1fr;
        }

        &.view-grid-2 {
            grid-template-columns: repeat(2, 1fr);
        }

        &.view-grid-3 {
            grid-template-columns: repeat(3, 1fr);
        }
    }

    // Result item (both class names for compatibility)
    // Note: Main dropdown-item styling is in the global .target-search-dropdown section below
    .dropdown-result-item {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-sm 0;
        background: $es-white;
        border: none;
        border-bottom: 1px solid $es-border-color;
        border-radius: 0;
        cursor: pointer;
        transition: background $es-transition-fast;

        &:last-child {
            border-bottom: none;
        }

        &:hover {
            background: $es-bg-hover;
        }

        &.selected {
            background: $es-primary-light;
        }

        &.disabled {
            opacity: 0.5;
            cursor: not-allowed;

            &:hover {
                background: $es-white;
            }
        }
    }

    .result-item-image,
    .result-image {
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        overflow: hidden;
        border-radius: $es-radius-sm;
        background: $es-slate-100;

        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        &.result-flag {
            width: 32px;
            height: 24px;
            border-radius: 2px;
            box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
            background: transparent;

            img {
                object-fit: contain;
            }

            .flag-fallback {
                display: flex;
                align-items: center;
                justify-content: center;
                width: 100%;
                height: 100%;
                background: linear-gradient(135deg, #e8eaed 0%, #dadce0 100%);
                font-size: 14px;
                color: #5f6368;
            }
        }
    }

    .result-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        background: $es-slate-100;
        border-radius: $es-radius-sm;
        color: $es-text-muted;

        i {
            font-size: 16px;
        }
    }

    .result-item-info,
    .result-info {
        flex: 1;
        min-width: 0;
    }

    .result-item-name,
    .result-name {
        font-size: $es-font-size-sm;
        font-weight: $es-font-weight-medium;
        color: $es-text-primary;
        @include text-truncate;
    }

    .result-item-meta,
    .result-subtitle {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
    }

    .subtitle-line {
        @include text-truncate;
    }

    .subtitle-line-primary {
        color: $es-text-secondary;
    }

    .subtitle-line-secondary {
        color: $es-text-muted;
        font-size: 11px;
    }

    // Result columns (for product list view)
    .result-col {
        flex-shrink: 0;
        width: 70px;
        text-align: right;
        font-size: $es-font-size-xs;
    }

    .result-col-price {
        color: $es-text-secondary;
    }

    .result-col-sale {
        color: $es-danger;
        font-weight: $es-font-weight-semibold;
    }

    .result-col-stock {
        .col-value {
            &.stock-ok {
                color: $es-success;
            }

            &.stock-low {
                color: $es-warning;
            }

            &.stock-out {
                color: $es-danger;
            }
        }
    }

    .result-col-sales {
        color: $es-text-muted;
    }

    .col-value {
        display: block;
    }

    .result-item-checkbox,
    .result-checkbox {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 18px;
        height: 18px;
        border: 2px solid $es-border-dark;
        border-radius: $es-radius-sm;
        transition: all $es-transition-fast;

        i {
            display: none;
            font-size: 10px;
            color: $es-white;
        }

        .dropdown-result-item.selected &,
        .dropdown-item.selected & {
            background: $es-primary;
            border-color: $es-primary;

            i {
                display: block;
            }
        }
    }

    // Product-specific result item
    .result-item-product {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
    }

    // Combination-level search results ('both' mode)
    .dropdown-item.is-combination {
        padding-left: 28px;

        .result-name {
            font-size: 0.9em;
        }
    }

    .dropdown-item.is-parent-product {
        background: $es-slate-50;
        font-weight: $es-font-weight-medium;
    }

    // No results state
    .no-results {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xl;
        color: $es-text-muted;
        font-size: $es-font-size-sm;

        i {
            font-size: 1.25rem;
            opacity: 0.5;
        }
    }

    // Empty state
    .dropdown-empty {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xl;
        text-align: center;
        color: $es-text-muted;

        i {
            font-size: 2rem;
            opacity: 0.5;
        }

        p {
            margin: 0;
            font-size: $es-font-size-sm;
        }
    }

    // Loading state
    .dropdown-loading {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: $es-spacing-xl;
        color: $es-text-muted;

        i {
            font-size: 1.5rem;
            animation: spin 1s linear infinite;
        }
    }

    // Unified dropdown footer - combines load more and actions
    .dropdown-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: $es-spacing-md;
        padding: $es-spacing-sm $es-spacing-md;
        background: $es-slate-50;
        border-top: 1px solid $es-border-color;
        border-radius: 0 0 $es-radius-lg $es-radius-lg;
    }

    // Left side: load more controls
    .dropdown-footer-left {
        display: flex;
        align-items: center;
        gap: $es-spacing-xs;
        font-size: $es-font-size-xs;
        color: $es-text-muted;

        .load-label {
            color: $es-text-muted;
        }

        .load-more-select,
        select.load-more-select {
            appearance: none;
            padding: 0.25rem 1.5rem 0.25rem 0.5rem;
            border: 1px solid $es-border-color;
            border-radius: $es-radius-sm;
            background: $es-white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right 0.4rem center;
            background-size: 8px;
            font-size: $es-font-size-xs;
            color: $es-text-secondary;
            cursor: pointer;
            min-width: 55px;

            &:hover {
                border-color: $es-primary;
            }

            &:focus {
                outline: none;
                border-color: $es-primary;
            }
        }

        .remaining-text {
            color: $es-text-muted;

            strong {
                color: $es-text-secondary;
                font-weight: $es-font-weight-semibold;
            }
        }

        .btn-load-all {
            @include button-reset;
            padding: 0.25rem 0.5rem;
            font-size: $es-font-size-xs;
            color: $es-primary;
            background: transparent;
            border-radius: $es-radius-sm;
            transition: all $es-transition-fast;

            &:hover {
                background: $es-primary-light;
            }
        }
    }

    // Right side: action buttons
    .dropdown-footer-right {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
    }

    .dropdown-action-btn {
        @include button-reset;
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.375rem 0.75rem;
        font-size: $es-font-size-xs;
        font-weight: $es-font-weight-medium;
        border-radius: $es-radius-sm;
        transition: all $es-transition-fast;

        .btn-shortcut {
            font-size: 10px;
            padding: 0.125rem 0.25rem;
            background: rgba(0, 0, 0, 0.08);
            border-radius: 3px;
            font-weight: $es-font-weight-normal;
        }

        &.btn-cancel {
            color: $es-text-secondary;
            background: $es-white;
            border: 1px solid $es-border-color;

            &:hover {
                background: $es-slate-100;
                border-color: $es-border-dark;
            }
        }

        &.btn-apply,
        &.btn-save {
            color: $es-white;
            background: $es-primary;
            border: 1px solid $es-primary;

            &:hover {
                background: $es-primary-hover;
                border-color: $es-primary-hover;
            }

            .btn-shortcut {
                background: rgba(255, 255, 255, 0.2);
            }
        }
    }

    // Legacy support - hide old load more section when new footer exists
    .dropdown-load-more {
        display: none;
    }

    .load-more-controls {
        display: none;
    }

    // Filter panel
    .dropdown-filter-panel {
        padding: $es-spacing-md;
        background: $es-slate-50;
        border-bottom: 1px solid $es-border-color;
    }

    .filter-panel-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: $es-spacing-sm;
    }

    .filter-panel-title {
        font-size: $es-font-size-sm;
        font-weight: $es-font-weight-semibold;
        color: $es-text-primary;
    }

    .filter-panel-toggle {
        @include button-reset;
        font-size: $es-font-size-xs;
        color: $es-primary;

        &:hover {
            text-decoration: underline;
        }
    }

    .filter-panel-content {
        display: grid;
        gap: $es-spacing-sm;
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }

    .filter-group {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }

    .filter-label {
        font-size: $es-font-size-xs;
        font-weight: $es-font-weight-medium;
        color: $es-text-secondary;
    }

    .filter-select,
    .filter-input {
        @include input-base;
        padding: 0.375rem $es-spacing-sm;
        font-size: $es-font-size-xs;
    }
}

// Category tree view
.target-conditions-trait,
.entity-selector-trait {
    .category-tree {
        padding: $es-spacing-sm;
    }

    .tree-container {
        // Contains tree items
    }

    .tree-loading {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xl;
        color: $es-text-muted;
        font-size: $es-font-size-sm;

        i {
            animation: spin 0.6s linear infinite;
        }
    }

    // Tree item (used by JavaScript)
    .tree-item {
        display: flex;
        align-items: center;
        gap: $es-spacing-xs;
        padding: 0.375rem $es-spacing-sm;
        border-radius: $es-radius-sm;
        cursor: pointer;
        transition: background-color $es-transition-fast;

        &:hover {
            background: $es-bg-hover;
        }

        &.selected {
            background: $es-primary-light;

            .tree-checkbox {
                background: $es-primary;
                border-color: $es-primary;

                i {
                    display: block;
                }
            }
        }

        &.has-children {
            // Parent node styling
        }
    }

    // tree-toggle, btn-select-children, tree-checkbox, tree-icon styles in _tree.scss

    .tree-info {
        display: flex;
        align-items: center;
        gap: $es-spacing-xs;
        flex: 1;
        min-width: 0;
    }

    .tree-name {
        font-size: $es-font-size-sm;
        color: $es-text-primary;
        @include text-truncate;
    }

    .tree-subtitle {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
    }

    // Legacy category tree classes (for compatibility)
    .category-tree-item {
        padding: 0.25rem 0;
    }

    .category-tree-node {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xs $es-spacing-sm;
        border-radius: $es-radius-sm;
        cursor: pointer;
        transition: background-color $es-transition-fast;

        &:hover {
            background: $es-bg-hover;
        }

        &.selected {
            background: $es-primary-light;
        }
    }

    .category-tree-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 16px;
        height: 16px;
        color: $es-text-muted;
        transition: transform $es-transition-fast;

        &.expanded {
            transform: rotate(90deg);
        }

        &.empty {
            visibility: hidden;
        }
    }

    .category-tree-checkbox {
        flex-shrink: 0;
        width: 16px;
        height: 16px;
        border: 2px solid $es-border-dark;
        border-radius: 3px;
        transition: all $es-transition-fast;

        &.checked {
            background: $es-primary;
            border-color: $es-primary;

            &::after {
                content: '\2713';
                display: flex;
                align-items: center;
                justify-content: center;
                width: 100%;
                height: 100%;
                color: $es-white;
                font-size: 10px;
            }
        }

        &.indeterminate {
            background: $es-primary;
            border-color: $es-primary;

            &::after {
                content: '\2212';
                display: flex;
                align-items: center;
                justify-content: center;
                width: 100%;
                height: 100%;
                color: $es-white;
                font-size: 10px;
            }
        }
    }

    .category-tree-name {
        flex: 1;
        font-size: $es-font-size-sm;
        color: $es-text-primary;
        @include text-truncate;
    }

    .category-tree-count {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
    }

    .category-tree-children {
        margin-left: 24px;
    }

    // Search history
    .search-history-list {
        padding: $es-spacing-sm;
    }

    .history-item {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-sm;
        border-radius: $es-radius-sm;
        cursor: pointer;
        transition: background-color $es-transition-fast;

        &:hover {
            background: $es-bg-hover;
        }

        > i {
            color: $es-text-muted;
            font-size: 14px;
        }
    }

    .history-query {
        flex: 1;
        font-size: $es-font-size-sm;
        color: $es-text-primary;
    }

    .btn-delete-history {
        @include button-reset;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        color: $es-text-muted;
        border-radius: $es-radius-sm;
        opacity: 0;
        transition: all $es-transition-fast;

        .history-item:hover & {
            opacity: 1;
        }

        &:hover {
            background: $es-danger-light;
            color: $es-danger;
        }

        i {
            font-size: 12px;
        }
    }

    // Filter panel
    .filter-panel {
        display: none;
        padding: $es-spacing-md;
        background: $es-slate-50;
        border-bottom: 1px solid $es-border-color;

        &.show {
            display: block;
        }
    }

    .filter-row {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: $es-spacing-sm;
        margin-bottom: $es-spacing-sm;

        &:last-child {
            margin-bottom: 0;
        }
    }

    // View mode select
    .view-mode-select {
        @include input-base;
        padding: 0.25rem 0.5rem;
        font-size: $es-font-size-xs;
        min-width: 80px;
    }
}

// =============================================================================
// Global dropdown styles (when appended to body instead of inside wrapper)
// Duplicates key styles for when dropdown is outside .entity-selector-trait
// =============================================================================
body > .target-search-dropdown,
.target-search-dropdown {
    @include dropdown-container;
    display: none;
    width: 600px;
    max-width: calc(100vw - 40px);

    &.show {
        display: block;
    }

    // Dropdown header
    .dropdown-header {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-md;
        background: $es-bg-header;
        border-bottom: 1px solid $es-border-color;
        border-radius: $es-radius-lg $es-radius-lg 0 0;
        flex-wrap: wrap;
    }

    .results-count {
        font-size: $es-font-size-sm;
        font-weight: $es-font-weight-semibold;
        color: $es-text-primary;
        white-space: nowrap;
    }

    .dropdown-actions {
        display: flex;
        align-items: center;
        gap: $es-spacing-xs;
        flex-wrap: wrap;
        flex: 1;
        justify-content: flex-end;
    }

    .btn-select-all,
    .btn-clear-selection {
        @include button-reset;
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        font-size: $es-font-size-xs;
        color: $es-text-secondary;
        background: $es-white;
        border: 1px solid $es-border-color;
        border-radius: $es-radius-sm;
        cursor: pointer;
        transition: all $es-transition-fast;

        &:hover {
            background: $es-bg-hover;
            border-color: $es-slate-300;
        }

        kbd {
            font-size: 0.65rem;
            padding: 0.125rem 0.25rem;
            background: $es-slate-100;
            border-radius: 2px;
            color: $es-text-muted;
        }
    }

    .sort-controls {
        display: flex;
        align-items: center;
        // No gap - elements are connected
    }

    .sort-field-select {
        @include input-base;
        padding: 0.25rem 0.5rem;
        font-size: $es-font-size-xs;
        min-width: 80px;
        height: 28px;  // Match btn-sort-dir height
        border-radius: $es-radius-sm 0 0 $es-radius-sm;
        border-right: none;
    }

    .btn-sort-dir {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 38px;
        min-width: 38px;
        flex-shrink: 0;
        height: 28px;
        padding: 0;
        margin: 0;
        color: $es-text-muted;
        background: $es-white;
        border: 1px solid $es-border-color;
        border-radius: 0 $es-radius-sm $es-radius-sm 0;
        cursor: pointer;
        transition: all $es-transition-fast;

        i {
            font-size: 14px;
        }

        &:hover {
            background: $es-bg-hover;
            color: $es-text-primary;
        }

        &.active {
            background: $es-primary-light;
            border-color: $es-primary;
            color: $es-primary;
        }
    }

    .view-mode-select {
        @include input-base;
        padding: 0.25rem 0.5rem;
        font-size: $es-font-size-xs;
        min-width: 80px;
        margin-left: 0.25rem;
    }

    .btn-toggle-filters,
    .btn-show-history {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        min-width: 32px;
        flex-shrink: 0;
        height: 28px;
        padding: 0;
        margin: 0;
        color: $es-text-muted;
        background: $es-white;
        border: 1px solid $es-border-color;
        border-radius: $es-radius-sm;
        cursor: pointer;
        transition: all $es-transition-fast;

        i {
            font-size: 14px;
        }

        &:hover {
            background: $es-bg-hover;
            color: $es-text-primary;
        }

        &.active {
            background: $es-primary-light;
            border-color: $es-primary;
            color: $es-primary;
        }
    }

    .refine-compact {
        display: flex;
        align-items: center;
        // No gap - elements are connected

        // Connected to refine-input
        .btn-refine-negate {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 32px;
            min-width: 32px;
            flex-shrink: 0;
            height: 28px;
            padding: 0;
            margin: 0;
            color: $es-text-muted;
            background: $es-white;
            border: 1px solid $es-border-color;
            border-right: none;
            border-radius: $es-radius-sm 0 0 $es-radius-sm;
            cursor: pointer;
            transition: all $es-transition-fast;

            &:hover {
                background: $es-bg-hover;
                color: $es-text-primary;
            }

            &.active {
                background: $es-danger-light;
                color: $es-danger;
                border-color: $es-danger;
            }
        }

        .refine-input {
            @include input-base;
            width: 100px;
            padding: 0.25rem 0.5rem;
            font-size: $es-font-size-xs;
            border-radius: 0 $es-radius-sm $es-radius-sm 0;
        }

        .btn-clear-refine {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 28px;
            height: 28px;
            padding: 0;
            margin: 0;
            margin-left: -1px;  // Overlap input border when visible
            color: $es-text-muted;
            background: $es-white;
            border: 1px solid $es-border-color;
            border-radius: 0 $es-radius-sm $es-radius-sm 0;
            cursor: pointer;
            transition: all $es-transition-fast;

            &:hover {
                background: $es-bg-hover;
                color: $es-text-primary;
            }
        }
    }

    // Filter panel
    .filter-panel {
        display: none;
        padding: $es-spacing-md;
        background: $es-slate-50;
        border-bottom: 1px solid $es-border-color;

        &.show {
            display: block;
        }
    }

    .filter-row {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        flex-wrap: wrap;
        margin-bottom: $es-spacing-sm;

        &:last-child {
            margin-bottom: 0;
        }
    }

    .filter-label {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        font-size: $es-font-size-xs;
        color: $es-text-secondary;
        cursor: pointer;

        input[type="checkbox"] {
            margin: 0;
        }
    }

    .filter-price-range {
        display: flex;
        align-items: center;
        gap: 0.25rem;

        .filter-price-label {
            font-size: $es-font-size-xs;
            color: $es-text-muted;
        }

        .filter-price-min,
        .filter-price-max {
            @include input-base;
            width: 70px;
            padding: 0.25rem 0.5rem;
            font-size: $es-font-size-xs;
        }

        .filter-price-sep {
            color: $es-text-muted;
        }
    }

    .btn-clear-filters {
        @include button-reset;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        color: $es-text-muted;
        border-radius: $es-radius-sm;
        cursor: pointer;
        margin-left: auto;

        &:hover {
            background: $es-slate-200;
            color: $es-text-primary;
        }
    }

    // Multi-row filters
    .filter-row-multi {
        flex-direction: column;
        align-items: stretch;
        gap: $es-spacing-sm;
    }

    .filter-subrow {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        flex-wrap: wrap;
    }

    .filter-range-group,
    .filter-date-group,
    .filter-select-group {
        display: flex;
        align-items: center;
        gap: 0.25rem;
    }

    .filter-range-label,
    .filter-date-label,
    .filter-select-label,
    .filter-row-label {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
        white-space: nowrap;

        i {
            margin-right: 0.25rem;
        }
    }

    .filter-range-sep {
        color: $es-text-muted;
    }

    .filter-product-count-min,
    .filter-product-count-max,
    .filter-sales-min,
    .filter-sales-max,
    .filter-turnover-min,
    .filter-turnover-max,
    .filter-date-add-from,
    .filter-date-add-to,
    .filter-last-product-from,
    .filter-last-product-to {
        @include input-base;
        width: 70px;
        padding: 0.25rem 0.5rem;
        font-size: $es-font-size-xs;
    }

    .filter-depth-select,
    .filter-attribute-group-select,
    .filter-feature-group-select {
        @include input-base;
        padding: 0.25rem 0.5rem;
        font-size: $es-font-size-xs;
        min-width: 100px;
    }

    .filter-attributes-container,
    .filter-features-container,
    .filter-values-container {
        display: flex;
        flex-wrap: wrap;
        gap: 0.25rem;
    }

    // Filter group toggle buttons (attribute/feature groups)
    .filter-group-toggle {
        @include button-reset;
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        font-size: $es-font-size-xs;
        color: $es-text-secondary;
        background: $es-white;
        border: 1px solid $es-border-color;
        border-radius: $es-radius-sm;
        cursor: pointer;
        transition: all $es-transition-fast;

        &:hover {
            background: $es-bg-hover;
            border-color: $es-slate-300;
        }

        &.active {
            background: $es-primary-light;
            border-color: $es-primary;
            color: $es-primary;

            .toggle-count {
                color: $es-primary;
            }
        }

        &.has-selection {
            border-color: $es-success;
            background: rgba($es-success, 0.05);

            .toggle-count {
                color: $es-success;
                font-weight: $es-font-weight-semibold;
            }
        }

        .toggle-name {
            font-weight: $es-font-weight-medium;
        }

        .toggle-count {
            color: $es-text-muted;
            font-size: 0.65rem;
        }
    }

    // Filter value chips
    .filter-chip {
        @include button-reset;
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        font-size: $es-font-size-xs;
        color: $es-text-secondary;
        background: $es-slate-100;
        border: 1px solid transparent;
        border-radius: $es-radius-sm;
        cursor: pointer;
        transition: all $es-transition-fast;

        &:hover {
            background: $es-slate-200;
        }

        &.active {
            background: $es-primary;
            color: $es-white;
        }
    }

    // Filter attribute chip (specific)
    .filter-attr-chip,
    .filter-feat-chip {
        @extend .filter-chip;
    }

    // Filter row for values (expandable)
    .filter-row-values {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-sm;
        background: $es-white;
        border: 1px solid $es-border-color;
        border-radius: $es-radius-sm;

        .filter-values-container {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.25rem;
            flex: 1;
        }

        .filter-values-label {
            font-size: $es-font-size-xs;
            font-weight: $es-font-weight-semibold;
            color: $es-text-secondary;
            white-space: nowrap;
        }

        .btn-close-values {
            @include button-reset;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            width: 20px;
            height: 20px;
            color: $es-text-muted;
            border-radius: $es-radius-sm;

            &:hover {
                background: $es-slate-200;
                color: $es-text-primary;
            }
        }
    }

    // Filter chip name and count
    .chip-name {
        font-weight: $es-font-weight-medium;
    }

    .chip-count {
        font-size: 0.6rem;
        color: $es-text-muted;
        margin-left: 0.125rem;
    }

    .filter-chip.active .chip-count {
        color: rgba(255, 255, 255, 0.8);
    }

    // Filter chip wrapper (chip/toggle + preview button)
    .filter-chip-wrapper {
        display: inline-flex;
        align-items: stretch;
        border-radius: $es-radius-sm;
        overflow: hidden;

        // Left element gets left-only border-radius
        .filter-chip,
        .filter-group-toggle {
            border-radius: $es-radius-sm 0 0 $es-radius-sm;
        }

        // Preview eye button — unified for both value chips and group toggles
        .chip-preview-btn {
            @include button-reset;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0 0.375rem;
            font-size: 10px;
            color: $es-text-muted;
            background: $es-slate-100;
            border-left: 1px solid $es-border-color;
            border-radius: 0 $es-radius-sm $es-radius-sm 0;
            cursor: pointer;
            transition: all $es-transition-fast;

            &:hover {
                background: rgba($es-primary, 0.1);
                color: $es-primary;
            }

            &.popover-open {
                background: $es-primary;
                color: $es-white;
            }

            &.loading i {
                animation: spin 0.6s linear infinite;
            }
        }

        // When no preview button, restore full border-radius
        .filter-chip:last-child,
        .filter-group-toggle:last-child {
            border-radius: $es-radius-sm;
        }

        // Group toggle active/has-selection states propagate to wrapper border
        .filter-group-toggle.active + .chip-preview-btn {
            border-left-color: $es-primary;
            background: rgba($es-primary, 0.05);
        }

        .filter-group-toggle.has-selection + .chip-preview-btn {
            border-left-color: $es-success;
            background: rgba($es-success, 0.03);
        }
    }

    // Dropdown content
    .dropdown-content {
        max-height: 400px;
        overflow-y: auto;
        @include custom-scrollbar;
    }

    .dropdown-items {
        display: flex;
        flex-direction: column;
        gap: $es-spacing-xs;
        padding: $es-spacing-sm;
    }

    .item-checkbox {
        flex-shrink: 0;
        width: 16px;
        height: 16px;
        border: 2px solid $es-border-dark;
        border-radius: 3px;
        transition: all $es-transition-fast;

        .dropdown-item.selected & {
            background: $es-primary;
            border-color: $es-primary;
        }
    }

    .item-image {
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        object-fit: cover;
        border-radius: $es-radius-sm;
        background: $es-slate-100;
    }

    .item-info {
        flex: 1;
        min-width: 0;
    }

    .item-name {
        font-size: $es-font-size-sm;
        font-weight: $es-font-weight-medium;
        color: $es-text-primary;
        @include text-truncate;
    }

    .item-meta {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
        @include text-truncate;
    }

    // Dropdown footer - unified structure
    .dropdown-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: $es-spacing-md;
        padding: $es-spacing-sm $es-spacing-md;
        background: $es-slate-50;
        border-top: 1px solid $es-border-color;
        border-radius: 0 0 $es-radius-lg $es-radius-lg;
    }

    .dropdown-footer-left {
        display: flex;
        align-items: center;
        gap: $es-spacing-xs;
        font-size: $es-font-size-xs;
        color: $es-text-muted;

        .load-label {
            color: $es-text-muted;
        }

        .load-more-select,
        select.load-more-select {
            appearance: none;
            padding: 0.25rem 1.5rem 0.25rem 0.5rem;
            border: 1px solid $es-border-color;
            border-radius: $es-radius-sm;
            background: $es-white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right 0.4rem center;
            background-size: 8px;
            font-size: $es-font-size-xs;
            color: $es-text-secondary;
            cursor: pointer;
            min-width: 55px;

            &:hover {
                border-color: $es-primary;
            }

            &:focus {
                outline: none;
                border-color: $es-primary;
            }
        }

        .remaining-text {
            color: $es-text-muted;

            strong {
                color: $es-text-secondary;
                font-weight: $es-font-weight-semibold;
            }
        }
    }

    .dropdown-footer-right {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
    }

    .dropdown-action-btn {
        @include button-reset;
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.375rem 0.75rem;
        font-size: $es-font-size-xs;
        font-weight: $es-font-weight-medium;
        border-radius: $es-radius-sm;
        transition: all $es-transition-fast;
        white-space: nowrap;

        .btn-shortcut {
            font-size: 10px;
            padding: 0.125rem 0.25rem;
            background: rgba(0, 0, 0, 0.08);
            border-radius: 3px;
            font-weight: $es-font-weight-normal;
        }

        &.btn-cancel {
            color: $es-text-secondary;
            background: $es-white;
            border: 1px solid $es-border-color;

            &:hover {
                background: $es-slate-100;
                border-color: $es-border-dark;
            }
        }

        &.btn-apply,
        &.btn-save {
            color: $es-white;
            background: $es-primary;
            border: 1px solid $es-primary;

            &:hover {
                background: $es-primary-hover;
                border-color: $es-primary-hover;
            }

            .btn-shortcut {
                background: rgba(255, 255, 255, 0.2);
            }
        }
    }

    .dropdown-footer-info {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
    }

    // Legacy button support
    .btn-cancel-dropdown {
        @include button-reset;
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.375rem 0.75rem;
        font-size: $es-font-size-sm;
        color: $es-white;
        background: $es-primary;
        border: 1px solid $es-primary;
        border-radius: $es-radius-sm;
        cursor: pointer;

        &:hover {
            background: $es-primary-hover;
            border-color: $es-primary-hover;
        }

        i {
            font-size: 10px;
        }

        kbd {
            font-size: 0.65rem;
            padding: 0.125rem 0.25rem;
            background: rgba(255, 255, 255, 0.2);
            border-radius: 2px;
            color: rgba(255, 255, 255, 0.8);
        }
    }

    // Filter chips in dropdown
    .filter-chips-row {
        display: flex;
        flex-wrap: wrap;
        gap: $es-spacing-xs;
        padding: $es-spacing-xs $es-spacing-md;
        border-bottom: 1px solid $es-border-color;
    }

    .filter-chip {
        @include chip;
    }

    // Empty and loading states
    .dropdown-empty,
    .dropdown-loading {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: $es-spacing-xl;
        text-align: center;
        color: $es-text-muted;
        font-size: $es-font-size-sm;

        i {
            font-size: 2rem;
            opacity: 0.5;
            margin-bottom: $es-spacing-sm;
        }
    }

    // Search history panel
    .search-history-panel {
        display: none;
        padding: $es-spacing-sm;
        background: $es-white;
        border-bottom: 1px solid $es-border-color;

        &.show {
            display: block;
        }
    }

    .history-item {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xs $es-spacing-sm;
        border-radius: $es-radius-sm;
        cursor: pointer;
        transition: background $es-transition-fast;

        &:hover {
            background: $es-bg-hover;
        }

        i {
            color: $es-text-muted;
            font-size: $es-font-size-sm;
        }

        span {
            flex: 1;
            font-size: $es-font-size-sm;
            color: $es-text-primary;
        }

        .btn-remove-history,
        .btn-delete-history {
            @include button-reset;
            display: flex;
            align-items: center;
            justify-content: center;
            width: 20px;
            height: 20px;
            color: $es-text-muted;
            border-radius: $es-radius-sm;
            transition: all $es-transition-fast;

            &:hover {
                background: $es-slate-200;
                color: $es-danger;
            }
        }
    }

    // Search history list container
    .search-history-list {
        display: flex;
        flex-direction: column;
        gap: $es-spacing-xs;
    }

    // Results header (for list view columns)
    .results-header {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xs $es-spacing-md;
        background: $es-slate-100;
        border-bottom: 1px solid $es-border-color;
        font-size: $es-font-size-xs;
        font-weight: $es-font-weight-semibold;
        color: $es-text-secondary;

        .header-spacer {
            width: 58px; // checkbox + image width
            flex-shrink: 0;
        }

        .header-col {
            flex-shrink: 0;
            width: 70px;
            text-align: right;
        }

        .header-col-name {
            flex: 1;
            text-align: left;
        }
    }

    // Results container
    .dropdown-results {
        padding: 0 $es-spacing-sm;
        background: $es-white;
        min-height: 200px;
    }

    // Dropdown item (search result)
    .dropdown-item {
        position: relative;
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-sm 0;
        background: $es-white;
        border: none;
        border-bottom: 1px solid $es-border-color;
        border-radius: 0;
        cursor: pointer;
        transition: background $es-transition-fast;

        &:last-child {
            border-bottom: none;
        }

        &:hover {
            background: $es-bg-hover;
        }

        &.selected {
            background: $es-primary-light;

            .result-checkbox {
                background: $es-primary;
                border-color: $es-primary;
                color: $es-white;

                i {
                    display: block;
                }
            }
        }

        &.disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }
    }

    // Checkbox indicator
    .result-checkbox {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 18px;
        height: 18px;
        background: $es-white;
        border: 2px solid $es-border-dark;
        border-radius: 3px;
        transition: all $es-transition-fast;

        i {
            display: none;
            font-size: 10px;
        }
    }

    // View mode classes (applied to dropdown container) - no gap/padding for shared borders
    &.view-cols-2 .dropdown-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }
    &.view-cols-3 .dropdown-results { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }
    &.view-cols-4 .dropdown-results { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }
    &.view-cols-5 .dropdown-results { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }
    &.view-cols-6 .dropdown-results { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }
    &.view-cols-7 .dropdown-results { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }
    &.view-cols-8 .dropdown-results { display: grid; grid-template-columns: repeat(8, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }

    // Grid view item styling (compact cards with shared borders)
    &.view-cols-2,
    &.view-cols-3,
    &.view-cols-4,
    &.view-cols-5,
    &.view-cols-6,
    &.view-cols-7,
    &.view-cols-8 {
        .dropdown-item {
            flex-direction: column;
            align-items: center;
            text-align: center;
            padding: $es-spacing-sm;
            border: none;
            border-right: 1px solid $es-border-color;
            border-bottom: 1px solid $es-border-color;
            border-radius: 0;

            .result-checkbox {
                position: absolute;
                top: $es-spacing-xs;
                left: $es-spacing-xs;
            }

            .result-image,
            .result-icon {
                width: 48px;
                height: 48px;
                margin-bottom: $es-spacing-xs;
            }

            .result-info {
                width: 100%;
            }

            .result-name {
                font-size: $es-font-size-xs;
                line-height: 1.3;
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
                overflow: hidden;
            }

            .result-subtitle {
                display: none;
            }

            // Show compact product info in grid
            .result-col {
                display: none;
            }

            .result-grid-info {
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
                gap: 0.25rem;
                margin-top: $es-spacing-xs;
                font-size: 0.65rem;

                .grid-price {
                    color: $es-text-primary;
                    font-weight: $es-font-weight-semibold;
                }

                .grid-stock {
                    color: $es-text-muted;

                    &.stock-out { color: $es-danger; }
                    &.stock-low { color: $es-warning; }
                }

                .grid-discount {
                    color: $es-success;
                    font-weight: $es-font-weight-medium;
                }
            }
        }

        // Hide results header in grid views
        .results-header {
            display: none;
        }
    }

    // Remove right border from last item in each row (per column count)
    &.view-cols-2 .dropdown-results .dropdown-item:nth-child(2n) { border-right: none; }
    &.view-cols-3 .dropdown-results .dropdown-item:nth-child(3n) { border-right: none; }
    &.view-cols-4 .dropdown-results .dropdown-item:nth-child(4n) { border-right: none; }
    &.view-cols-5 .dropdown-results .dropdown-item:nth-child(5n) { border-right: none; }
    &.view-cols-6 .dropdown-results .dropdown-item:nth-child(6n) { border-right: none; }
    &.view-cols-7 .dropdown-results .dropdown-item:nth-child(7n) { border-right: none; }
    &.view-cols-8 .dropdown-results .dropdown-item:nth-child(8n) { border-right: none; }

    // Smaller items for higher column counts
    &.view-cols-5,
    &.view-cols-6,
    &.view-cols-7,
    &.view-cols-8 {
        .dropdown-item {
            .result-image,
            .result-icon {
                width: 40px;
                height: 40px;
            }

            .result-name {
                font-size: 0.65rem;
            }
        }
    }

    // Product-specific result item
    .result-item-product {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        flex: 1;
        min-width: 0;
    }

    .result-item-image,
    .result-image {
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        overflow: hidden;
        border-radius: $es-radius-sm;
        background: $es-slate-100;

        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
    }

    .result-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        background: $es-slate-100;
        border-radius: $es-radius-sm;
        color: $es-text-muted;

        i {
            font-size: 16px;
        }
    }

    .result-item-info,
    .result-info {
        flex: 1;
        min-width: 0;
    }

    .result-item-name,
    .result-name {
        font-size: $es-font-size-sm;
        font-weight: $es-font-weight-medium;
        color: $es-text-primary;
        @include text-truncate;
    }

    .result-item-meta,
    .result-subtitle {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
    }

    .subtitle-line {
        @include text-truncate;
    }

    .subtitle-line-primary {
        color: $es-text-secondary;
    }

    .subtitle-line-secondary {
        color: $es-text-muted;
        font-size: 11px;
    }

    // Result columns (for product list view)
    .result-col {
        flex-shrink: 0;
        width: 70px;
        text-align: right;
        font-size: $es-font-size-xs;
    }

    .result-col-price {
        color: $es-text-secondary;
    }

    .result-col-sale {
        color: $es-danger;
        font-weight: $es-font-weight-semibold;
    }

    .result-col-stock {
        .col-value {
            &.stock-ok {
                color: $es-success;
            }

            &.stock-low {
                color: $es-warning;
            }

            &.stock-out {
                color: $es-danger;
            }
        }
    }

    .result-col-sales {
        color: $es-text-muted;
    }

    .col-value {
        display: block;
    }

    // Result checkbox
    .result-item-checkbox,
    .result-checkbox {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 18px;
        height: 18px;
        border: 2px solid $es-border-dark;
        border-radius: $es-radius-sm;
        transition: all $es-transition-fast;

        i {
            display: none;
            font-size: 10px;
            color: $es-white;
        }

        .dropdown-result-item.selected &,
        .dropdown-item.selected & {
            background: $es-primary;
            border-color: $es-primary;

            i {
                display: block;
            }
        }
    }

    // No results state
    .no-results {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xl;
        color: $es-text-muted;
        font-size: $es-font-size-sm;

        i {
            font-size: 1.25rem;
            opacity: 0.5;
        }
    }

    // Load more controls
    .load-more-controls {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-sm $es-spacing-md;
        font-size: $es-font-size-xs;
        color: $es-text-muted;

        .load-more-label,
        .load-more-of {
            white-space: nowrap;
        }

        .remaining-count {
            font-weight: $es-font-weight-semibold;
            color: $es-text-secondary;
        }

        .load-more-select {
            @include input-base;
            padding: 0.25rem 0.5rem;
            font-size: $es-font-size-xs;
            min-width: 60px;
        }

        .btn-load-more {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: $es-spacing-xs;
            margin: 0;
            border: none;
            color: $es-primary;
            background: $es-primary-light !important;
            border-radius: $es-radius-sm;
            cursor: pointer;
            transition: all $es-transition-fast;
            font: inherit;

            i {
                font-size: 14px;
            }

            &:hover {
                background: rgba($es-primary, 0.2) !important;
            }
        }
    }

    // Load more button
    .dropdown-load-more {
        display: flex;
        justify-content: center;
        padding: $es-spacing-md;
        border-top: 1px solid $es-border-color;

        .load-more-btn {
            @include button-reset;
            display: inline-flex;
            align-items: center;
            gap: $es-spacing-xs;
            padding: $es-spacing-sm $es-spacing-md;
            font-size: $es-font-size-sm;
            font-weight: $es-font-weight-medium;
            color: $es-primary;
            background: $es-primary-light;
            border-radius: $es-radius-md;
            transition: all $es-transition-fast;

            &:hover {
                background: rgba($es-primary, 0.2);
            }

            &.loading {
                opacity: 0.7;
                cursor: wait;
            }
        }
    }

    // Dropdown body
    .dropdown-body {
        max-height: 400px;
        overflow-y: auto;
        @include custom-scrollbar;
    }

    // Tree view styles (for categories)
    .tree-container {
        padding: $es-spacing-sm;
    }

    .tree-loading {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xl;
        color: $es-text-muted;
        font-size: $es-font-size-sm;

        i {
            animation: spin 0.6s linear infinite;
        }
    }

    .tree-item {
        display: flex;
        align-items: center;
        gap: $es-spacing-xs;
        padding: 0.375rem $es-spacing-sm;
        border-radius: $es-radius-sm;
        cursor: pointer;
        transition: background-color $es-transition-fast;

        &:hover {
            background: $es-bg-hover;
        }

        &.selected {
            background: $es-primary-light;

            .tree-checkbox {
                background: $es-primary;
                border-color: $es-primary;

                i {
                    display: block;
                }
            }
        }
    }

    // tree-toggle, btn-select-children, tree-checkbox, tree-icon styles in _tree.scss

    .tree-info {
        display: flex;
        align-items: center;
        gap: $es-spacing-xs;
        flex: 1;
        min-width: 0;
    }

    .tree-name {
        font-size: $es-font-size-sm;
        color: $es-text-primary;
        @include text-truncate;
    }

    .tree-subtitle {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
    }
}

// ============================================================================
// Standalone dropdown styles (for when dropdown is appended to body)
// These selectors work because .target-search-dropdown is on the dropdown itself
// ============================================================================

.target-search-dropdown {
    // Results container - scrollable
    .dropdown-results {
        max-height: 400px;
        overflow-y: auto;
        padding: 0 $es-spacing-sm;
        @include custom-scrollbar;
    }

    // Results header (for list view columns)
    .results-header {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: $es-spacing-xs $es-spacing-md;
        background: $es-slate-100;
        border-bottom: 1px solid $es-border-color;
        font-size: $es-font-size-xs;
        font-weight: $es-font-weight-semibold;
        color: $es-text-secondary;

        .header-spacer {
            width: 58px; // checkbox + image width
            flex-shrink: 0;
        }

        .header-col {
            flex-shrink: 0;
            width: 70px;
            text-align: right;
        }

        .header-col-name {
            flex: 1;
            text-align: left;
        }
    }

    // Hide results-header by default, show only for products in list view
    &:not(.view-list) .results-header,
    &.view-tree .results-header {
        display: none;
    }

    // Result item for products
    .result-item-product {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        flex: 1;
        min-width: 0;
    }

    // Result columns for product data
    .result-col {
        flex-shrink: 0;
        width: 70px;
        text-align: right;
        font-size: $es-font-size-xs;
    }

    .result-col-price {
        color: $es-text-secondary;
    }

    .result-col-sale {
        color: $es-danger;
        font-weight: $es-font-weight-semibold;
    }

    .result-col-stock {
        .col-value {
            &.stock-ok { color: $es-success; }
            &.stock-low { color: $es-warning; }
            &.stock-out { color: $es-danger; }
        }
    }

    .result-col-sales {
        color: $es-text-muted;
    }

    // Dropdown item styling
    .dropdown-item {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        padding: 0;
        border: none;
        border-bottom: 1px solid $es-border-color;
        border-radius: 0;
        cursor: pointer;
        transition: background-color $es-transition-fast;

        &:last-child {
            border-bottom: none;
        }

        &:hover {
            background: $es-bg-hover;
        }

        &.selected {
            background: $es-primary-light;
        }
    }

    // Result checkbox styling
    .result-checkbox {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 18px;
        height: 18px;
        border: 2px solid $es-border-dark;
        border-radius: 3px;
        transition: all $es-transition-fast;

        i {
            font-size: 10px;
            color: transparent;
        }

        .dropdown-item.selected & {
            background: $es-primary;
            border-color: $es-primary;

            i {
                color: $es-white;
            }
        }
    }

    // Result image
    .result-image {
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        overflow: hidden;
        border-radius: $es-radius-sm;
        background: $es-slate-100;

        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
    }

    // Result icon (for non-image entities)
    .result-icon {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        background: $es-slate-100;
        border-radius: $es-radius-sm;

        i {
            font-size: 16px;
            color: $es-text-muted;
        }
    }

    // Result info container
    .result-info {
        flex: 1;
        min-width: 0;
    }

    .result-name {
        font-size: $es-font-size-sm;
        font-weight: $es-font-weight-medium;
        color: $es-text-primary;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .result-subtitle {
        font-size: $es-font-size-xs;
        color: $es-text-muted;
    }

    .subtitle-line {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .subtitle-line-primary {
        color: $es-text-secondary;
    }

    .subtitle-line-secondary {
        color: $es-text-muted;
        font-size: 11px;
    }

    // Hide columns in grid/tree views
    &[class*="view-cols-"] .result-col,
    &.view-tree .result-col {
        display: none;
    }

    // Entity search box - full width
    .entity-search-box {
        display: flex;
        align-items: center;
        gap: $es-spacing-sm;
        width: 100%;
        padding: $es-spacing-sm $es-spacing-md;
        background: $es-white;
        border: none;
        border-bottom: 1px solid $es-border-color;
        border-radius: 0;

        .entity-search-icon {
            color: $es-text-muted;
            flex-shrink: 0;
            margin-left: $es-spacing-xs;
        }

        // Override Bootstrap/parent form input styles
        input.entity-search-input,
        input.entity-search-input[type="text"] {
            flex: 1;
            min-width: 0;
            width: auto !important;
            max-width: none !important;
            height: auto;
            padding: 0;
            margin: 0;
            border: none !important;
            outline: none;
            background: transparent !important;
            font-size: $es-font-size-sm;
            color: $es-text-primary;
            box-shadow: none !important;

            &::placeholder {
                color: $es-text-muted;
            }

            &:focus {
                border: none !important;
                box-shadow: none !important;
                outline: none;
            }
        }

        .search-loading {
            color: $es-text-muted;
        }
    }
}

// Body-level dropdown (when appended to body for z-index)
body > .target-search-dropdown {
    // Override dropdown-item border when inside body-appended dropdown
    .dropdown-item {
        border: none;
        border-radius: 0;

        &:not(:last-child) {
            border-bottom: 1px solid $es-border-color;
        }
    }
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
