/* ==========================================================================
   search.css — страница результатов поиска (Meilisearch + FTS fallback)
   ========================================================================== */

/* ── Search input ── */
    .search-hero {
        background: linear-gradient(135deg, var(--uv-bg-warm) 0%, var(--uv-surface) 100%);
        border-radius: var(--uv-radius-2xl);
        padding: 2rem 2rem 1.75rem;
        margin-bottom: 1.5rem;
        border: 1px solid var(--uv-border-light);
    }
    .search-hero h1 {
        font-size: var(--uv-fs-h1);
        font-weight: var(--uv-fw-bold);
        color:var(--uv-text-dark);
        margin-bottom: 1rem;
        letter-spacing: -0.02em;
    }
    .search-input-row {
        display: flex;
        align-items: stretch;
        gap: 8px;
        max-width: 640px;
    }
    .search-input-wrap {
        position: relative;
        flex: 1;
    }
    .search-input-wrap .bi-search {
        position: absolute;
        left: 16px;
        top: 50%;
        transform: translateY(-50%);
        font-size: var(--uv-fs-h4);
        color: var(--uv-text-muted);
        pointer-events: none;
        z-index: 2;
    }
    .search-input-wrap input[type="text"] {
        width: 100%;
        box-sizing: border-box;
        padding: 0.85rem 1rem 0.85rem 2.85rem;
        font-size: var(--uv-fs-h4);
        border: 2px solid var(--uv-border);
        border-radius: var(--uv-radius-xl);
        background: var(--uv-surface);
        color:var(--uv-text-dark);
        transition: border-color var(--uv-duration-base), box-shadow var(--uv-duration-base);
    }
    .search-input-wrap input[type="text"]:focus {
        outline: none;
        border-color: var(--uv-primary);
        box-shadow: var(--uv-shadow-focus);
    }
    .search-input-wrap input[type="text"]::placeholder {
        color: var(--uv-text-hint);
    }
    .btn-search {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 1.35rem;
        min-height: 48px;
        font-size: var(--uv-fs-small);
        font-weight: var(--uv-fw-semibold);
        border-radius: var(--uv-radius-xl);
        background: var(--uv-primary);
        color: var(--uv-text-inverse);
        border: none;
        cursor: pointer;
        white-space: nowrap;
        flex-shrink: 0;
        transition: background var(--uv-duration-base);
        letter-spacing: 0.01em;
    }
    .btn-search:hover {
        background: var(--uv-primary-dark);
    }

    /* ── Suggest dropdown ── */
    .search-suggest-dropdown {
        position: absolute;
        top: 100%;
        width: 100%;
        left: 0;
    }

    /* ── Results header ── */
    .search-results-header {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        margin-bottom: 1.25rem;
        padding-bottom: 0.75rem;
        border-bottom: 2px solid var(--uv-border-light);
    }
    .search-results-header .query-text {
        font-size: var(--uv-fs-h4);
        font-weight: var(--uv-fw-semibold);
        color:var(--uv-text-dark);
    }
    .search-results-header .result-count {
        font-size: var(--uv-fs-small);
        font-weight: var(--uv-fw-semibold);
        background: var(--uv-border-light);
        color: var(--uv-text-muted);
        padding: 0.2rem 0.65rem;
        border-radius: var(--uv-radius-3xl);
        white-space: nowrap;
    }

    /* ── Result items ── */
    .search-result-item {
        padding: 1rem 0;
        border-bottom: 1px solid var(--uv-border-light);
        transition: background var(--uv-duration-fast);
    }
    .search-result-item:hover {
        background: var(--uv-bg-warm);
        margin: 0 -0.75rem;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
        border-radius: var(--uv-radius-md);
    }
    .search-result-item:last-child {
        border-bottom: none;
    }
    .search-result-meta {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        margin-bottom: 0.3rem;
    }
    .search-type-badge {
        display: inline-flex;
        align-items: center;
        gap: 0.3rem;
        font-size: var(--uv-fs-xs);
        font-weight: var(--uv-fw-semibold);
        text-transform: uppercase;
        letter-spacing: 0.04em;
        padding: 0.15rem 0.55rem;
        border-radius: var(--uv-radius-sm);
        color: var(--uv-text-inverse);
    }
    .search-type-badge i {
        font-size: var(--uv-fs-xs);
    }
    .search-result-date {
        font-size: var(--uv-fs-xs);
        color: var(--uv-text-muted);
    }
    .search-result-title {
        font-size: var(--uv-fs-h4);
        font-weight: var(--uv-fw-semibold);
        line-height: var(--uv-lh-base);
        margin-bottom: 0.2rem;
    }
    .search-result-title a {
        color:var(--uv-text-dark);
        text-decoration: none;
        transition: color var(--uv-duration-fast);
    }
    .search-result-title a:hover {
        color: var(--uv-primary);
    }
    .search-result-snippet {
        font-size: var(--uv-fs-small);
        color: var(--uv-text-dim);
        line-height: var(--uv-lh-base);
        margin: 0;
    }

    /* ── Type badge colors ── */
    .search-type-articles { background: #3b7dd8; }
    .search-type-news { background: #d84c4c; }
    .search-type-digest { background: #7b5ea7; }
    .search-type-companies { background: #2c8c6f; }
    .search-type-press { background: #c97b2e; }
    .search-type-announcements { background: #5a9aba; }
    .search-type-albums { background: #d46a9f; }
    .search-type-assay { background: #4a7c59; }
    .search-type-brands { background: var(--uv-primary); }
    .search-type-blogs { background: #7a6e5f; }
    .search-type-books { background: #6b5b3e; }
    .search-type-expo { background: #d47c3e; }
    .search-type-franchises { background: #4c8da8; }
    .search-type-vacancies { background: #5b7a3e; }
    .search-type-resumes { background: #8c6b5a; }
    .search-type-practical { background: #3e6b8c; }
    .search-type-questions { background: #8c5a7a; }
    .search-type-regulations { background: #5a6b8c; }
    .search-type-seminars { background: #8c7a3e; }
    .search-type-videos { background: #8c3e5a; }
    .search-type-default { background: #7a7a7a; }

    /* ── Query highlight ── */
    .search-highlight {
        background: rgba(var(--uv-primary-rgb), 0.1);
        color: var(--uv-primary-hover);
        padding: 0.05em 0.2em;
        border-radius: var(--uv-radius-xs);
    }

    /* ── Empty state ── */
    .search-empty-state {
        text-align: center;
        padding: 3rem 1rem;
    }
    .search-empty-state .bi {
        font-size: 3rem;
        color: var(--uv-border);
        margin-bottom: 1rem;
        display: block;
    }
    .search-empty-state h3 {
        font-size: var(--uv-fs-h4);
        font-weight: var(--uv-fw-semibold);
        color: var(--uv-text);
        margin-bottom: 0.5rem;
    }
    .search-empty-state p {
        font-size: var(--uv-fs-small);
        color: var(--uv-text-muted);
        max-width: 380px;
        margin: 0 auto;
    }

    /* ── Tabs ── */
    .search-tabs {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        padding-bottom: 1rem;
        margin-bottom: 1.25rem;
    }
    .search-tab {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        padding: 0.4rem 0.85rem;
        font-size: var(--uv-fs-small);
        font-weight: var(--uv-fw-medium);
        color: var(--uv-text-dim);
        background: var(--uv-bg-warm);
        border: 1px solid var(--uv-border-light);
        border-radius: var(--uv-radius-3xl);
        text-decoration: none;
        white-space: nowrap;
        transition: all var(--uv-duration-fast);
    }
    .search-tab:hover {
        background: var(--uv-border-light);
        color: var(--uv-text-dark);
        text-decoration: none;
    }
    .search-tab-active {
        background: var(--uv-primary);
        color: var(--uv-text-inverse);
        border-color: var(--uv-primary);
    }
    .search-tab-active:hover {
        background: var(--uv-primary-dark);
        color: var(--uv-text-inverse);
    }
    .search-tab-count {
        font-size: var(--uv-fs-xs);
        font-weight: var(--uv-fw-semibold);
        opacity: 0.75;
    }

    /* ── Sort + Period toolbar ── */
    .search-toolbar {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem 1.5rem;
        margin-bottom: 1rem;
        padding-bottom: 0.75rem;
        border-bottom: 1px solid var(--uv-border-light);
        align-items: center;
    }
    .search-toolbar-group {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.35rem;
    }
    .search-toolbar-label {
        font-size: var(--uv-fs-small);
        color: var(--uv-text-muted);
        margin-right: 0.1rem;
        white-space: nowrap;
    }
    .search-toolbar-btn {
        padding: 0.25rem 0.7rem;
        font-size: var(--uv-fs-small);
        font-weight: var(--uv-fw-medium);
        color: var(--uv-text-dim);
        background: transparent;
        border: 1px solid var(--uv-border-light);
        border-radius: var(--uv-radius-sm);
        cursor: pointer;
        transition: all var(--uv-duration-fast);
        white-space: nowrap;
    }
    .search-toolbar-btn:hover {
        background: var(--uv-bg-warm);
        color: var(--uv-text-dark);
    }
    .search-toolbar-btn-active {
        background: var(--uv-primary);
        color: var(--uv-text-inverse);
        border-color: var(--uv-primary);
    }
    .search-toolbar-btn-active:hover {
        background: var(--uv-primary-dark);
        color: var(--uv-text-inverse);
    }

    /* ── Infinite scroll ── */
    .search-scroll-sentinel {
        padding: 1.5rem 0;
        text-align: center;
    }
    .search-scroll-loader {
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        font-size: var(--uv-fs-small);
        color: var(--uv-text-muted);
    }
    .search-scroll-end {
        text-align: center;
        padding: 1.25rem 0;
        font-size: var(--uv-fs-small);
        color: var(--uv-text-hint);
        border-top: 1px solid var(--uv-border-light);
        margin-top: 0.5rem;
    }

    /* ── Skeleton loader ── */
    .search-skeleton-item {
        padding: 1rem 0;
        border-bottom: 1px solid var(--uv-border-light);
    }
    .search-skeleton-bar {
        height: 1em;
        background: linear-gradient(90deg, var(--uv-border-light) 25%, var(--uv-border-light) 50%, var(--uv-border-light) 75%);
        background-size: 200% 100%;
        animation: skeleton-pulse var(--uv-anim-loop) ease-in-out infinite;
        border-radius: var(--uv-radius-xs);
        margin-bottom: 0.5rem;
    }
    .search-skeleton-bar-short { width: 30%; }
    .search-skeleton-bar-medium { width: 60%; }
    .search-skeleton-bar-long { width: 90%; }

    @keyframes skeleton-pulse {
        0% { background-position: 200% 0; }
        100% { background-position: -200% 0; }
    }

    @media (max-width: 575.98px) {
        .search-hero {
            padding: 1.25rem 1rem 1rem;
            border-radius: var(--uv-radius-xl);
        }
        .search-hero h1 {
            font-size: var(--uv-fs-h1-mobile);
        }
        .search-input-wrap input[type="text"] {
            font-size: var(--uv-fs-body);
            padding: 0.75rem 1rem 0.75rem 2.5rem;
        }
        .search-result-title {
            font-size: var(--uv-fs-body);
        }
    }
