:where(.hlf) {
    --hlf-accent: var(--e-global-color-primary, #355c43);
    --hlf-border: #dedede;
    --hlf-field-bg: transparent;
    --hlf-radius: .5rem;
    --hlf-gap: .65rem;
    display: flex;
    flex-direction: column;
    gap: var(--hlf-gap);
    min-width: 0;
    margin: 0;
    font-size: .875rem;
    line-height: 1.8;
    color: inherit;
}
:where(.hlf) *, :where(.hlf) *::before, :where(.hlf) *::after { box-sizing: border-box; }
:where(.hlf) .hlf-heading { font: inherit; font-weight: 600; margin: 0; }
:where(.hlf) .hlf-field {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem .75rem;
    border: 1px solid var(--hlf-border);
    border-radius: var(--hlf-radius);
    background: var(--hlf-field-bg);
    color: inherit;
    font: inherit;
    line-height: 1.6;
    box-shadow: none;
}
:where(.hlf) .hlf-field:focus-visible, :where(.hlf) a:focus-visible, :where(.hlf) button:focus-visible, :where(.hlf) input[type="checkbox"]:focus-visible {
    outline: var(--hlf-focus-width, 2px) solid var(--hlf-focus-color, var(--hlf-accent));
    outline-offset: 3px;
}
:where(.hlf) .hlf-search-wrap { position: relative; }
:where(.hlf) .hlf-search-wrap .hlf-field { padding-inline-end: 2.5rem; }
:where(.hlf) .hlf-search-icon { position: absolute; inset-inline-end: .8rem; top: 50%; transform: translateY(-50%); width: 1.1rem; height: 1.1rem; color: var(--hlf-accent); pointer-events: none; }
:where(.hlf) .hlf-categories { min-width: 0; margin: 0; padding: 0; border: 0; }
:where(.hlf) .hlf-category-list { display: flex; flex-direction: column; gap: var(--hlf-gap); list-style: none; margin: 0; padding: 0; }
:where(.hlf) .hlf-category-list li { margin: 0; padding: 0; list-style: none; }
:where(.hlf) .hlf-category-list .hlf-category-list { margin-block-start: var(--hlf-gap); padding-inline-start: 1.2rem; }
:where(.hlf) .hlf-category { display: flex; align-items: center; gap: .5rem; margin: 0; padding-block: .15rem; cursor: pointer; font: inherit; }
:where(.hlf) input[type="checkbox"] { appearance: auto; accent-color: var(--hlf-accent); width: 1.05rem; height: 1.05rem; flex: 0 0 1.05rem; margin: 0; cursor: pointer; }
:where(.hlf) .hlf-count { margin-inline-start: auto; opacity: .65; font-size: .85em; }
:where(.hlf) .hlf-reset, :where(.hlf) .hlf-status a { color: var(--hlf-accent); font: inherit; text-decoration: underline; text-underline-offset: .2em; }
:where(.hlf) .hlf-status { font-size: .85em; }
:where(.hlf) .hlf-status:empty { display: none; }
:where(.hlf) .hlf-status button { margin-inline: .5rem; }
:where(.hlf) .hlf-submit, :where(.hlf) .hlf-status button { padding: .35rem .7rem; border: 1px solid var(--hlf-border); border-radius: var(--hlf-radius); background: transparent; color: inherit; font: inherit; cursor: pointer; }
:where(.hlf) .hlf-dropdown { position: relative; min-width: 0; }
:where(.hlf) .hlf-dropdown > summary { display: flex; align-items: center; gap: .75rem; cursor: pointer; list-style: none; }
:where(.hlf) .hlf-dropdown > summary::-webkit-details-marker { display: none; }
:where(.hlf) .hlf-dropdown > summary::after { content: ''; width: .45rem; height: .45rem; border-inline-end: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); flex-shrink: 0; margin-inline-start: auto; }
:where(.hlf) .hlf-dropdown[open] > summary::after { transform: rotate(225deg); }
:where(.hlf) .hlf-category-caption { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
:where(.hlf) .hlf-dropdown > .hlf-categories { margin-block-start: .5rem; padding: .65rem; border: 1px solid var(--hlf-border); border-radius: var(--hlf-radius); max-height: 18rem; overflow-y: auto; overscroll-behavior: contain; }
:where(.hlf) .hlf-dropdown > summary:focus-visible { outline: var(--hlf-focus-width, 2px) solid var(--hlf-focus-color, var(--hlf-accent)); outline-offset: 3px; }
:where(.hlf, .hlf-loader) .hlf-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.hlf-grid-loading { position: relative; }
:where(.hlf-grid-loading) > :not(.hlf-loader) { opacity: var(--hlf-loading-opacity, .55); transition: opacity .15s ease; }
@media (prefers-reduced-motion: reduce) { :where(.hlf-grid-loading) > :not(.hlf-loader) { transition: none; } }

/* Only the pointer focus decoration is suppressed; keyboard focus stays visible. */
:where(.hlf) input.hlf-field:focus { border-color: var(--hlf-border); box-shadow: none; }
:where(.hlf.hlf-enhanced:not(.hlf-keyboard)) input.hlf-field:focus { outline: none; }
:where(.hlf.hlf-keyboard) input.hlf-field:focus-visible { outline: var(--hlf-focus-width, 2px) solid var(--hlf-focus-color, var(--hlf-accent)); }
:where(.hlf) .hlf-field::-webkit-search-cancel-button,
:where(.hlf) .hlf-field::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
:where(.hlf) .hlf-search-icon { transition: opacity .15s ease; }
:where(.hlf) .hlf-search-has-value .hlf-search-icon { opacity: 0; }
:where(.hlf) .hlf-clear { position: absolute; inset-inline-end: .35rem; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 2rem; height: 2rem; min-height: 0; padding: 0; border: 0; border-radius: var(--hlf-radius); background: transparent; color: inherit; box-shadow: none; cursor: pointer; }
:where(.hlf) .hlf-clear svg { width: 1.1rem; height: 1.1rem; }
:where(.hlf) .hlf-clear[hidden], .hlf-loader[hidden] { display: none; }
.hlf-loader { position: absolute; inset: 0; z-index: var(--hlf-loader-z-index, 5); display: grid; align-items: start; justify-items: center; box-sizing: border-box; padding-block-start: var(--hlf-loader-offset, 1.5rem); background: var(--hlf-loader-bg, rgb(255 255 255 / .35)); color: var(--hlf-accent, var(--e-global-color-primary, #355c43)); }
:where(.hlf-loader) .hlf-spinner { display: block; width: var(--hlf-loader-size, 2.25rem); height: var(--hlf-loader-size, 2.25rem); border: var(--hlf-loader-stroke, 3px) solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: hlf-spin .7s linear infinite; }
@keyframes hlf-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { :where(.hlf) .hlf-search-icon { transition: none; } :where(.hlf-loader) .hlf-spinner { animation: none; } }
