.products-page{max-width:var(--container-max);margin-inline:auto;padding:var(--space-6) var(--container-pad) var(--space-16)}@media (min-width: 768px){.products-page{padding:var(--space-8) var(--container-pad-desktop) var(--space-20)}}.products-page__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.products-page__title{margin:0;font-size:var(--text-2xl);font-weight:600;letter-spacing:-.02em;color:var(--color-text-primary)}@media (min-width: 768px){.products-page__title{font-size:var(--text-3xl)}}.products-page__filters-toggle{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);background:var(--color-surface-card);border:1px solid var(--color-border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.products-page__filters-toggle:hover{background:var(--color-action-ghost-bg-hover);color:var(--color-text-primary);border-color:var(--color-border-strong)}.products-page__filters-toggle:focus-visible{outline:none;border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}@media (min-width: 1024px){.products-page__filters-toggle{display:none}}.products-page__filters-toggle-label{display:none}@media (min-width: 480px){.products-page__filters-toggle-label{display:inline}}.products-page__layout{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media (min-width: 1024px){.products-page__layout{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);gap:var(--space-6);align-items:start}}@media (min-width: 1024px){.products-page__layout--filters-collapsed{grid-template-columns:var(--splitter-width) minmax(0, 1fr);gap:var(--space-4)}}.products-page__main{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.products-filters{position:fixed;inset:0;z-index:var(--z-overlay);display:flex;flex-direction:column;width:min(85vw,22rem);max-width:100%;background:var(--color-surface-card);border-right:1px solid var(--color-border-subtle);box-shadow:var(--shadow-lg);transform:translateX(-100%);transition:transform var(--duration-slow) var(--ease-out);overflow-y:auto}@media (min-width: 1024px){.products-filters{inset:auto;position:sticky;top:var(--header-height);align-self:start;width:auto;height:calc(100vh - var(--header-height));max-height:none;transform:none;background:rgba(0,0,0,0);border-right:none;box-shadow:none;overflow:visible;z-index:auto;flex-direction:row;align-items:stretch}}.products-filters--open{transform:translateX(0)}@media (min-width: 1024px){.products-filters--collapsed .products-filters__content{display:none}}.products-filters__content{display:flex;flex-direction:column;flex:1;min-height:0}@media (min-width: 1024px){.products-filters__content{min-width:0;height:100%;overflow-y:auto;padding:var(--space-4) 0;scrollbar-width:thin}.products-filters__content::-webkit-scrollbar{width:6px}.products-filters__content::-webkit-scrollbar-thumb{background:var(--color-border-default);border-radius:var(--radius-pill)}}.products-filters__splitter{display:none}@media (min-width: 1024px){.products-filters__splitter{display:flex;align-items:center;justify-content:center;flex:0 0 var(--splitter-width);width:var(--splitter-width);padding:0;background:rgba(0,0,0,0);border:0;border-left:1px solid var(--color-border-subtle);color:var(--color-text-tertiary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.products-filters__splitter:hover{background:var(--color-action-ghost-bg-hover);color:var(--color-text-primary);border-left-color:var(--color-border-strong)}.products-filters__splitter:focus-visible{outline:none;color:var(--color-text-primary);border-left-color:var(--color-border-focus);box-shadow:inset 2px 0 0 var(--color-border-focus)}}.products-filters__splitter-handle{display:inline-flex;align-items:center;justify-content:center;width:100%;height:2.5rem;background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);color:inherit;box-shadow:var(--shadow-sm)}:root{--splitter-width: 1.25rem}.products-filters__overlay{position:fixed;inset:0;z-index:calc(var(--z-overlay) - 1);background:var(--color-surface-overlay);opacity:0;visibility:hidden;transition:opacity var(--duration-base) var(--ease-out),visibility var(--duration-base) var(--ease-out)}@media (min-width: 1024px){.products-filters__overlay{display:none}}.products-filters__overlay--visible{opacity:1;visibility:visible}.products-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-12) var(--space-4);text-align:center;background:var(--color-surface-card);border:1px dashed var(--color-border-subtle);border-radius:var(--radius-lg);color:var(--color-text-secondary)}.sidebar-filters{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4)}@media (min-width: 1024px){.sidebar-filters{padding-right:var(--space-4)}}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-subtle)}.sidebar-title{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary)}.sidebar-close{display:inline-flex;align-items:center;justify-content:center;width:var(--button-height-sm);height:var(--button-height-sm);padding:0;color:var(--color-text-secondary);background:rgba(0,0,0,0);border:0;border-radius:var(--radius-sm);cursor:pointer}.sidebar-close:hover{background:var(--color-action-ghost-bg-hover);color:var(--color-text-primary)}@media (min-width: 1024px){.sidebar-close{display:none}}.filter-form,.sidebar-taxonomy{display:flex;flex-direction:column;gap:var(--space-4)}.filter-group{display:flex;flex-direction:column;gap:var(--space-2)}.filter-group>label,.filter-group>legend,.filter-group>h4,.filter-chips__group-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0}.filter-input{width:100%;padding:0 var(--space-3);height:var(--input-height);background:var(--color-surface-card);border:1px solid var(--color-border-default);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary)}.filter-input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}.price-inputs{display:flex;align-items:center;gap:var(--space-2)}.price-input-group{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:0}.price-input-label{font-size:var(--text-xs);color:var(--color-text-tertiary)}.price-input{width:100%;padding:0 var(--space-2);height:var(--input-height);background:var(--color-surface-card);border:1px solid var(--color-border-default);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary)}.price-input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}.price-input-separator{color:var(--color-text-tertiary);padding-top:var(--space-4)}.price-slider-container{position:relative;padding:var(--space-4) 0 var(--space-2)}.price-slider-track{position:relative;height:4px;background:var(--color-bg-inset);border-radius:var(--radius-pill)}.price-slider{position:absolute;inset:0;width:100%;height:4px;background:rgba(0,0,0,0);pointer-events:none;-webkit-appearance:none;appearance:none}.price-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:auto;width:16px;height:16px;background:var(--color-accent);border:2px solid var(--color-action-primary-fg);border-radius:var(--radius-pill);cursor:pointer;box-shadow:var(--shadow-sm)}.price-slider::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;background:var(--color-accent);border:2px solid var(--color-action-primary-fg);border-radius:var(--radius-pill);cursor:pointer;box-shadow:var(--shadow-sm)}.price-slider-labels{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-2)}.price-slider-value{font-weight:500;color:var(--color-text-primary)}.price-slider-separator{color:var(--color-text-tertiary)}.filter-chips-container{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-1) 0}.filter-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.filter-chips__group{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.filter-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-accent-tint);color:var(--color-text-accent);border:1px solid rgba(0,0,0,0);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:500}.filter-chip-label{opacity:.75;text-transform:capitalize}.filter-chip-value{font-weight:600}.filter-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;padding:0;color:inherit;background:rgba(0,0,0,0);border:0;border-radius:var(--radius-pill);cursor:pointer;opacity:.7}.filter-chip-remove:hover{opacity:1;background:var(--color-action-ghost-bg-hover)}.filter-chip-clear-all{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);background:rgba(0,0,0,0);color:var(--color-text-secondary);border:0;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:500;cursor:pointer}.filter-chip-clear-all:hover{color:var(--color-text-danger);text-decoration:underline}.products-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.sort-bar{display:inline-flex;align-items:stretch;flex-wrap:nowrap;width:100%;max-width:100%;border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-surface-card)}@media (min-width: 640px){.sort-bar{width:auto}}.sort-bar__btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);flex:1 1 0;min-width:0;padding:var(--space-2) var(--space-2);background:var(--color-surface-card);color:var(--color-text-secondary);border:0;border-right:1px solid var(--color-border-subtle);border-radius:0;font-size:var(--text-xs);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;transition:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}@media (min-width: 640px){.sort-bar__btn{flex:0 0 auto;padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}}.sort-bar__btn:first-child{border-top-left-radius:calc(var(--radius-md) - 1px);border-bottom-left-radius:calc(var(--radius-md) - 1px)}.sort-bar__btn:last-child{border-right:0;border-top-right-radius:calc(var(--radius-md) - 1px);border-bottom-right-radius:calc(var(--radius-md) - 1px)}.sort-bar__btn:hover{background:var(--color-action-ghost-bg-hover);color:var(--color-text-primary)}.sort-bar__btn:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--color-border-focus);position:relative;z-index:1}.sort-bar__btn--active{background:var(--color-accent-tint-strong);color:var(--color-text-accent);font-weight:600;box-shadow:inset 0 2px 4px rgba(0,0,0,.18),inset 0 0 0 1px var(--color-border-accent)}.sort-bar__btn--active .sort-bar__direction{color:var(--color-text-accent)}.sort-bar__btn--active:hover{background:var(--color-accent-tint-strong);color:var(--color-text-accent)}.sort-bar__btn-label{overflow:hidden;text-overflow:ellipsis}.sort-bar__direction{display:inline-flex;color:var(--color-text-tertiary)}.sort-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);font-style:italic}.tag-autocomplete-container{position:relative;display:flex;flex-direction:column;gap:var(--space-1)}.tag-autocomplete-input{width:100%}.tag-autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;z-index:var(--z-popover);margin-top:var(--space-1);max-height:18rem;overflow-y:auto;background:var(--color-surface-card);border:1px solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-1)}.tag-autocomplete-item-name{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;border-radius:var(--radius-sm)}.tag-autocomplete-item-name:hover{background:var(--color-action-ghost-bg-hover)}.tag-autocomplete-empty,.tag-autocomplete-loading{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-tertiary);text-align:center}.tag-add-icon{display:inline-flex;color:var(--color-text-tertiary)}.pagination{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);margin-top:var(--space-8)}.pagination-controls{display:flex;align-items:center;gap:var(--space-1)}.pagination-pages{display:flex;align-items:center;gap:var(--space-1)}.pagination-button,.pagination-page{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:2rem;height:2rem;padding:0 var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-card);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;text-decoration:none;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.pagination-button:hover:not(:disabled):not(.pagination-disabled):not(.pagination-current),.pagination-page:hover:not(:disabled):not(.pagination-disabled):not(.pagination-current){background:var(--color-bg-section);border-color:var(--color-border-default);color:var(--color-text-primary)}.pagination-button:focus-visible,.pagination-page:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.pagination-button:disabled,.pagination-button.pagination-disabled,.pagination-page:disabled,.pagination-page.pagination-disabled{opacity:.4;cursor:not-allowed}.pagination-page{padding:0 var(--space-2)}.pagination-page.pagination-current,.pagination-current{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);font-weight:600;cursor:default}@media (max-width: 480px){.pagination-button-text{display:none}}.pagination-icon{flex-shrink:0;display:inline-flex}.pagination-ellipsis{padding:0 var(--space-2);color:var(--color-text-tertiary);font-size:var(--text-sm);user-select:none}input.pagination-page.pagination-current{width:auto;min-width:2rem;field-sizing:content;padding:0 var(--space-2);text-align:center;font:inherit;font-weight:600;cursor:text;-moz-appearance:textfield;appearance:textfield}input.pagination-page.pagination-current::-webkit-inner-spin-button,input.pagination-page.pagination-current::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input.pagination-page.pagination-current:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.pagination-range{margin:0;font-size:var(--text-xs);color:var(--color-text-tertiary)}.pagination-range strong{color:var(--color-text-secondary);font-weight:600}.pagination--compact{margin-top:var(--space-3);gap:var(--space-2)}.pagination--compact .pagination-button-text{display:none}.pagination--compact .pagination-button{padding:0 var(--space-2);min-width:1.75rem}.pagination--compact .pagination-page{padding:0 var(--space-1);min-width:1.75rem;height:1.75rem}.pagination--compact .pagination-info{font-size:var(--text-xs)}.taxonomy-browser{margin-top:var(--space-3)}.taxonomy-title{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--space-2)}.taxonomy-list{list-style:none;margin:0;padding:0}.taxonomy-node{margin:0;padding:0}.taxonomy-node-content{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) 0;min-height:2rem}.taxonomy-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;min-width:1.25rem;padding:0;border:0;background:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-tertiary);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.taxonomy-toggle:hover{color:var(--color-text-accent);background:var(--color-accent-tint)}.taxonomy-arrow{display:inline-block;line-height:1}.taxonomy-toggle-spacer{display:inline-block;width:1.25rem;min-width:1.25rem}.taxonomy-node-link{position:relative;display:flex;gap:var(--space-2);align-items:center;justify-content:space-between;flex:1;color:var(--color-text-primary);text-decoration:none;font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border:0;background:rgba(0,0,0,0);cursor:pointer;text-align:left;border-radius:var(--radius-sm);min-height:2rem;transition:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.taxonomy-node-link:hover{color:var(--color-text-accent);background:var(--color-accent-tint)}.taxonomy-node-link:hover .tag-add-icon{opacity:1;transform:scale(1)}.taxonomy-node-active{color:var(--color-text-accent);background:var(--color-accent-tint);font-weight:600}.taxonomy-node-active .taxonomy-node-count{color:var(--color-text-accent);opacity:.7}.taxonomy-node-name{font-weight:500}.taxonomy-node-count{font-size:var(--text-xs);color:var(--color-text-tertiary)}.tag-add-icon{opacity:0;transform:scale(.8);width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;background:var(--color-accent);color:var(--color-text-on-accent);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700;cursor:pointer;flex-shrink:0;margin-left:var(--space-1);transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.tag-add-icon:hover{background:var(--color-accent-hover);transform:scale(1.08)}.tag-remove-icon{opacity:1;transform:scale(1);background:var(--color-danger-fg-strong)}.tag-remove-icon:hover{filter:brightness(.9)}.taxonomy-node-active .tag-add-icon{opacity:1;transform:scale(1)}.taxonomy-loading,.taxonomy-loading-children{padding:var(--space-3);font-size:var(--text-sm);color:var(--color-text-tertiary)}.sidebar-taxonomy .taxonomy-title{font-size:var(--text-xs)}