/* FantMap catalog stylesheet extracted from resources/views/books/index.blade.php */
.fm-catalog {
            display: grid;
            gap: 22px;
        }

        .fm-catalog-hero {
            position: relative;
            overflow: hidden;
            border: 1px solid rgba(216, 173, 99, .18);
            border-radius: 28px;
            padding: clamp(26px, 4vw, 46px);
            background:
                radial-gradient(circle at 78% 26%, rgba(216,173,99,.24), transparent 220px),
                radial-gradient(circle at 28% 8%, rgba(99,167,255,.10), transparent 330px),
                linear-gradient(135deg, rgba(8,17,26,.98), rgba(13,27,41,.92));
            box-shadow: 0 24px 70px rgba(0,0,0,.30);
        }

        .fm-catalog-hero::after {
            content: "";
            position: absolute;
            inset: 0;
            opacity: .22;
            pointer-events: none;
            background:
                radial-gradient(circle at 68% 34%, rgba(216,173,99,.80) 0 2px, transparent 3px),
                radial-gradient(circle at 80% 48%, rgba(99,167,255,.45) 0 1px, transparent 2px),
                linear-gradient(128deg, transparent 0 54%, rgba(216,173,99,.12) 55%, transparent 56%);
            background-size: 260px 180px, 280px 180px, 100% 100%;
        }

        .fm-catalog-hero > * {
            position: relative;
            z-index: 1;
        }

        .fm-catalog-kicker {
            margin-bottom: 12px;
            color: var(--gold);
            font-size: 13px;
            font-weight: 900;
            letter-spacing: .16em;
            text-transform: uppercase;
        }

        .fm-catalog-hero h1 {
            max-width: 820px;
            margin: 0 0 14px;
            color: #fff4df;
            font-size: clamp(34px, 4.5vw, 58px);
            letter-spacing: -.04em;
        }

        .fm-catalog-hero p {
            max-width: 760px;
            margin: 0;
            color: #c8d4df;
            font-size: 16px;
        }

        .fm-catalog-search {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: 10px;
            margin-top: 24px;
        }

        .fm-catalog-search input,
        .fm-filter-field select,
        .fm-filter-field input,
        .fm-searchable-input {
            width: 100%;
            border: 1px solid rgba(190,217,255,.14);
            background: rgba(5,11,18,.58);
            color: var(--text);
            padding: 0 12px;
            outline: none;
        }

        .fm-catalog-search input,
        .fm-filter-field select,
        .fm-filter-field input {
            min-height: 42px;
            border-radius: 12px;
        }

        .fm-catalog-search input {
            min-height: 52px;
            border-radius: 14px;
            padding: 0 18px;
            font-size: 15px;
        }

        .fm-catalog-search input:focus,
        .fm-filter-field select:focus,
        .fm-filter-field input:focus {
            border-color: rgba(216,173,99,.45);
            box-shadow: 0 0 0 3px rgba(216,173,99,.10);
        }

        .fm-catalog-search button,
        .fm-filter-actions button {
            border: 0;
            background: linear-gradient(135deg, #d8ad63, #b9853e);
            color: #130f09;
            font-weight: 900;
            cursor: pointer;
        }

        .fm-catalog-search button {
            min-height: 52px;
            border-radius: 14px;
            padding: 0 24px;
        }

        .fm-format-tabs {
            display: flex;
            flex-wrap: wrap;
            gap: 9px;
            margin-top: 18px;
        }

        .fm-format-tabs a,
        .fm-filter-format-option,
        .fm-filter-actions a {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border: 1px solid rgba(190,217,255,.16);
            background: rgba(255,255,255,.045);
            color: #dbe6f0;
            font-weight: 900;
        }

        .fm-format-tabs a {
            min-height: 38px;
            padding: 0 15px;
            font-size: 14px;
        }

        .fm-format-tabs a:hover,
        .fm-filter-title a:hover,
        .fm-filter-format-option:hover,
        .fm-filter-format-option.active,
        .fm-filter-actions a:hover {
            border-color: rgba(216,173,99,.40);
            color: var(--gold);
        }

        .fm-quick-filters {
            margin-top: 18px;
            max-width: 980px;
        }

        .fm-quick-filter-items,
        .fm-quick-topics-menu,
        .fm-card-meta,
        .fm-format-badges,
        .fm-card-actions,
        .fm-active-filters {
            display: flex;
            flex-wrap: wrap;
        }

        .fm-quick-filter-items {
            gap: 10px;
            align-items: center;
        }

        .fm-quick-filter {
            min-height: 36px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 7px;
            border: 1px solid rgba(190,217,255,.18);
            border-radius: 10px;
            background: rgba(5,11,18,.52);
            color: #dce7f1;
            padding: 0 14px;
            font-size: 13px;
            font-weight: 900;
            line-height: 1;
            white-space: nowrap;
            box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
        }

        .fm-quick-filter:hover,
        .fm-quick-filter.active {
            border-color: rgba(216,173,99,.55);
            background: rgba(216,173,99,.13);
            color: var(--gold);
        }

        .fm-quick-filter-system {
            border-color: rgba(216,173,99,.24);
        }

        .fm-quick-filter-more {
            margin-left: 2px;
            border-color: rgba(216,173,99,.42);
            background: rgba(216,173,99,.10);
            color: #f0d5a0;
        }

        .fm-quick-filter-more::after {
            content: "›";
            font-size: 18px;
            line-height: 1;
            transform: translateY(-1px);
        }

        .fm-quick-topics-dropdown {
            display: inline-flex;
        }

        .fm-quick-topics-dropdown > summary,
        .fm-filter-details > summary,
        .fm-filter-section > summary {
            list-style: none;
            cursor: pointer;
        }

        .fm-quick-topics-dropdown > summary::-webkit-details-marker,
        .fm-filter-details > summary::-webkit-details-marker,
        .fm-filter-section > summary::-webkit-details-marker {
            display: none;
        }

        .fm-quick-topics-dropdown[open] {
            display: block;
            flex-basis: 100%;
            width: 100%;
        }

        .fm-quick-topics-dropdown[open] > summary {
            width: fit-content;
        }

        .fm-quick-topics-dropdown[open] > summary::after {
            content: "↑";
            font-size: 14px;
            margin-left: 6px;
            transform: none;
        }

        .fm-quick-topics-menu {
            width: 100%;
            max-width: 760px;
            gap: 7px;
            margin-top: 10px;
            border: 1px solid rgba(216,173,99,.18);
            border-radius: 14px;
            background: rgba(5,11,18,.48);
            padding: 10px;
        }

        .fm-catalog-layout {
            display: grid;
            grid-template-columns: 286px minmax(0, 1fr);
            gap: 18px;
            align-items: start;
            overflow: visible;
        }

        .fm-filter-panel {
            position: relative;
            z-index: 2000;
            overflow: visible;
            border: 1px solid rgba(190,217,255,.13);
            border-radius: 20px;
            padding: 18px;
            background:
                radial-gradient(circle at top right, rgba(216,173,99,.10), transparent 170px),
                rgba(13,23,34,.82);
            box-shadow: 0 18px 52px rgba(0,0,0,.24);
        }

        .fm-filter-title {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            align-items: center;
            margin-bottom: 16px;
        }

        .fm-filter-title strong {
            color: #fff4df;
            font-size: 18px;
        }

        .fm-filter-title a {
            color: var(--muted);
            font-size: 13px;
        }

        .fm-filter-form,
        .fm-filter-section-body,
        .fm-filter-checks,
        .fm-book-list,
        .fm-card-body,
        .fm-catalog-results,
        .fm-filter-field {
            display: grid;
        }

        .fm-filter-form {
            gap: 12px;
            overflow: visible;
        }

        .fm-filter-field {
            gap: 6px;
            overflow: visible;
        }

        .fm-filter-field label {
            color: #d6e0ea;
            font-size: 13px;
            font-weight: 800;
        }

        .fm-filter-format-options {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 8px;
        }

        .fm-filter-format-option {
            min-height: 38px;
            border-radius: 12px;
            font-size: 13px;
            text-align: center;
        }

        .fm-filter-divider {
            margin: 8px 0 -2px;
            color: rgba(216,173,99,.94);
            font-size: 12px;
            font-weight: 950;
            letter-spacing: .08em;
            text-transform: uppercase;
        }

        .fm-filter-section {
            border: 0;
            border-top: 1px solid rgba(190,217,255,.10);
            border-radius: 0;
            background: transparent;
            padding-top: 2px;
            overflow: visible;
        }

        .fm-filter-section > summary {
            min-height: 38px;
            justify-content: space-between;
            padding: 0;
            color: rgba(216,173,99,.95);
            font-size: 12px;
            font-weight: 950;
            letter-spacing: .08em;
            text-transform: uppercase;
        }


        .fm-filter-section-body {
            gap: 12px;
            padding: 0 0 12px;
            overflow: visible;
        }

        .fm-filter-row-2 {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 8px;
        }

        .fm-filter-checks {
            gap: 8px;
        }

        .fm-filter-check {
            min-height: 36px;
            display: flex;
            align-items: center;
            gap: 9px;
            border: 1px solid rgba(190,217,255,.11);
            border-radius: 12px;
            background: rgba(5,11,18,.28);
            color: #dce7f1;
            padding: 0 10px;
            font-size: 13px;
            font-weight: 800;
            cursor: pointer;
        }

        .fm-filter-check:hover {
            border-color: rgba(216,173,99,.28);
            color: #f0d5a0;
        }

        .fm-filter-check input {
            width: auto;
            min-height: auto;
            accent-color: #d8ad63;
        }

        .fm-searchable-select,
        .fm-multiselect {
            overflow: visible;
            z-index: 20;
        }

        .fm-multiselect {
            position: relative;
        }

        .fm-searchable-select.open,
        .fm-multiselect.open,
        .fm-filter-field:focus-within {
            z-index: 99999;
        }

        .fm-searchable-select-native,
        .fm-multiselect-native {
            display: none !important;
        }

        .fm-searchable-list,
        .fm-multiselect-list {
            position: absolute;
            left: 0;
            right: 0;
            top: calc(100% + 6px);
            z-index: 100000;
            max-height: 280px;
            overflow-y: auto;
            border: 1px solid rgba(216,173,99,.30);
            background: #071018;
            padding: 6px;
            display: none;
        }

        .fm-searchable-list[hidden],
        .fm-searchable-select:not(.open) .fm-searchable-list,
        .fm-multiselect:not(.open) .fm-multiselect-list {
            display: none !important;
        }

        .fm-searchable-select.open .fm-searchable-list:not([hidden]),
        .fm-multiselect.open .fm-multiselect-list {
            display: grid;
            gap: 4px;
        }

        .fm-searchable-option,
        .fm-multiselect-option {
            width: 100%;
            min-height: 34px;
            display: flex;
            align-items: center;
            border: 0;
            background: transparent;
            color: #dce7f1;
            padding: 0 9px;
            text-align: left;
            cursor: pointer;
            font-size: 13px;
            font-weight: 700;
        }

        .fm-searchable-option:hover,
        .fm-searchable-option.active,
        .fm-multiselect-option:hover,
        .fm-multiselect-option.active {
            background: rgba(216,173,99,.12);
            color: var(--gold);
        }

        .fm-searchable-empty {
            padding: 9px;
            color: var(--muted);
            font-size: 13px;
        }

        .fm-multiselect-control {
            display: grid;
            gap: 8px;
            border: 1px solid rgba(190,217,255,.14);
            background: rgba(5,11,18,.58);
            padding: 8px;
        }

        .fm-multiselect-input {
            min-height: 34px;
            border: 0;
            border-radius: 8px;
            background: rgba(255,255,255,.045);
            color: var(--text);
            outline: none;
            padding: 0 10px;
            font-size: 14px;
        }

        .fm-multiselect-selected {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            max-height: 112px;
            overflow-y: auto;
        }

        .fm-multiselect-selected:empty {
            display: none;
        }

        .fm-multiselect-chip {
            min-height: 26px;
            display: inline-flex;
            align-items: center;
            gap: 6px;
            border: 1px solid rgba(216,173,99,.28);
            background: rgba(216,173,99,.10);
            color: #eed6a9;
            padding: 0 8px;
            font-size: 12px;
            font-weight: 800;
        }

        .fm-multiselect-chip-text {
        }

        .fm-multiselect-chip button {
            border: 0;
            background: transparent;
            color: inherit;
            cursor: pointer;
            font-size: 14px;
            font-weight: 900;
            line-height: 1;
            padding: 0;
        }

        .fm-filter-actions {
            display: grid;
            gap: 10px;
            margin-top: 4px;
        }

        .fm-filter-actions button,
        .fm-filter-actions a {
            min-height: 42px;
            border-radius: 12px;
            font-size: 14px;
        }

        .fm-catalog-results {
            position: relative;
            z-index: 1;
            gap: 16px;
            scroll-margin-top: 92px;
        }

        .fm-results-head {
            display: flex;
            justify-content: space-between;
            align-items: end;
            gap: 16px;
        }

        .fm-results-head h2 {
            margin: 0;
            color: #fff4df;
            font-size: 26px;
            line-height: 1.1;
        }

        .fm-results-head p,
        .fm-result-count {
            color: var(--muted);
        }

        .fm-results-head p {
            margin: 4px 0 0;
        }

        .fm-result-count {
            white-space: nowrap;
            font-size: 14px;
        }

        .fm-active-filters {
            gap: 8px;
        }

        .fm-active-filters a,
        .fm-active-filters span {
            min-height: 30px;
            display: inline-flex;
            align-items: center;
            border: 1px solid rgba(216,173,99,.25);
            background: rgba(216,173,99,.08);
            color: #eed6a9;
            padding: 0 10px;
            font-size: 13px;
            font-weight: 700;
        }

        .fm-book-list {
            gap: 14px;
        }

        .fm-catalog-card {
            display: grid;
            grid-template-columns: 112px minmax(0, 1fr);
            gap: 16px;
            border: 1px solid rgba(190,217,255,.13);
            border-radius: 20px;
            padding: 14px;
            background:
                radial-gradient(circle at top right, rgba(99,167,255,.08), transparent 180px),
                rgba(13,23,34,.82);
            box-shadow: 0 18px 48px rgba(0,0,0,.20);
        }

        .fm-catalog-card:hover {
            border-color: rgba(216,173,99,.34);
        }

        .fm-card-cover {
            position: relative;
            aspect-ratio: 3 / 4;
            border-radius: 14px;
            overflow: hidden;
            background:
                radial-gradient(circle at top, rgba(216,173,99,.20), transparent 150px),
                linear-gradient(145deg, #152536, #071018);
        }

        .fm-card-cover img {
            position: absolute;
            inset: 0;
            z-index: 2;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .fm-card-cover-placeholder {
            position: absolute;
            inset: 0;
            z-index: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 5px;
            padding: 9px;
            text-align: center;
            background:
                radial-gradient(circle at 50% 22%, rgba(216,173,99,.18), transparent 120px),
                linear-gradient(145deg, #132233, #071018);
        }

        .fm-card-cover-placeholder span {
            width: 26px;
            height: 26px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border: 1px solid rgba(216,173,99,.34);
            border-radius: 999px;
            color: var(--gold);
            background: rgba(216,173,99,.08);
            font-size: 12px;
        }

        .fm-card-cover-placeholder strong {
            max-width: 100%;
            color: #f3d59a;
            font-size: 11px;
            font-weight: 900;
            line-height: 1.15;
        }

        .fm-card-cover-placeholder small {
            color: var(--muted);
            font-size: 10px;
            font-weight: 700;
        }

        .fm-card-body {
            min-width: 0;
            gap: 9px;
            align-content: start;
        }

        .fm-card-title {
            color: #f3f7fb;
            font-size: 20px;
            line-height: 1.2;
        }

        .fm-card-title:hover {
            color: var(--gold);
        }

        .fm-card-meta {
            gap: 7px;
        }

        .fm-card-meta a,
        .fm-card-meta span {
            min-height: 28px;
            display: inline-flex;
            align-items: center;
            border: 1px solid rgba(190,217,255,.14);
            background: rgba(255,255,255,.045);
            color: #dce7f1;
            padding: 0 10px;
            font-size: 13px;
        }

        .fm-card-description {
            color: #aebdcb;
            font-size: 14px;
            line-height: 1.5;
        }

        .fm-format-badges {
            gap: 7px;
        }

        .fm-format-badge {
            min-height: 26px;
            display: inline-flex;
            align-items: center;
            padding: 0 9px;
            font-size: 12px;
            font-weight: 900;
            text-transform: uppercase;
        }

        .fm-format-audio {
            color: #d7ccff;
            background: rgba(155,124,246,.18);
            border: 1px solid rgba(155,124,246,.30);
        }

        .fm-format-text {
            color: #bff4d3;
            background: rgba(88,201,139,.15);
            border: 1px solid rgba(88,201,139,.28);
        }

        .fm-card-actions {
            gap: 9px;
            margin-top: 2px;
        }

        .fm-card-actions a {
            min-height: 34px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 10px;
            padding: 0 12px;
            font-size: 13px;
            font-weight: 900;
        }

        .fm-card-open {
            background: rgba(216,173,99,.12);
            border: 1px solid rgba(216,173,99,.30);
            color: #f0d5a0;
        }

        .fm-card-action {
            background: rgba(255,255,255,.045);
            border: 1px solid rgba(190,217,255,.13);
            color: #dce7f1;
        }

        .fm-empty {
            border: 1px dashed rgba(190,217,255,.18);
            border-radius: 18px;
            padding: 26px;
            background: rgba(13,23,34,.62);
            color: var(--muted);
        }

        .fm-filter-toggle-text {
            display: none;
        }

        @media (min-width: 981px) {
            .fm-filter-details > .fm-filter-title {
                cursor: default;
            }
        }

        @media (max-width: 980px) {
            .fm-catalog-layout {
                gap: 14px;
            }

            .fm-filter-panel {
                position: static;
                overflow: hidden;
            }

            .fm-filter-title {
                min-height: 54px;
                margin: 0;
                padding: 0 16px;
            }

            .fm-filter-toggle-text {
                min-height: 30px;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                border: 1px solid rgba(216,173,99,.28);
                border-radius: 999px;
                color: var(--gold);
                padding: 0 10px;
                font-size: 12px;
                font-weight: 900;
            }

            .fm-filter-toggle-text::before {
                content: "Открыть";
            }

            .fm-filter-details[open] .fm-filter-toggle-text::before {
                content: "Скрыть";
            }

            .fm-filter-form {
                padding: 0 16px 16px;
            }

            .fm-catalog-search,
            .fm-filter-actions {
                grid-template-columns: 1fr;
            }

            .fm-catalog-search button {
                width: 100%;
            }

            .fm-results-head {
                align-items: start;
                flex-direction: column;
            }

            .fm-catalog-hero {
                padding: 24px 18px;
                border-radius: 22px;
            }

            .fm-catalog-hero h1 {
                font-size: 32px;
            }

            .fm-format-tabs {
                gap: 7px;
            }

            .fm-format-tabs a {
                min-height: 34px;
                padding: 0 11px;
                font-size: 12px;
            }

            .fm-results-head h2 {
                font-size: 23px;
            }
        }

        @media (max-width: 760px) {
            .fm-quick-filters {
                display: none;
            }
        }

        @media (max-width: 640px) {
            .fm-catalog-search input,
            .fm-catalog-search button {
                min-height: 46px;
            }

            .fm-catalog-card {
                grid-template-columns: 82px minmax(0, 1fr);
                gap: 12px;
                padding: 12px;
            }

            .fm-card-cover {
                border-radius: 12px;
            }

            .fm-card-title {
                font-size: 16px;
                line-height: 1.2;
            }

            .fm-card-description {
                display: none;
            }

            .fm-card-meta a,
            .fm-card-meta span {
                min-height: 24px;
                padding: 0 8px;
                font-size: 12px;
            }

            .fm-format-badges {
                gap: 5px;
            }

            .fm-format-badge {
                min-height: 22px;
                padding: 0 7px;
                font-size: 10px;
            }

            .fm-card-actions {
                gap: 6px;
            }

            .fm-card-actions a {
                min-height: 30px;
                padding: 0 9px;
            }
        }
        /* FANTMAP FILTER FIELD WIDTH SOURCE OF TRUTH START
           Защита ширины полей фильтра:
           - multiselect не раздувает левый sidebar;
           - searchable-select остаётся в пределах колонки;
           - выпадающие списки не вылезают по горизонтали;
           - длинные option/chip-тексты режутся или переносятся внутри поля.

           Важно:
           - визуал крестиков searchable вынесен отдельно в
             FANTMAP SEARCHABLE CLEAR VISUAL SOURCE OF TRUTH;
           - визуал chips вынесен отдельно в
             FANTMAP MULTISELECT CHIPS VISUAL SOURCE OF TRUTH.
        */

        .fm-filter-panel,
        .fm-filter-panel * {
            box-sizing: border-box;
        }

        .fm-filter-panel,
        .fm-filter-field,
        .fm-filter-field > *,
        .fm-multiselect,
        .fm-multiselect-control,
        .fm-multiselect-selected,
        .fm-searchable-select {
            min-width: 0 !important;
            max-width: 100% !important;
        }

        .fm-multiselect,
        .fm-multiselect-control,
        .fm-searchable-select {
            width: 100% !important;
        }

        .fm-multiselect-control {
            grid-template-columns: minmax(0, 1fr) !important;
            overflow: hidden !important;
        }

        .fm-multiselect-input {
            width: 100% !important;
            min-width: 0 !important;
            max-width: 100% !important;
        }

        .fm-multiselect-selected {
            width: 100% !important;
            overflow: hidden !important;
        }

        .fm-multiselect-chip {
            min-width: 0 !important;
            max-width: 100% !important;
            flex: 0 1 auto !important;
        }

        .fm-multiselect-chip-text {
            min-width: 0 !important;
            max-width: calc(100% - 24px) !important;
            overflow: hidden !important;
            text-overflow: ellipsis !important;
            white-space: nowrap !important;
        }

        .fm-multiselect-list {
            width: 100% !important;
            min-width: 0 !important;
            max-width: 100% !important;
            overflow-x: hidden !important;
        }

        .fm-multiselect-option {
            min-width: 0 !important;
            max-width: 100% !important;
            white-space: normal !important;
            overflow-wrap: anywhere !important;
            word-break: break-word !important;
        }


                /* FANTMAP FILTER FIELD WIDTH SOURCE OF TRUTH END */

        /* FANTMAP SEARCHABLE CLEAR VISUAL SOURCE OF TRUTH START */
        .fm-searchable-select {
            position: relative !important;
        }

        .fm-searchable-select.has-clear .fm-searchable-input {
            padding-right: 36px !important;
        }

        .fm-searchable-clear {
            position: absolute !important;
            top: 50% !important;
            right: 12px !important;
            z-index: 100002 !important;

            width: 20px !important;
            height: 20px !important;

            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;

            border: 0 !important;
            border-radius: 0 !important;
            background: transparent !important;
            box-shadow: none !important;

            color: rgba(190,217,255,.58) !important;
            cursor: pointer !important;

            font-size: 18px !important;
            font-weight: 600 !important;
            line-height: 1 !important;
            padding: 0 !important;

            transform: translateY(-50%) !important;
            opacity: .78 !important;
        }

        .fm-searchable-clear:hover {
            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            color: rgba(246,211,145,.96) !important;
            opacity: .96 !important;
        }

        .fm-searchable-clear:focus {
            outline: none !important;
            box-shadow: none !important;
        }

        .fm-searchable-clear[hidden] {
            display: none !important;
        }
        /* FANTMAP SEARCHABLE CLEAR VISUAL SOURCE OF TRUTH END */

        /* FANTMAP MULTISELECT CHIPS VISUAL SOURCE OF TRUTH START */
        /*
           Единый визуал multiselect-полей «Теги» и
           «Исключить теги»:

           - поле не раздувает sidebar;
           - chips имеют компактную высоту;
           - длинный текст обрезается многоточием;
           - крестик остаётся доступным;
           - список вариантов имеет отдельный scrollbar;
           - исключаемые теги визуально вторичны.
        */

        .fm-filter-field .fm-multiselect {
            width: 100% !important;
            max-width: 100% !important;
            min-width: 0 !important;
        }

        .fm-filter-field .fm-multiselect-control {
            width: 100% !important;
            max-width: 100% !important;
            min-width: 0 !important;

            display: grid !important;
            grid-template-columns: minmax(0, 1fr) !important;
            gap: 7px !important;

            padding: 10px 10px 9px !important;
            overflow: hidden !important;

            border-color: rgba(190,217,255,.13) !important;
            background: rgba(5,11,18,.50) !important;
        }

        .fm-filter-field .fm-multiselect-input {
            width: 100% !important;
            max-width: 100% !important;
            min-width: 0 !important;

            height: 30px !important;
            min-height: 30px !important;

            padding: 0 !important;
            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;

            color: var(--text) !important;
        }

        .fm-filter-field .fm-multiselect-selected {
            width: 100% !important;
            max-width: 100% !important;
            min-width: 0 !important;

            display: flex !important;
            flex-wrap: wrap !important;
            align-items: flex-start !important;
            align-content: flex-start !important;
            gap: 6px !important;

            max-height: 116px !important;
            overflow-y: auto !important;
            overflow-x: hidden !important;

            padding: 0 0 2px 0 !important;
            margin: 0 !important;

            scrollbar-width: none !important;
            scrollbar-color: auto !important;
            scrollbar-gutter: auto !important;
            -ms-overflow-style: none !important;
        }
.fm-filter-field .fm-multiselect-selected:empty {
            display: none !important;
            max-height: 0 !important;
            padding: 0 !important;
            margin: 0 !important;
            overflow: hidden !important;
        }

        .fm-filter-field .fm-multiselect-chip {
            max-width: 100% !important;
            min-width: 0 !important;

            height: 24px !important;
            min-height: 24px !important;

            display: inline-flex !important;
            align-items: center !important;

            flex: 0 0 auto !important;

            padding: 0 8px !important;
            border-radius: 999px !important;

            border: 1px solid rgba(216,173,99,.22) !important;
            background: rgba(216,173,99,.075) !important;
            color: #ead3a8 !important;

            font-size: 12px !important;
            font-weight: 700 !important;
            line-height: 1 !important;

            white-space: nowrap !important;
            overflow: hidden !important;
        }

        .fm-filter-field .fm-multiselect-chip:hover {
            border-color: rgba(216,173,99,.34) !important;
            background: rgba(216,173,99,.105) !important;
        }

        .fm-filter-field .fm-multiselect-chip-text {
            min-width: 0 !important;
            max-width: 205px !important;

            overflow: hidden !important;
            text-overflow: ellipsis !important;
            white-space: nowrap !important;
        }

        .fm-filter-field .fm-multiselect-chip button {
            flex: 0 0 auto !important;

            width: 14px !important;
            height: 14px !important;

            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;

            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;

            color: rgba(238,214,169,.78) !important;
            font-size: 13px !important;
            font-weight: 900 !important;
            line-height: 1 !important;

            padding: 0 !important;
            opacity: .85 !important;
        }

        .fm-filter-field .fm-multiselect-chip button:hover {
            color: #ffffff !important;
            opacity: 1 !important;
        }

        .fm-filter-field .fm-multiselect-list {
            width: 100% !important;
            max-width: 100% !important;
            min-width: 0 !important;

            overflow-x: hidden !important;

            scrollbar-width: thin !important;
            scrollbar-color: rgba(216,173,99,.45) rgba(255,255,255,.045) !important;
        }

        .fm-filter-field .fm-multiselect-list::-webkit-scrollbar {
            width: 7px !important;
        }

        .fm-filter-field .fm-multiselect-list::-webkit-scrollbar-track {
            background: rgba(255,255,255,.045) !important;
            border-radius: 999px !important;
        }

        .fm-filter-field .fm-multiselect-list::-webkit-scrollbar-thumb {
            background: rgba(216,173,99,.38) !important;
            border-radius: 999px !important;
        }

        .fm-filter-field .fm-multiselect-option {
            min-width: 0 !important;
            max-width: 100% !important;

            white-space: normal !important;
            overflow-wrap: anywhere !important;
            word-break: break-word !important;
        }

        /*
           “Исключить теги” визуально делаем чуть спокойнее,
           чтобы он не конкурировал с основными тегами.
        */
        .fm-multiselect:has(#catalog-exclude-tag) .fm-multiselect-chip {
            border-color: rgba(190,217,255,.16) !important;
            background: rgba(190,217,255,.055) !important;
            color: rgba(220,231,241,.86) !important;
        }

        .fm-multiselect:has(#catalog-exclude-tag) .fm-multiselect-chip:hover {
            border-color: rgba(190,217,255,.25) !important;
            background: rgba(190,217,255,.08) !important;
        }

        /* FANTMAP MULTISELECT CHIPS VISUAL SOURCE OF TRUTH END */

        /* FANTMAP MULTISELECT CHIP COUNT SOURCE OF TRUTH START */
        /*
           Визуал количества книг внутри chip:

           - счётчик отделён от названия;
           - контраст ниже основного текста;
           - hover слегка повышает читаемость;
           - исключаемые теги остаются визуально спокойнее.
        */

        .fm-filter-field .fm-multiselect-chip {
            gap: 5px !important;
        }

        .fm-filter-field .fm-multiselect-chip-count {
            margin-left: 2px !important;

            color: rgba(238,214,169,.46) !important;
            font-size: 10.5px !important;
            font-weight: 600 !important;
            line-height: 1 !important;

            opacity: .72 !important;
            transform: translateY(.3px) !important;
        }

        .fm-filter-field .fm-multiselect-chip:hover .fm-multiselect-chip-count {
            color: rgba(238,214,169,.62) !important;
            opacity: .9 !important;
        }

        .fm-multiselect:has(#catalog-exclude-tag) .fm-multiselect-chip-count {
            color: rgba(220,231,241,.40) !important;
            opacity: .68 !important;
        }

        .fm-multiselect:has(#catalog-exclude-tag) .fm-multiselect-chip:hover .fm-multiselect-chip-count {
            color: rgba(220,231,241,.56) !important;
            opacity: .85 !important;
        }
                /* FANTMAP MULTISELECT CHIP COUNT SOURCE OF TRUTH END */

        /* FANTMAP PAGINATION SOURCE OF TRUTH START */
        /*
           Пагинация каталога:
           - заменяет дефолтный Laravel/Tailwind-визуал;
           - держит единый стиль кнопок страниц;
           - скрывает лишние svg-иконки дефолтной пагинации.
        */

.fm-pagination {
            margin-top: 28px;
            padding: 18px 0 8px;
        }

        .fm-pagination-list {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 8px;
        }

        .fm-page-btn,
        .fm-page-dots {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 36px;
            height: 36px;
            padding: 0 13px;
            border: 1px solid rgba(216,173,99,.22);
            border-radius: 10px;
            background: rgba(13,24,34,.78);
            color: rgba(239,231,213,.88);
            font-size: 13px;
            font-weight: 800;
            line-height: 1;
            text-decoration: none;
        }

        .fm-page-btn:hover {
            border-color: rgba(216,173,99,.55);
            background: rgba(216,173,99,.16);
            color: #f6d991;
        }

        .fm-page-btn-active {
            border-color: rgba(216,173,99,.78);
            background: linear-gradient(180deg, rgba(224,183,99,.96), rgba(179,125,45,.96));
            color: #111820;
            cursor: default;
        }

        .fm-page-btn-disabled {
            opacity: .42;
            cursor: not-allowed;
        }

        .fm-page-dots {
            min-width: 28px;
            padding: 0 8px;
            border-color: transparent;
            background: transparent;
            color: rgba(239,231,213,.45);
        }

        .fm-pagination-summary {
            margin-top: 10px;
            color: rgba(203,213,225,.62);
            font-size: 13px;
        }

        .fm-pagination svg {
            display: none !important;
            width: 0 !important;
            height: 0 !important;
        }


        
        /* FANTMAP PAGINATION SOURCE OF TRUTH END */
/* FANTMAP FILTER SECTION DIVIDERS SOURCE OF TRUTH START */
        /*
           Разделители внутренних секций фильтра:
           - Детали;
           - Тип и статус;
           - Исключить теги.
           Значение оставлено от финальной визуальной настройки.
        */

        .fm-filter-panel .fm-filter-section,
        .fm-filter-details .fm-filter-section,
        .fm-catalog-layout .fm-filter-section {
            border-bottom-color: rgba(148, 163, 184, .22) !important;
        }
        /* FANTMAP FILTER SECTION DIVIDERS SOURCE OF TRUTH END */

/* FANTMAP FILTER MICRO TYPOGRAPHY SOURCE OF TRUTH START */
        /*
           Микротипографика desktop-фильтра:
           - уменьшает лишний зазор перед первой раскрывающейся секцией;
           - делает подписи Жанр / Теги подчинёнными заголовку ТЕМАТИКА;
           - делает подписи внутри секций спокойнее;
           - делает текст checkbox-строк чуть тише, без потери читаемости.
        */

        .fm-filter-form label[for="catalog-genre"],
        .fm-filter-form label[for="catalog-tag"],
        .fm-filter-form label[for="catalog-tags"] {
            font-size: 12px !important;
            font-weight: 650 !important;
            color: rgba(226, 232, 240, .68) !important;
            letter-spacing: .005em !important;
        }

        .fm-filter-section-body .fm-filter-field > label {
            font-size: 12px !important;
            font-weight: 650 !important;
            color: rgba(226, 232, 240, .68) !important;
            letter-spacing: .005em !important;
        }

        .fm-filter-section-body .fm-filter-check span {
            font-size: 12.5px !important;
            font-weight: 700 !important;
            color: rgba(226, 232, 240, .78) !important;
            letter-spacing: .002em !important;
        }

        .fm-filter-section-body .fm-filter-check:hover span {
            color: rgba(246, 211, 145, .9) !important;
        }
        /* FANTMAP FILTER MICRO TYPOGRAPHY SOURCE OF TRUTH END */

/* FANTMAP FILTER COMPACT DENSITY START
           Компактная плотность desktop-фильтра:
           - меньше вертикальные отступы
           - компактнее кнопки фильтра
           - аккуратнее multiselect-поля
           - выбранные теги не раздувают sidebar

           CSS-правила ниже сохранены без изменения значений.
        
           Desktop-фильтр:
           - уплотнение примерно на 5–8%
           - дизайн не меняем
           - цвета / фон / рамки / логику фильтров не трогаем
           - цель: меньше вертикальной тяжести sticky-панели
        */

        @media (min-width: 981px) {
            .fm-catalog-layout > .fm-filter-panel,
            .fm-catalog-layout > .fm-filter-details,
            .fm-catalog-layout > .fm-filter-panel.fm-filter-details {
                padding: 16px !important;
            }

            .fm-filter-field label {
                font-size: 12.5px !important;
            }

            .fm-filter-field select,
            .fm-filter-field input,
            .fm-searchable-input {
                min-height: 40px !important;
            }

            .fm-filter-format-option {
                min-height: 36px !important;
            }

            .fm-filter-section {
                padding-top: 1px !important;
            }

            .fm-filter-section > summary {
                min-height: 35px !important;
            }

            .fm-filter-row-2 {
                gap: 7px !important;
            }

            .fm-filter-checks {
                gap: 7px !important;
            }

            .fm-filter-check {
                min-height: 34px !important;
                padding-left: 9px !important;
                padding-right: 9px !important;
            }

            .fm-filter-actions button,
            .fm-filter-actions a {
                min-height: 40px !important;
            }

            .fm-filter-field .fm-multiselect-control {
                padding: 8px 10px !important;
                gap: 6px !important;
            }

            .fm-filter-field .fm-multiselect-input {
                height: 29px !important;
                min-height: 29px !important;
            }

            .fm-filter-field .fm-multiselect-selected {
                max-height: 104px !important;
            }
        }

        /* FANTMAP FILTER COMPACT DENSITY END */

        /* FANTMAP FILTER SECTION STACK SPACING SOURCE OF TRUTH START */
        /*
           Вертикальная стыковка блока "ТЕМАТИКА" с первой раскрывающейся секцией.
           Убираем лишний воздух между полем "Теги" и строкой "ДЕТАЛИ".
           Не трогаем высоту всех остальных секций, поля, стрелки, multiselect и JS.
        */

        .fm-filter-form > details.fm-filter-section:first-of-type {
            margin-top: 1px !important;
        }

        @media (max-width: 980px) {
            .fm-filter-form > details.fm-filter-section:first-of-type {
                margin-top: -6px !important;
            }
        }
        /* FANTMAP FILTER SECTION STACK SPACING SOURCE OF TRUTH END */
/* FANTMAP FILTER LAYOUT SOURCE OF TRUTH START
           Единый источник правды для /books:
           - desktop: нормальная grid-сетка, левый фильтр sticky
           - фильтр имеет внутреннюю прокрутку, scrollbar скрыт
           - кнопки фильтра не sticky и не перекрывают поля
           - mobile: фильтр обычный, без sticky
        */

        @media (min-width: 981px) {
            .fm-catalog-layout {
                display: grid !important;
                grid-template-columns: 286px minmax(0, 1fr) !important;
                gap: 18px !important;
                align-items: start !important;
                position: relative !important;
                min-height: 0 !important;
                overflow: visible !important;
            }

            .fm-catalog-layout > .fm-filter-panel,
            .fm-catalog-layout > .fm-filter-details,
            .fm-catalog-layout > .fm-filter-panel.fm-filter-details {
                position: sticky !important;
                top: 84px !important;
                align-self: start !important;
                z-index: 40 !important;

                width: auto !important;
                max-height: calc(100vh - 104px) !important;

                overflow-y: auto !important;
                overflow-x: hidden !important;
                overscroll-behavior: contain !important;

                scrollbar-width: none !important;
                -ms-overflow-style: none !important;
            }

            .fm-catalog-layout > .fm-filter-panel::-webkit-scrollbar,
            .fm-catalog-layout > .fm-filter-details::-webkit-scrollbar,
            .fm-catalog-layout > .fm-filter-panel.fm-filter-details::-webkit-scrollbar {
                width: 0 !important;
                height: 0 !important;
                display: none !important;
            }

            .fm-catalog-layout > .fm-filter-panel::-webkit-scrollbar-track,
            .fm-catalog-layout > .fm-filter-details::-webkit-scrollbar-track,
            .fm-catalog-layout > .fm-filter-panel.fm-filter-details::-webkit-scrollbar-track,
            .fm-catalog-layout > .fm-filter-panel::-webkit-scrollbar-thumb,
            .fm-catalog-layout > .fm-filter-details::-webkit-scrollbar-thumb,
            .fm-catalog-layout > .fm-filter-panel.fm-filter-details::-webkit-scrollbar-thumb {
                display: none !important;
                background: transparent !important;
            }

            .fm-catalog-layout > .fm-catalog-results {
                margin-left: 0 !important;
                min-height: 0 !important;
            }

            .fm-filter-actions {
                position: static !important;
                top: auto !important;
                bottom: auto !important;
                z-index: auto !important;
                background-image: none !important;
                backdrop-filter: none !important;
                -webkit-backdrop-filter: none !important;
            }

            .fm-filter-actions::before,
            .fm-filter-actions::after {
                content: none !important;
                display: none !important;
            }
        }

        @media (max-width: 980px) {
            .fm-catalog-layout {
                display: grid !important;
                grid-template-columns: 1fr !important;
            }

            .fm-catalog-layout > .fm-filter-panel,
            .fm-catalog-layout > .fm-filter-details,
            .fm-catalog-layout > .fm-filter-panel.fm-filter-details {
                position: static !important;
                top: auto !important;
                width: auto !important;
                max-height: none !important;
                overflow-y: visible !important;
                overflow-x: hidden !important;
            }

            .fm-catalog-layout > .fm-catalog-results {
                margin-left: 0 !important;
            }

            .fm-filter-actions {
                position: static !important;
                top: auto !important;
                bottom: auto !important;
                z-index: auto !important;
            }
        }

        /* FANTMAP FILTER LAYOUT SOURCE OF TRUTH END */


        /* FANTMAP LOAD MORE SOURCE OF TRUTH START
           Единый источник правды для нижней зоны /books:
           - кнопка "Загрузить ещё" ближе к последней карточке
           - цифровая пагинация вторичная
           - footer не оторван
           - JS load more не трогаем
        */

        .fm-book-list,
        #fm-book-list {
            margin-bottom: 0 !important;
            padding-bottom: 0 !important;
        }

        .fm-book-list > *:last-child,
        #fm-book-list > *:last-child {
            margin-bottom: 0 !important;
        }

        .fm-load-more-zone {
            display: flex !important;
            flex-direction: column !important;
            align-items: center !important;
            gap: 6px !important;

            margin: 8px 0 18px !important;
            padding: 0 !important;
        }

        .fm-load-more-button {
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;

            min-width: 220px !important;
            min-height: 40px !important;
            padding: 0 20px !important;

            border: 1px solid rgba(216,173,99,.70) !important;
            border-radius: 12px !important;

            background: linear-gradient(180deg, rgba(231,190,104,.98), rgba(177,122,43,.98)) !important;
            color: #111820 !important;

            font-size: 13.5px !important;
            font-weight: 900 !important;
            letter-spacing: .01em !important;
            text-decoration: none !important;

            cursor: pointer !important;
            box-shadow:
                0 8px 18px rgba(0,0,0,.20),
                inset 0 1px 0 rgba(255,255,255,.20) !important;
        }

        .fm-load-more-button:hover {
            filter: brightness(1.04) !important;
            transform: translateY(-1px) !important;
        }

        .fm-load-more-button:active {
            transform: translateY(0) !important;
        }

        .fm-load-more-button:disabled {
            opacity: .62 !important;
            cursor: wait !important;
            transform: none !important;
            filter: none !important;
        }

        .fm-load-more-summary {
            margin-top: 0 !important;
            color: rgba(203,213,225,.48) !important;
            font-size: 12px !important;
            line-height: 1.25 !important;
        }

        .fm-load-more-error {
            color: rgba(248,113,113,.9) !important;
        }

        .fm-load-more-zone .fm-pagination-list {
            justify-content: center !important;
            gap: 5px !important;
            margin-top: 2px !important;
        }

        .fm-load-more-zone .fm-page-btn,
        .fm-load-more-zone .fm-page-dots {
            min-width: 29px !important;
            height: 29px !important;
            padding: 0 8px !important;

            border-radius: 8px !important;
            font-size: 11.5px !important;

            opacity: .68 !important;
            box-shadow: none !important;
        }

        .fm-load-more-zone .fm-page-btn-active {
            opacity: .92 !important;
        }

        .fm-load-more-zone .fm-page-btn-disabled {
            opacity: .34 !important;
        }

        .fm-load-more-zone .fm-page-btn:hover {
            opacity: .95 !important;
        }

        .fm-load-more-zone .fm-page-btn-active:hover {
            opacity: 1 !important;
        }

        .fm-load-more-zone + footer,
        .fm-load-more-zone ~ footer,
        footer,
        .fm-footer,
        .site-footer {
            margin-top: 0 !important;
        }

        .fm-catalog-results,
        .fm-results {
            padding-bottom: 0 !important;
            margin-bottom: 0 !important;
        }

        @media (min-width: 981px) {
            .fm-load-more-zone {
                margin-top: -42px !important;
                margin-bottom: 4px !important;
            }

            .fm-load-more-button {
                margin-top: 0 !important;
            }

            .fm-load-more-summary {
                margin-top: -1px !important;
            }

            .fm-load-more-zone .fm-pagination-list {
                margin-top: 0 !important;
            }

            .main.fm-main {
                padding-bottom: 8px !important;
            }
        }

        @media (max-width: 640px) {
            .fm-load-more-zone {
                margin: 8px 0 16px !important;
                gap: 6px !important;
            }

            .fm-load-more-button {
                width: 100% !important;
                min-width: 0 !important;
                min-height: 42px !important;
            }

            .fm-load-more-zone .fm-pagination-list {
                gap: 4px !important;
            }

            .fm-load-more-zone .fm-page-btn,
            .fm-load-more-zone .fm-page-dots {
                min-width: 28px !important;
                height: 28px !important;
                padding: 0 7px !important;
                font-size: 11px !important;
            }
        }

        /* FANTMAP LOAD MORE SOURCE OF TRUTH END */


        /* FANTMAP SEARCHABLE LIST SCROLLBAR SOURCE OF TRUTH START */
        /*
           Scrollbar выпадающих searchable-списков:
           - Жанр;
           - Автор;
           - Чтец;
           - Цикл.

           Логика:
           - тонкий спокойный scrollbar;
           - hover делает thumb заметнее;
           - не трогает multiselect-списки Теги / Исключить теги;
           - не трогает основной scrollbar страницы.
        */
        .fm-searchable-list {
            scrollbar-width: thin !important;
            scrollbar-color: rgba(216,173,99,.28) rgba(255,255,255,.035) !important;
        }

        .fm-searchable-list:hover {
            scrollbar-color: rgba(216,173,99,.46) rgba(255,255,255,.055) !important;
        }

        .fm-searchable-list::-webkit-scrollbar {
            width: 7px !important;
        }

        .fm-searchable-list::-webkit-scrollbar-track {
            background: rgba(255,255,255,.035) !important;
            border-radius: 999px !important;
        }

        .fm-searchable-list::-webkit-scrollbar-thumb {
            background: rgba(216,173,99,.28) !important;
            border-radius: 999px !important;
            border: 1px solid rgba(7,16,24,.92) !important;
        }

        .fm-searchable-list:hover::-webkit-scrollbar-thumb {
            background: rgba(216,173,99,.46) !important;
        }

        .fm-searchable-list::-webkit-scrollbar-corner {
            background: transparent !important;
        }
        /* FANTMAP SEARCHABLE LIST SCROLLBAR SOURCE OF TRUTH END */


        /* FANTMAP CUSTOM SORT SELECT VISUAL SOURCE OF TRUTH START */
        /*
           Визуал кастомной сортировки:
           - нативный select[name="sort"] скрывается после JS-инициализации;
           - .fm-sort-button выглядит как остальные поля фильтра;
           - .fm-sort-list использует тот же тёмный dropdown-стиль;
           - стрелка сортировки добавляется общей SVG-системой
             FANTMAP FILTER DROPDOWN ARROW SOURCE OF TRUTH.
        */
        .fm-filter-field select[name="sort"].fm-sort-native {
            display: none !important;
        }

        .fm-sort-select {
            position: relative;
            width: 100%;
            z-index: 40;
        }

        .fm-sort-select.open {
            z-index: 100004;
        }

        .fm-sort-button {
            width: 100%;
            min-height: 42px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;

            border: 1px solid rgba(190,217,255,.14);
            border-radius: 12px;
            background: rgba(5,11,18,.58);
            color: var(--text);

            padding: 0 14px 0 12px;
            cursor: pointer;

            font-size: 14px;
            font-weight: 700;
            text-align: left;
        }

        .fm-sort-button:hover,
        .fm-sort-select.open .fm-sort-button {
            border-color: rgba(216,173,99,.36);
            background: rgba(5,11,18,.72);
        }

        .fm-sort-button-label {
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .fm-sort-list {
            position: absolute;
            left: 0;
            right: 0;
            top: calc(100% + 6px);

            display: grid;
            gap: 4px;

            max-height: 240px;
            overflow-y: auto;

            border: 1px solid rgba(216,173,99,.30);
            border-radius: 12px;
            background: #071018;
            box-shadow: 0 22px 60px rgba(0,0,0,.60);
            padding: 6px;
        }

        .fm-sort-list[hidden] {
            display: none !important;
        }

        .fm-sort-option {
            width: 100%;
            min-height: 34px;

            display: flex;
            align-items: center;

            border: 0;
            border-radius: 9px;
            background: transparent;
            color: #dce7f1;

            padding: 0 10px;
            cursor: pointer;

            font-size: 13px;
            font-weight: 700;
            text-align: left;
        }

        .fm-sort-option:hover,
        .fm-sort-option.active {
            background: rgba(216,173,99,.12);
            color: var(--gold);
        }

        .fm-sort-list {
            scrollbar-width: thin;
            scrollbar-color: rgba(216,173,99,.28) rgba(255,255,255,.035);
        }

        .fm-sort-list::-webkit-scrollbar {
            width: 7px;
        }

        .fm-sort-list::-webkit-scrollbar-track {
            background: rgba(255,255,255,.035);
            border-radius: 999px;
        }

        .fm-sort-list::-webkit-scrollbar-thumb {
            background: rgba(216,173,99,.28);
            border-radius: 999px;
            border: 1px solid rgba(7,16,24,.92);
        }


        /*
           Тон выбранного значения сортировки:
           - выбранный пункт читаемый, но не чисто белый;
           - hover/open слегка усиливают контраст;
           - fallback сохраняет тон, если кастомный select не инициализировался.
        */

        .fm-sort-button {
            color: rgba(232,239,247,.88) !important;
            font-weight: 660 !important;
        }

        .fm-sort-button-label {
            color: rgba(232,239,247,.88) !important;
            font-weight: 660 !important;
        }

        .fm-sort-button:hover .fm-sort-button-label,
        .fm-sort-select.open .fm-sort-button-label {
            color: rgba(246,250,255,.94) !important;
        }

        .fm-filter-field select[name="sort"] {
            color: rgba(232,239,247,.88) !important;
            font-weight: 660 !important;
        }

/* FANTMAP CUSTOM SORT SELECT VISUAL SOURCE OF TRUTH END */


        /* FANTMAP RADIUS SYSTEM START */
        /*
           Radius System v2:
           делаем сайт строже и взрослее.
           Крупные контейнеры больше не выглядят как большие таблетки.
        */

        .fm-catalog-hero {
            border-radius: 14px !important;
        }

        .fm-filter-panel {
            border-radius: 12px !important;
        }

        .fm-catalog-card,
        .fm-empty {
            border-radius: 12px !important;
        }

        .fm-card-cover,
        .fm-card-cover-placeholder {
            border-radius: 8px !important;
        }

        .fm-catalog-search input,
        .fm-catalog-search button,
        .fm-filter-field select,
        .fm-filter-field input,
        .fm-searchable-input,
        .fm-multiselect-control,
        .fm-sort-button {
            border-radius: 8px !important;
        }

        .fm-searchable-list,
        .fm-multiselect-list,
        .fm-sort-list,
        .fm-quick-topics-menu {
            border-radius: 9px !important;
        }

        .fm-searchable-option,
        .fm-multiselect-option,
        .fm-sort-option {
            border-radius: 6px !important;
        }

        .fm-filter-format-option,
        .fm-filter-check,
        .fm-filter-actions button,
        .fm-filter-actions a,
        .fm-card-actions a,
        .fm-load-more-button,
        .fm-page-btn,
        .fm-page-dots {
            border-radius: 8px !important;
        }

        .fm-quick-filter {
            border-radius: 7px !important;
        }

        /*
           Настоящие pills оставляем круглыми.
           Это маленькие метки, им большая округлость подходит.
        */
        .fm-format-tabs a,
        .fm-active-filters a,
        .fm-active-filters span,
        .fm-card-meta a,
        .fm-card-meta span,
        .fm-format-badge,
        .fm-multiselect-chip {
            border-radius: 999px !important;
        }

        @media (max-width: 980px) {
            .fm-catalog-hero {
                border-radius: 12px !important;
            }

        }

        @media (max-width: 640px) {
            .fm-catalog-hero,
            .fm-catalog-card {
                border-radius: 10px !important;
            }

            .fm-card-cover,
            .fm-card-cover-placeholder {
                border-radius: 7px !important;
            }
        }
        /* FANTMAP RADIUS SYSTEM END */


        /* FANTMAP SURFACE DEPTH POLISH START */
        /*
           Полировка рамок и теней после Radius System v2:
           - крупные блоки меньше звенят рамками
           - тени легче
           - карточки остаются читаемыми
           - поля не превращаются в серые коробки
        */

        .fm-catalog-hero {
            border-color: rgba(216,173,99,.115) !important;
            box-shadow: 0 18px 52px rgba(0,0,0,.22) !important;
        }

        .fm-filter-panel {
            border-color: rgba(190,217,255,.095) !important;
            box-shadow: 0 12px 34px rgba(0,0,0,.18) !important;
        }

        .fm-catalog-card {
            border-color: rgba(190,217,255,.105) !important;
            box-shadow: 0 12px 34px rgba(0,0,0,.16) !important;
        }

        .fm-catalog-card:hover {
            border-color: rgba(216,173,99,.26) !important;
            box-shadow: 0 14px 38px rgba(0,0,0,.20) !important;
        }

        .fm-empty {
            border-color: rgba(190,217,255,.14) !important;
            box-shadow: none !important;
        }

        .fm-catalog-search input,
        .fm-filter-field select,
        .fm-filter-field input,
        .fm-searchable-input,
        .fm-multiselect-control,
        .fm-sort-button {
            border-color: rgba(190,217,255,.115) !important;
            box-shadow: inset 0 1px 0 rgba(255,255,255,.018) !important;
        }

        .fm-catalog-search input:hover,
        .fm-filter-field select:hover,
        .fm-filter-field input:hover,
        .fm-searchable-input:hover,
        .fm-multiselect-control:hover,
        .fm-sort-button:hover {
            border-color: rgba(190,217,255,.17) !important;
        }

        .fm-catalog-search input:focus,
        .fm-filter-field select:focus,
        .fm-filter-field input:focus,
        .fm-searchable-input:focus {
            border-color: rgba(216,173,99,.38) !important;
            box-shadow: 0 0 0 2px rgba(216,173,99,.075) !important;
        }

        .fm-filter-format-option,
        .fm-filter-check {
            border-color: rgba(190,217,255,.105) !important;
            box-shadow: inset 0 1px 0 rgba(255,255,255,.018) !important;
        }

        .fm-filter-format-option:hover,
        .fm-filter-format-option.active,
        .fm-filter-check:hover {
            border-color: rgba(216,173,99,.30) !important;
        }

        .fm-card-meta a,
        .fm-card-meta span {
            border-color: rgba(190,217,255,.115) !important;
            background: rgba(255,255,255,.035) !important;
        }

        .fm-card-actions a {
            box-shadow: none !important;
        }

        .fm-searchable-list,
        .fm-multiselect-list,
        .fm-sort-list {
            border-color: rgba(216,173,99,.24) !important;
            box-shadow: 0 18px 46px rgba(0,0,0,.50) !important;
        }

        .fm-page-btn,
        .fm-page-dots {
            border-color: rgba(216,173,99,.18) !important;
            box-shadow: none !important;
        }
        /* FANTMAP SURFACE DEPTH POLISH END */


        /* FANTMAP COMPACT CATALOG HERO START */
        /*
           Compact Hero v2:
           - desktop-заголовок стараемся держать в одну строку
           - hero ниже и ближе к рабочему каталогу
           - быстрые фильтры остаются видимыми
        */

        .fm-catalog {
            gap: 16px !important;
        }

        .fm-catalog-hero {
            padding: clamp(20px, 2.6vw, 30px) clamp(30px, 4vw, 48px) !important;
        }

        .fm-catalog-kicker {
            margin-bottom: 9px !important;
            font-size: 12px !important;
            letter-spacing: .18em !important;
        }

        .fm-catalog-hero h1 {
            max-width: 1040px !important;
            margin-bottom: 9px !important;
            font-size: clamp(36px, 3.05vw, 46px) !important;
            line-height: 1 !important;
            letter-spacing: -.045em !important;
        }

        .fm-catalog-hero p {
            max-width: 780px !important;
            font-size: 15px !important;
            line-height: 1.48 !important;
        }

        .fm-catalog-search {
            margin-top: 16px !important;
            max-width: 780px !important;
            gap: 9px !important;
        }

        .fm-catalog-search input,
        .fm-catalog-search button {
            min-height: 44px !important;
        }

        .fm-catalog-search input {
            padding: 0 16px !important;
            font-size: 14px !important;
        }

        .fm-catalog-search button {
            padding: 0 22px !important;
        }

        .fm-format-tabs {
            margin-top: 13px !important;
            gap: 8px !important;
        }

        .fm-format-tabs a {
            min-height: 33px !important;
            padding: 0 13px !important;
            font-size: 13px !important;
        }

        .fm-quick-filters {
            margin-top: 13px !important;
        }

        .fm-quick-filter-items {
            gap: 8px !important;
        }

        .fm-quick-filter {
            min-height: 33px !important;
            padding: 0 12px !important;
            font-size: 12.5px !important;
        }

        .fm-quick-topics-menu {
            margin-top: 8px !important;
            padding: 9px !important;
        }

        @media (max-width: 980px) {
            .fm-catalog-hero {
                padding: 22px 18px !important;
            }

            .fm-catalog-hero h1 {
                max-width: 760px !important;
                font-size: 31px !important;
                line-height: 1.03 !important;
            }

            .fm-catalog-hero p {
                font-size: 14px !important;
            }

            .fm-catalog-search {
                margin-top: 16px !important;
            }
        }

        @media (max-width: 640px) {
            .fm-catalog {
                gap: 14px !important;
            }

            .fm-catalog-hero {
                padding: 20px 16px !important;
            }

            .fm-catalog-hero h1 {
                font-size: 28px !important;
            }

        }
        /* FANTMAP COMPACT CATALOG HERO END */


        /* FANTMAP COMPACT RESULT CARDS START */
        /*
           Компактные карточки выдачи:
           - меньше пустой вертикали
           - обложка чуть компактнее
           - meta-pills плотнее
           - кнопки ниже по высоте
           - больше книг видно на первом экране
        */

        .fm-catalog-results {
            gap: 13px !important;
        }

        .fm-book-list {
            gap: 12px !important;
        }

        .fm-catalog-card {
            grid-template-columns: 104px minmax(0, 1fr) !important;
            gap: 14px !important;
            padding: 12px !important;
        }

        .fm-card-body {
            gap: 7px !important;
        }

        .fm-card-title {
            font-size: 19px !important;
            line-height: 1.15 !important;
            letter-spacing: -.02em !important;
        }

        .fm-card-meta a,
        .fm-card-meta span {
            min-height: 25px !important;
            padding: 0 9px !important;
            font-size: 12.5px !important;
            line-height: 1 !important;
        }

        .fm-card-description {
            font-size: 13.5px !important;
            line-height: 1.42 !important;
        }

        .fm-format-badges {
            gap: 6px !important;
        }

        .fm-format-badge {
            min-height: 23px !important;
            padding: 0 8px !important;
            font-size: 11px !important;
        }

        .fm-card-actions {
            gap: 7px !important;
            margin-top: 0 !important;
        }

        .fm-card-actions a {
            min-height: 31px !important;
            padding: 0 11px !important;
            font-size: 12.5px !important;
        }

        .fm-card-cover-placeholder {
            gap: 4px !important;
            padding: 8px !important;
        }

        .fm-card-cover-placeholder span {
            width: 24px !important;
            height: 24px !important;
        }

        .fm-card-cover-placeholder strong {
            font-size: 10.5px !important;
        }

        .fm-card-cover-placeholder small {
            font-size: 9.5px !important;
        }

        @media (min-width: 1200px) {
            .fm-catalog-card {
                grid-template-columns: 104px minmax(0, 1fr) !important;
            }
        }

        @media (max-width: 980px) {
            .fm-catalog-card {
                grid-template-columns: 96px minmax(0, 1fr) !important;
                gap: 12px !important;
                padding: 11px !important;
            }
        }

        @media (max-width: 640px) {
            .fm-catalog-card {
                grid-template-columns: 78px minmax(0, 1fr) !important;
                gap: 10px !important;
                padding: 10px !important;
            }

            .fm-card-title {
                font-size: 15.5px !important;
            }

            .fm-card-meta a,
            .fm-card-meta span {
                min-height: 23px !important;
            }

            .fm-card-actions a {
                min-height: 29px !important;
                font-size: 12px !important;
            }
        }
        /* FANTMAP COMPACT RESULT CARDS END */


        /* FANTMAP FILTER VISUAL SOURCE OF TRUTH START */
        /*
           Визуальный баланс левого фильтра:
           - фильтр остаётся компактным рабочим инструментом;
           - карточки выдачи визуально главнее фильтра;
           - заголовки, поля, кнопки и checkbox-строки остаются спокойнее;
           - стрелки секций не трогаются здесь, они живут в
             FANTMAP FILTER SECTION CLEAR ACTION SOURCE OF TRUTH.
        */
        /*
           Облегчаем левый фильтр после уплотнения карточек:
           - фильтр остаётся рабочим инструментом
           - меньше визуального веса
           - карточки выдачи снова главнее фильтра
        */

        .fm-filter-panel {
            padding: 16px !important;
            background:
                radial-gradient(circle at top right, rgba(216,173,99,.075), transparent 150px),
                rgba(13,23,34,.74) !important;
        }

        .fm-filter-title {
            margin-bottom: 13px !important;
        }

        .fm-filter-title strong {
            font-size: 17px !important;
            font-weight: 850 !important;
            letter-spacing: -.015em !important;
            color: rgba(255,244,223,.94) !important;
        }

        .fm-filter-title a {
            font-size: 12.5px !important;
            color: rgba(174,189,203,.72) !important;
        }

        .fm-filter-form {
            gap: 10px !important;
        }

        .fm-filter-field {
            gap: 5px !important;
        }

        .fm-filter-field label {
            color: rgba(214,224,234,.72) !important;
            font-size: 12px !important;
            font-weight: 760 !important;
            letter-spacing: -.005em !important;
        }

        .fm-filter-divider {
            margin: 6px 0 -3px !important;
            color: rgba(216,173,99,.78) !important;
            font-size: 11.5px !important;
            font-weight: 880 !important;
            letter-spacing: .09em !important;
        }

        .fm-filter-section {
            border-top-color: rgba(190,217,255,.075) !important;
            padding-top: 0 !important;
        }

        .fm-filter-section > summary {
            min-height: 34px !important;
            color: rgba(216,173,99,.82) !important;
            font-size: 11.5px !important;
            font-weight: 880 !important;
            letter-spacing: .09em !important;
        }
.fm-filter-section-body {
            gap: 10px !important;
            padding-bottom: 10px !important;
        }

        .fm-filter-format-options {
            gap: 7px !important;
        }

        .fm-filter-format-option {
            min-height: 35px !important;
            font-size: 12.5px !important;
            font-weight: 780 !important;
            border-color: rgba(190,217,255,.10) !important;
            background: rgba(255,255,255,.035) !important;
            color: rgba(220,231,241,.82) !important;
        }

        .fm-filter-format-option:hover {
            border-color: rgba(216,173,99,.24) !important;
            background: rgba(216,173,99,.075) !important;
            color: rgba(240,213,160,.92) !important;
        }

        .fm-filter-format-option.active {
            border-color: rgba(216,173,99,.42) !important;
            background: rgba(216,173,99,.10) !important;
            color: rgba(240,213,160,.96) !important;
        }

        .fm-filter-check {
            min-height: 34px !important;
            padding: 0 9px !important;
            font-size: 12.5px !important;
            font-weight: 750 !important;
            border-color: rgba(190,217,255,.085) !important;
            background: rgba(5,11,18,.22) !important;
            color: rgba(220,231,241,.80) !important;
        }

        .fm-filter-check:hover {
            border-color: rgba(216,173,99,.22) !important;
            color: rgba(240,213,160,.90) !important;
        }

        .fm-filter-actions {
            gap: 8px !important;
            margin-top: 2px !important;
        }

        .fm-filter-actions button,
        .fm-filter-actions a {
            min-height: 38px !important;
            font-size: 13px !important;
            font-weight: 820 !important;
        }

        .fm-filter-field input,
        .fm-filter-field select,
        .fm-searchable-input,
        .fm-multiselect-control,
        .fm-sort-button {
            min-height: 40px !important;
            font-size: 13.5px !important;
        }

        @media (max-width: 980px) {
            .fm-filter-panel {
                padding: 0 !important;
            }

            .fm-filter-title {
                margin-bottom: 0 !important;
            }

            .fm-filter-form {
                gap: 11px !important;
            }
        }
        /* FANTMAP FILTER VISUAL SOURCE OF TRUTH END */
/* FANTMAP CARD EMPTY SPACE POLISH START */
        /*
           Полировка пустоты внутри карточек:
           - текстовый блок визуально собирается
           - правая часть карточки больше не выглядит пустой дырой
           - карточка остаётся широкой и спокойной
        */

        .fm-catalog-card {
            position: relative !important;
            overflow: hidden !important;

            background:
                radial-gradient(circle at 88% 18%, rgba(216,173,99,.050), transparent 230px),
                radial-gradient(circle at 96% 82%, rgba(99,167,255,.040), transparent 220px),
                linear-gradient(90deg, rgba(13,23,34,.86), rgba(13,23,34,.80) 58%, rgba(8,17,26,.66)) !important;
        }

        .fm-catalog-card::after {
            content: "";
            position: absolute;
            inset: 0;
            pointer-events: none;
            opacity: .36;

            background:
                linear-gradient(90deg, transparent 0 58%, rgba(255,255,255,.018) 72%, transparent 100%),
                radial-gradient(circle at 92% 28%, rgba(216,173,99,.055), transparent 190px);
        }

        .fm-catalog-card > * {
            position: relative;
            z-index: 1;
        }

        .fm-card-body {
            max-width: 820px !important;
        }

        .fm-card-title {
            max-width: 760px !important;
        }

        .fm-card-meta,
        .fm-format-badges,
        .fm-card-actions {
            max-width: 820px !important;
        }

        .fm-card-description {
            max-width: 790px !important;
        }

        /*
           На очень широких desktop-экранах пустота справа особенно заметна,
           поэтому чуть сильнее проявляем правую фактуру.
        */
        @media (min-width: 1280px) {
            .fm-catalog-card {
                background:
                    radial-gradient(circle at 86% 18%, rgba(216,173,99,.060), transparent 250px),
                    radial-gradient(circle at 98% 82%, rgba(99,167,255,.045), transparent 240px),
                    linear-gradient(90deg, rgba(13,23,34,.86), rgba(13,23,34,.80) 56%, rgba(8,17,26,.64)) !important;
            }
        }

        @media (max-width: 980px) {
            .fm-card-body,
            .fm-card-title,
            .fm-card-meta,
            .fm-format-badges,
            .fm-card-actions,
            .fm-card-description {
                max-width: none !important;
            }

            .fm-catalog-card::after {
                opacity: .24;
            }
        }
        /* FANTMAP CARD EMPTY SPACE POLISH END */


        /* FANTMAP CARD TYPOGRAPHY POLISH START */
        /*
           Типографическая полировка карточек:
           - название книги главнее
           - meta-pills спокойнее
           - описание тише
           - кнопки не трогаем
        */

        .fm-card-body {
            gap: 6px !important;
        }

        .fm-card-title {
            color: rgba(255,244,223,.96) !important;
            font-weight: 900 !important;
            text-shadow: 0 1px 0 rgba(0,0,0,.18) !important;
        }

        .fm-card-title:hover {
            color: rgba(216,173,99,.96) !important;
        }

        .fm-format-badges {
            margin-bottom: 1px !important;
        }

        .fm-format-badge {
            font-weight: 820 !important;
            letter-spacing: .015em !important;
            opacity: .92 !important;
        }

        .fm-card-meta {
            gap: 6px !important;
            margin-top: 1px !important;
        }

        .fm-card-meta a,
        .fm-card-meta span {
            border-color: rgba(190,217,255,.095) !important;
            background: rgba(255,255,255,.026) !important;
            color: rgba(220,231,241,.80) !important;

            font-weight: 620 !important;
            letter-spacing: -.005em !important;
        }

        .fm-card-meta a:hover {
            border-color: rgba(216,173,99,.24) !important;
            background: rgba(216,173,99,.060) !important;
            color: rgba(240,213,160,.92) !important;
        }

        .fm-card-description {
            max-width: 760px !important;
            color: rgba(190,207,221,.76) !important;
            font-size: 13.3px !important;
            line-height: 1.44 !important;
            margin-top: 1px !important;
        }

        /*
           Хэштеги внутри meta не должны спорить с названием.
        */
        .fm-card-meta a[href*="tag"],
        .fm-card-meta span[class*="tag"] {
            color: rgba(210,224,236,.76) !important;
        }

        /*
           Автор / цикл / чтец читаются, но не выглядят как основные CTA.
        */
        .fm-card-meta a[href*="author"],
        .fm-card-meta a[href*="cycle"] {
            color: rgba(226,235,244,.84) !important;
        }

        @media (max-width: 640px) {
            .fm-card-body {
                gap: 5px !important;
            }

            .fm-card-description {
                font-size: 13px !important;
            }

            .fm-card-meta a,
            .fm-card-meta span {
                font-size: 11.5px !important;
            }
        }
        /* FANTMAP CARD TYPOGRAPHY POLISH END */


        /* FANTMAP COVER VISUAL ANCHOR START */
        /*
           Обложка как визуальный якорь карточки:
           - без увеличения размера
           - без яркой золотой рамки
           - реальные постеры чуть читаемее
           - placeholder не проваливается в фон
        */

        .fm-card-cover {
            border: 1px solid rgba(190,217,255,.13) !important;
            background:
                radial-gradient(circle at 50% 18%, rgba(216,173,99,.16), transparent 120px),
                linear-gradient(145deg, rgba(25,40,54,.92), rgba(7,16,24,.96)) !important;
            box-shadow:
                0 8px 18px rgba(0,0,0,.20),
                inset 0 1px 0 rgba(255,255,255,.035) !important;
        }

        .fm-card-cover::after {
            content: "";
            position: absolute;
            inset: 0;
            z-index: 5;
            pointer-events: none;
            border-radius: inherit;

            background:
                linear-gradient(180deg, rgba(255,255,255,.040), transparent 34%, rgba(0,0,0,.08)),
                radial-gradient(circle at 50% 18%, rgba(216,173,99,.055), transparent 85px);

            box-shadow:
                inset 0 0 0 1px rgba(255,255,255,.035),
                inset 0 0 18px rgba(216,173,99,.035);
        }

        .fm-card-cover img {
            filter: brightness(1.035) contrast(1.045) saturate(1.015) !important;
            transition: filter .18s ease, transform .18s ease !important;
        }

        .fm-catalog-card:hover .fm-card-cover {
            border-color: rgba(216,173,99,.24) !important;
            box-shadow:
                0 10px 22px rgba(0,0,0,.24),
                inset 0 1px 0 rgba(255,255,255,.045) !important;
        }

        .fm-catalog-card:hover .fm-card-cover img {
            filter: brightness(1.060) contrast(1.060) saturate(1.030) !important;
        }

        .fm-card-cover-placeholder {
            background:
                radial-gradient(circle at 50% 18%, rgba(216,173,99,.22), transparent 118px),
                linear-gradient(145deg, rgba(25,40,54,.90), rgba(7,16,24,.96)) !important;
        }

        .fm-card-cover-placeholder span {
            border-color: rgba(216,173,99,.42) !important;
            background: rgba(216,173,99,.105) !important;
            color: rgba(240,213,160,.96) !important;
        }

        .fm-card-cover-placeholder strong {
            color: rgba(246,211,145,.96) !important;
        }

        .fm-card-cover-placeholder small {
            color: rgba(190,207,221,.72) !important;
        }
        /* FANTMAP COVER VISUAL ANCHOR END */


        /* FANTMAP FILTER FIELD HEIGHT SYSTEM START */
        /*
           Единая базовая высота полей фильтра:
           - обычные input/select/searchable/sort: 40px
           - multiselect пустой: визуально 40px
           - multiselect с выбранными chips может расти
           - кнопки формата, checkbox-строки и submit/reset не трогаем
        */

        .fm-filter-panel {
            --fm-filter-field-height: 40px;
            --fm-filter-field-radius: 8px;
            --fm-filter-field-x: 12px;
        }

        .fm-filter-panel .fm-filter-field input:not([type="checkbox"]):not([type="radio"]),
        .fm-filter-panel .fm-filter-field select,
        .fm-filter-panel .fm-searchable-input,
        .fm-filter-panel .fm-sort-button {
            height: var(--fm-filter-field-height) !important;
            min-height: var(--fm-filter-field-height) !important;
            line-height: var(--fm-filter-field-height) !important;

            padding-top: 0 !important;
            padding-bottom: 0 !important;

            border-radius: var(--fm-filter-field-radius) !important;
            box-sizing: border-box !important;
        }

        .fm-filter-panel .fm-filter-field input:not([type="checkbox"]):not([type="radio"]):not(.fm-searchable-input),
        .fm-filter-panel .fm-filter-field select {
            padding-left: var(--fm-filter-field-x) !important;
            padding-right: var(--fm-filter-field-x) !important;
        }

        /*
           Searchable-поля: Жанр / Автор / Чтец / Цикл.
           Справа нужен запас под стрелку или крестик.
        */
        /*
           Multiselect: Теги / Исключить теги.
           Пустое состояние выглядит как поле 40px.
           Если появляются chips — блок растёт по высоте, не ломая содержимое.
        */
        .fm-filter-panel .fm-multiselect-control {
            min-height: var(--fm-filter-field-height) !important;
            height: auto !important;

            padding: 7px 34px 7px var(--fm-filter-field-x) !important;

            border-radius: var(--fm-filter-field-radius) !important;
            box-sizing: border-box !important;

            align-items: center !important;
        }

        .fm-filter-panel .fm-multiselect-input {
            height: 26px !important;
            min-height: 26px !important;
            line-height: 26px !important;

            padding-top: 0 !important;
            padding-bottom: 0 !important;
            padding-left: 0 !important;

            box-sizing: border-box !important;
        }

        .fm-filter-panel .fm-multiselect-selected:empty {
            display: none !important;
            height: 0 !important;
            min-height: 0 !important;
            padding: 0 !important;
            margin: 0 !important;
        }

        /*
           Год от / Год до тоже держим в общей высоте.
        */
        .fm-filter-panel .fm-filter-row-2 input {
            height: var(--fm-filter-field-height) !important;
            min-height: var(--fm-filter-field-height) !important;
        }

        /*
           Кастомная сортировка.
        */
        /*
           На mobile оставляем ту же систему: 40px достаточно удобно для касания,
           но multiselect всё так же может расти при выбранных тегах.
        */
        @media (max-width: 640px) {
            .fm-filter-panel {
                --fm-filter-field-height: 40px;
            }
        }
        /* FANTMAP FILTER FIELD HEIGHT SYSTEM END */

        /* FANTMAP FILTER DROPDOWN ARROW SOURCE OF TRUTH START */
        /*
           Единая система стрелок фильтра.
           Важно:
           - не используем border-chevron / mask / background-svg / clip-path / glyph;
           - не используем ::after как видимую стрелку;
           - сортировка, searchable и multiselect получают один и тот же SVG;
           - старые стрелки сортировки остаются выключенными, если где-то ещё попадут в DOM.
        */

        .fm-filter-panel {
            --fm-filter-arrow-size: 18px;
            --fm-filter-arrow-right: 12px;
            --fm-filter-arrow-color: rgba(216,173,99,.86);
            --fm-filter-arrow-color-open: rgba(246,211,145,.98);
        }

        .fm-filter-panel .fm-searchable-select::after,
        .fm-filter-panel .fm-multiselect-control::after {
            content: none !important;
            display: none !important;
            width: 0 !important;
            height: 0 !important;
            border: 0 !important;
            background: none !important;
            background-image: none !important;
            clip-path: none !important;
            -webkit-mask: none !important;
            mask: none !important;
            -webkit-mask-image: none !important;
            mask-image: none !important;
            transform: none !important;
        }

        .fm-filter-panel .fm-searchable-select,
        .fm-filter-panel .fm-multiselect-control,
        .fm-filter-panel .fm-sort-button {
            position: relative !important;
        }

        .fm-filter-panel .fm-searchable-input,
        .fm-filter-panel .fm-sort-button {
            padding-left: var(--fm-filter-field-x) !important;
            padding-right: 42px !important;
        }

        .fm-filter-panel .fm-multiselect-control {
            padding-right: 42px !important;
        }

        .fm-filter-panel .fm-multiselect-input {
            padding-right: 0 !important;
        }

        .fm-filter-panel .fm-multiselect-control:has(.fm-multiselect-selected:empty) {
            height: var(--fm-filter-field-height, 40px) !important;
            min-height: var(--fm-filter-field-height, 40px) !important;
            padding-top: 0 !important;
            padding-bottom: 0 !important;
            align-items: center !important;
        }

        .fm-filter-panel .fm-multiselect-control:has(.fm-multiselect-selected:empty) .fm-multiselect-input {
            height: var(--fm-filter-field-height, 40px) !important;
            min-height: var(--fm-filter-field-height, 40px) !important;
            line-height: var(--fm-filter-field-height, 40px) !important;
            padding-top: 0 !important;
            padding-bottom: 0 !important;
        }

        .fm-filter-panel .fm-multiselect-control:not(:has(.fm-multiselect-selected:empty)) {
            height: auto !important;
            min-height: var(--fm-filter-field-height, 40px) !important;
        }

        .fm-filter-dd-arrow {
            position: absolute !important;
            top: 50% !important;
            right: var(--fm-filter-arrow-right) !important;
            z-index: 5 !important;

            width: var(--fm-filter-arrow-size) !important;
            height: var(--fm-filter-arrow-size) !important;

            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;

            margin: 0 !important;
            padding: 0 !important;
            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;

            color: var(--fm-filter-arrow-color) !important;
            pointer-events: none !important;
            opacity: 1 !important;

            transform: translate3d(0, -50%, 0) !important;
            transform-origin: 50% 50% !important;
        }

        .fm-filter-dd-arrow svg {
            width: var(--fm-filter-arrow-size) !important;
            height: var(--fm-filter-arrow-size) !important;
            display: block !important;
            overflow: visible !important;
            transform-origin: 50% 50% !important;
            transition: transform .16s ease !important;
        }

        .fm-filter-dd-arrow path {
            fill: none !important;
            stroke: currentColor !important;
            stroke-width: 2.4 !important;
            stroke-linecap: round !important;
            stroke-linejoin: round !important;
            vector-effect: non-scaling-stroke !important;
        }

        .fm-filter-panel .fm-multiselect-control > .fm-filter-dd-arrow {
            top: calc(var(--fm-filter-field-height, 40px) / 2) !important;
        }

        .fm-filter-panel .fm-searchable-select.open > .fm-filter-dd-arrow,
        .fm-filter-panel .fm-multiselect.open .fm-multiselect-control > .fm-filter-dd-arrow,
        .fm-filter-panel .fm-sort-select.open .fm-sort-button > .fm-filter-dd-arrow {
            color: var(--fm-filter-arrow-color-open) !important;
        }

        .fm-filter-panel .fm-searchable-select.open > .fm-filter-dd-arrow svg,
        .fm-filter-panel .fm-multiselect.open .fm-multiselect-control > .fm-filter-dd-arrow svg,
        .fm-filter-panel .fm-sort-select.open .fm-sort-button > .fm-filter-dd-arrow svg {
            transform: rotate(180deg) !important;
        }

        .fm-filter-panel .fm-searchable-select:hover > .fm-filter-dd-arrow,
        .fm-filter-panel .fm-multiselect:hover .fm-multiselect-control > .fm-filter-dd-arrow,
        .fm-filter-panel .fm-sort-button:hover > .fm-filter-dd-arrow {
            color: var(--fm-filter-arrow-color-open) !important;
        }

        .fm-filter-panel .fm-searchable-select.has-clear-value > .fm-filter-dd-arrow,
        .fm-filter-panel .fm-searchable-select:has(.fm-searchable-clear:not([hidden])) > .fm-filter-dd-arrow {
            display: none !important;
        }

        .fm-filter-panel .fm-searchable-clear {
            top: 50% !important;
            right: 12px !important;
            transform: translateY(-50%) !important;
        }

        /* FANTMAP FILTER DROPDOWN ARROW SOURCE OF TRUTH END */
        /* FANTMAP MULTISELECT FIELD SCROLL SOURCE OF TRUTH START */
        /*
           Единая логика верхнего поля Теги / Исключить теги:
           - внутреннюю focus-рамку input убираем;
           - обычный широкий scrollbar не возвращаем;
           - если выбранных chips много, показываем тонкий scrollbar;
           - scrollbar живёт в зоне chips и не конфликтует со стрелкой;
           - колесо по верхнему полю прокручивает chips через JS ниже.
        */

        .fm-filter-panel .fm-multiselect-input,
        .fm-filter-panel .fm-multiselect-input:focus,
        .fm-filter-panel .fm-multiselect-input:focus-visible {
            border: 0 !important;
            outline: none !important;
            box-shadow: none !important;
            background: transparent !important;
        }

        .fm-filter-panel .fm-multiselect-control:focus,
        .fm-filter-panel .fm-multiselect-control:focus-within,
        .fm-filter-panel .fm-multiselect.open .fm-multiselect-control {
            outline: none !important;
            box-shadow: none !important;
            border-color: rgba(190,217,255,.13) !important;
        }

        .fm-filter-panel .fm-multiselect-selected {
            overflow-y: auto !important;
            overflow-x: hidden !important;
            scrollbar-width: none !important;
            scrollbar-gutter: auto !important;
            -ms-overflow-style: none !important;
        }

        .fm-filter-panel .fm-multiselect-selected::-webkit-scrollbar {
            width: 0 !important;
            height: 0 !important;
        }

        .fm-filter-panel .fm-multiselect.has-chip-scroll .fm-multiselect-selected {
            padding-right: 5px !important;
            scrollbar-width: thin !important;
            scrollbar-color: rgba(216,173,99,.42) rgba(255,255,255,.035) !important;
            scrollbar-gutter: stable !important;
            cursor: ns-resize !important;
        }

        .fm-filter-panel .fm-multiselect.has-chip-scroll .fm-multiselect-selected::-webkit-scrollbar {
            width: 5px !important;
            height: 5px !important;
        }

        .fm-filter-panel .fm-multiselect.has-chip-scroll .fm-multiselect-selected::-webkit-scrollbar-track {
            background: rgba(255,255,255,.035) !important;
            border-radius: 999px !important;
        }

        .fm-filter-panel .fm-multiselect.has-chip-scroll .fm-multiselect-selected::-webkit-scrollbar-thumb {
            background: rgba(216,173,99,.42) !important;
            border-radius: 999px !important;
        }

        .fm-filter-panel .fm-multiselect.has-chip-scroll .fm-multiselect-selected::-webkit-scrollbar-thumb:hover {
            background: rgba(216,173,99,.62) !important;
        }
        /* FANTMAP MULTISELECT FIELD SCROLL SOURCE OF TRUTH END */

        /* FANTMAP FILTER SEARCH CLEAR SOURCE OF TRUTH START */
        /*
           Крестик очистки поля "Поиск":
           - отключаем нативный браузерный search-крестик;
           - ставим свой крестик в том же стиле, что у Жанр / Автор / Чтец / Цикл;
           - не трогаем hero-search наверху страницы.
        */

        .fm-filter-panel #catalog-q {
            padding-right: 42px !important;
            -webkit-appearance: none !important;
            appearance: none !important;
        }

        .fm-filter-panel #catalog-q::-webkit-search-cancel-button,
        .fm-filter-panel #catalog-q::-webkit-search-decoration,
        .fm-filter-panel #catalog-q::-webkit-search-results-button,
        .fm-filter-panel #catalog-q::-webkit-search-results-decoration {
            -webkit-appearance: none !important;
            appearance: none !important;
            display: none !important;
        }

        .fm-filter-panel .fm-filter-search-field {
            position: relative !important;
        }

        .fm-filter-panel .fm-filter-search-clear {
            position: absolute !important;
            right: 12px !important;
            bottom: 10px !important;
            z-index: 10 !important;

            width: 20px !important;
            height: 20px !important;

            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;

            border: 0 !important;
            border-radius: 0 !important;
            background: transparent !important;
            box-shadow: none !important;

            color: rgba(190,217,255,.58) !important;
            cursor: pointer !important;

            font-size: 18px !important;
            font-weight: 600 !important;
            line-height: 1 !important;
            padding: 0 !important;

            opacity: .78 !important;
        }

        .fm-filter-panel .fm-filter-search-clear:hover {
            color: rgba(246,211,145,.96) !important;
            opacity: .96 !important;
        }

        .fm-filter-panel .fm-filter-search-clear:focus {
            outline: none !important;
            box-shadow: none !important;
        }

        .fm-filter-panel .fm-filter-search-clear[hidden] {
            display: none !important;
        }
        /* FANTMAP FILTER SEARCH CLEAR SOURCE OF TRUTH END */


        /* FANTMAP FILTER DIRTY STATE SOURCE OF TRUTH START */
        /*
           Индикатор черновых изменений фильтра:
           - показывает, что форма изменена, но выдача ещё не применена;
           - усиливает кнопку применения;
           - не меняет серверную логику и URL.
        */

        .fm-filter-dirty-note {
            display: none;
            min-height: 18px;
            align-items: center;
            justify-content: center;

            border: 0;
            border-radius: 0;
            background: transparent;
            color: rgba(246,211,145,.70);

            padding: 0 4px;
            font-size: 11.5px;
            font-weight: 800;
            line-height: 1.25;
            text-align: center;
            white-space: nowrap !important;
        }

        .fm-filter-form.is-dirty .fm-filter-dirty-note {
            display: flex;
        }

        .fm-filter-form.is-dirty .fm-filter-actions button[type="submit"] {
            border: 1px solid rgba(246,211,145,.80) !important;
            filter: brightness(1.05);
            box-shadow:
                0 12px 28px rgba(0,0,0,.24),
                0 0 0 3px rgba(216,173,99,.10),
                inset 0 1px 0 rgba(255,255,255,.22) !important;
        }

        /* FANTMAP FILTER DIRTY STATE SOURCE OF TRUTH END */


        /* FANTMAP YEAR RANGE VALIDATION SOURCE OF TRUTH START */
        /*
           Валидация "Год от / Год до":
           - не даём отправить нелогичный диапазон;
           - показываем ошибку прямо под парой полей;
           - не трогаем серверную фильтрацию, URL и load more.
        */

        .fm-filter-year-error {
            grid-column: 1 / -1;
            display: none;

            margin-top: -2px;
            border: 1px solid rgba(248,113,113,.24);
            border-radius: 10px;
            background: rgba(248,113,113,.075);
            color: rgba(254,202,202,.92);

            padding: 8px 10px;
            font-size: 12px;
            font-weight: 800;
            line-height: 1.3;
        }

        .fm-filter-year-error:not([hidden]) {
            display: block;
        }

        .fm-filter-row-2.has-year-error input[aria-invalid="true"] {
            border-color: rgba(248,113,113,.56) !important;
            box-shadow: 0 0 0 3px rgba(248,113,113,.10) !important;
        }
        /* FANTMAP YEAR RANGE VALIDATION SOURCE OF TRUTH END */


        /* FANTMAP FILTER SECTION ACTIVE COUNT BADGE SOURCE OF TRUTH START */
        .fm-filter-section-label {
            gap: 4px !important;
        }

        .fm-filter-section-count {
            display: inline-flex !important;
            align-items: center !important;

            margin-left: 3px !important;
            padding: 0 !important;

            border: 0 !important;
            border-radius: 0 !important;
            background: transparent !important;

            color: rgba(246,211,145,.72) !important;

            font-size: 11px !important;
            font-weight: 900 !important;
            line-height: 1 !important;
            letter-spacing: 0 !important;
            text-transform: none !important;
        }

        .fm-filter-section-count::before {
            content: "(";
        }

        .fm-filter-section-count::after {
            content: ")";
        }

        .fm-filter-section[open] .fm-filter-section-count {
            color: rgba(246,211,145,.84) !important;
        }
        /* FANTMAP FILTER SECTION ACTIVE COUNT BADGE SOURCE OF TRUTH END */


        /* FANTMAP FILTER SECTION CLEAR ACTION SOURCE OF TRUTH START */
        .fm-filter-section > summary {
            position: relative !important;
            display: flex !important;
            align-items: center !important;

            min-height: 24px !important;
            padding-right: 62px !important;
        }

        .fm-filter-section > summary::before,
        .fm-filter-section > summary::after {
            content: none !important;
            display: none !important;
        }

        .fm-filter-section > summary .fm-filter-section-label {
            display: inline-flex !important;
            align-items: center !important;
            min-width: 0 !important;
        }

        .fm-filter-section > summary .fm-filter-section-clear,
        .fm-filter-section > summary .fm-filter-section-plus {
            position: absolute !important;
            top: 50% !important;

            width: 18px !important;
            height: 18px !important;
            min-width: 18px !important;
            min-height: 18px !important;

            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;

            margin: 0 !important;
            padding: 0 !important;

            border: 0 !important;
            border-radius: 50% !important;
            background: transparent !important;
            box-shadow: none !important;

            color: transparent !important;
            font-size: 0 !important;
            line-height: 0 !important;
            text-decoration: none !important;

            transform: translateY(-50%) !important;

            cursor: pointer !important;
            user-select: none !important;
            white-space: nowrap !important;
        }

        .fm-filter-section > summary .fm-filter-section-clear {
            right: 34px !important;
        }

        .fm-filter-section > summary .fm-filter-section-plus {
            right: 6px !important;
            pointer-events: none !important;
        }

        .fm-filter-section > summary .fm-filter-section-clear::before,
        .fm-filter-section > summary .fm-filter-section-clear::after,
        .fm-filter-section > summary .fm-filter-section-plus::before,
        .fm-filter-section > summary .fm-filter-section-plus::after {
            content: "" !important;

            position: absolute !important;
            left: 50% !important;
            top: 50% !important;

            border-radius: 999px !important;
            box-shadow: none !important;

            transform-origin: center !important;
        }

.fm-filter-section > summary .fm-filter-section-plus::before,
        .fm-filter-section > summary .fm-filter-section-plus::after {
            background: rgba(246,211,145,.82) !important;
        }

        .fm-filter-section > summary .fm-filter-section-clear::before,
        .fm-filter-section > summary .fm-filter-section-clear::after {
            width: 8px !important;
            height: 1.5px !important;
            background: rgba(190,217,255,.54) !important;
        }

        .fm-filter-section > summary .fm-filter-section-clear::before {
            transform: translate(-50%, -50%) rotate(45deg) !important;
        }

        .fm-filter-section > summary .fm-filter-section-clear::after {
            transform: translate(-50%, -50%) rotate(-45deg) !important;
        }

        .fm-filter-section > summary .fm-filter-section-plus::before,
        .fm-filter-section > summary .fm-filter-section-plus::after {
            width: 12px !important;
            height: 2px !important;
        }

        .fm-filter-section > summary .fm-filter-section-plus::before {
            transform: translate(-50%, -50%) !important;
        }

        .fm-filter-section > summary .fm-filter-section-plus::after {
            transform: translate(-50%, -50%) rotate(90deg) !important;
        }

        .fm-filter-section[open] > summary .fm-filter-section-plus::after {
            opacity: 0 !important;
            visibility: hidden !important;
        }

        .fm-filter-section > summary .fm-filter-section-clear:hover,
        .fm-filter-section > summary .fm-filter-section-clear:focus,
        .fm-filter-section > summary .fm-filter-section-clear:focus-visible {
            background: rgba(216,173,99,.10) !important;
            text-decoration: none !important;
            outline: none !important;
        }

        .fm-filter-section > summary .fm-filter-section-clear:hover::before,
        .fm-filter-section > summary .fm-filter-section-clear:hover::after,
        .fm-filter-section > summary .fm-filter-section-clear:focus::before,
        .fm-filter-section > summary .fm-filter-section-clear:focus::after,
        .fm-filter-section > summary .fm-filter-section-clear:focus-visible::before,
        .fm-filter-section > summary .fm-filter-section-clear:focus-visible::after {
            background: rgba(246,211,145,.92) !important;
        }
        /* FANTMAP FILTER SECTION CLEAR ACTION SOURCE OF TRUTH END */
