.fsd-catalogue {
    --fsd-accent: #007f84;
    --fsd-accent-ink: #fff;
    --fsd-outline-ink: #007f84;
    --fsd-text: #101a49;
    --fsd-muted: #4d5974;
    --fsd-border: #dfe5ed;
    box-sizing: border-box;
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    padding: 20px;
    color: var(--fsd-text);
    background: #f8fafc;
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
    text-align: start;
}
.fsd-catalogue *, .fsd-catalogue *::before, .fsd-catalogue *::after { box-sizing: border-box; }
.fsd-catalogue [hidden] { display: none !important; }
.fsd-catalogue .fsd-sr-only {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.fsd-catalogue svg { display: block; flex: 0 0 auto; width: 19px; height: 19px; }
.fsd-catalogue .fsd-legend { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 16px; }
.fsd-catalogue .fsd-legend > span { display: inline-flex; gap: 4px; align-items: baseline; padding: 5px 13px; color: var(--fsd-muted); background: #eef3f7; border-radius: 100px; font-size: 13px; }
.fsd-catalogue .fsd-legend strong { color: var(--fsd-text); font-weight: 700; }
.fsd-catalogue .fsd-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 16px; padding: 0; }
.fsd-catalogue .fsd-search-wrap { position: relative; flex: 1.3 1 260px; }
.fsd-catalogue .fsd-select-wrap { position: relative; flex: 1 1 200px; }
.fsd-catalogue .fsd-search-wrap > svg { position: absolute; inset-inline-start: 14px; top: 50%; transform: translateY(-50%); pointer-events: none; color: #586781; }
.fsd-catalogue .fsd-select-wrap > svg { position: absolute; inset-inline-end: 12px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--fsd-text); width: 16px; height: 16px; }
.fsd-catalogue input.fsd-search, .fsd-catalogue select.fsd-category {
    display: block; width: 100%; min-width: 0; height: 44px; min-height: 44px; margin: 0;
    border: 1px solid var(--fsd-border); border-radius: 6px; color: var(--fsd-muted); background: #fff;
    font: inherit; font-size: 14px; font-weight: 400; line-height: normal; box-shadow: none;
}
.fsd-catalogue input.fsd-search { padding: 10px 13px; padding-inline-start: 44px; }
.fsd-catalogue input.fsd-search::placeholder { color: #66758c; opacity: 1; }
.fsd-catalogue select.fsd-category { appearance: none; -webkit-appearance: none; background-image: none; padding: 10px 12px; padding-inline-end: 38px; }
.fsd-catalogue input.fsd-search:focus-visible, .fsd-catalogue select.fsd-category:focus-visible,
.fsd-catalogue a:focus-visible, .fsd-catalogue button:focus-visible { outline: 3px solid var(--fsd-accent); outline-offset: 3px; }
.fsd-catalogue .fsd-table-wrap { overflow: hidden; border: 1px solid var(--fsd-border); border-radius: 6px; background: #fff; }
.fsd-catalogue table.fsd-table { table-layout: fixed; width: 100%; margin: 0; padding: 0; border: 0; border-collapse: collapse; border-spacing: 0; background: #fff; font: inherit; }
.fsd-catalogue .fsd-table th, .fsd-catalogue .fsd-table td { padding: 10px 18px; border: 0; border-bottom: 1px solid var(--fsd-border); vertical-align: middle; text-align: start; overflow-wrap: anywhere; background: transparent; font-size: 14px; line-height: 1.5; }
.fsd-catalogue .fsd-table thead th { padding-top: 12px; padding-bottom: 12px; background: #f0f4f7; color: var(--fsd-text); font-weight: 700; }
.fsd-catalogue .fsd-table thead th:nth-child(1) { width: 31%; }
.fsd-catalogue .fsd-table thead th:nth-child(2) { width: 27%; }
.fsd-catalogue .fsd-table thead th:nth-child(3), .fsd-catalogue .fsd-table thead th:nth-child(4) { width: 21%; }
.fsd-catalogue .fsd-table tbody tr:last-child > * { border-bottom: 0; }
.fsd-catalogue .fsd-table th.fsd-product-name { color: var(--fsd-text); font-weight: 700; }
.fsd-catalogue .fsd-product-category { color: var(--fsd-muted); }
.fsd-catalogue .fsd-grade { display: block; margin-top: 3px; color: var(--fsd-muted); font-size: 12px; font-weight: 400; }
.fsd-catalogue a.fsd-download { display: inline-flex; justify-content: center; align-items: center; gap: 9px; width: 100%; min-height: 38px; padding: 8px 10px; border: 1px solid var(--fsd-accent); border-radius: 5px; font-size: 13px; font-weight: 600; line-height: 1.25; text-decoration: none; box-shadow: none; transition: filter .15s ease, background-color .15s ease; }
.fsd-catalogue a.fsd-download-primary { color: var(--fsd-accent-ink); background: var(--fsd-accent); }
.fsd-catalogue a.fsd-download-outline { color: var(--fsd-outline-ink); background: #fff; }
.fsd-catalogue a.fsd-download-primary:hover { color: var(--fsd-accent-ink); filter: brightness(.92); }
.fsd-catalogue a.fsd-download-outline:hover { color: var(--fsd-outline-ink); background: #f0f6f7; }
.fsd-catalogue .fsd-unavailable { color: #66758c; font-size: 13px; }
.fsd-catalogue .fsd-empty-row td { text-align: center; padding: 30px 16px; color: var(--fsd-muted); }
.fsd-catalogue .fsd-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 12px; color: var(--fsd-muted); font-size: 12px; }
.fsd-catalogue .fsd-status { margin: 0; flex: 1; font: inherit; }
.fsd-catalogue .fsd-pagination { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.fsd-catalogue .fsd-footer button, .fsd-catalogue .fsd-apply { min-height: 36px; padding: 7px 12px; border: 1px solid var(--fsd-border); border-radius: 5px; color: var(--fsd-text); background: #fff; font: inherit; line-height: 1.4; text-transform: none; letter-spacing: normal; cursor: pointer; box-shadow: none; }
.fsd-catalogue .fsd-footer button:hover, .fsd-catalogue .fsd-apply:hover { background: #eef3f7; }
.fsd-catalogue .fsd-footer button:disabled { opacity: .5; cursor: default; }
.fsd-catalogue button.fsd-reset { color: var(--fsd-outline-ink); }
@media (max-width: 800px) {
    .fsd-catalogue .fsd-table th, .fsd-catalogue .fsd-table td { padding: 10px; }
    .fsd-catalogue a.fsd-download { gap: 6px; padding: 8px 6px; }
}
@media (max-width: 640px) {
    .fsd-catalogue { padding: 14px; }
    .fsd-catalogue .fsd-legend { gap: 8px; }
    .fsd-catalogue .fsd-legend > span { padding: 5px 10px; font-size: 12px; }
    .fsd-catalogue .fsd-search-wrap, .fsd-catalogue .fsd-select-wrap { flex-basis: 100%; }
    .fsd-catalogue .fsd-table-wrap { border: 0; border-radius: 0; background: transparent; overflow: visible; }
    .fsd-catalogue table.fsd-table { display: block; background: transparent; }
    .fsd-catalogue .fsd-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
    .fsd-catalogue .fsd-table tbody { display: block; }
    .fsd-catalogue .fsd-table tr.fsd-product-row { display: block; margin-bottom: 12px; padding: 14px; border: 1px solid var(--fsd-border); border-radius: 7px; background: #fff; }
    .fsd-catalogue .fsd-table tr.fsd-product-row > * { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 0; padding: 7px 0; width: 100%; }
    .fsd-catalogue .fsd-table tr.fsd-product-row > th { display: block; padding-top: 0; padding-bottom: 8px; font-size: 16px; }
    .fsd-catalogue .fsd-table td[data-label]::before { content: attr(data-label); color: var(--fsd-muted); font-size: 12px; font-weight: 600; flex: 0 0 72px; white-space: nowrap; }
    .fsd-catalogue a.fsd-download { width: auto; flex: 1; max-width: 230px; min-height: 42px; }
    .fsd-catalogue .fsd-product-category { text-align: end; }
    .fsd-catalogue .fsd-product-category::before { text-align: start; }
    .fsd-catalogue .fsd-empty-row { display: block; }
    .fsd-catalogue .fsd-empty-row td { display: block; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .fsd-catalogue a.fsd-download { transition: none; } }
