/* Mordome Marketplace controls. Listing data and detail pages stay native. */
.marketplace { --marketplace-selected: var(--color-primary-light, #e6edf4); }
.marketplace__layout { display: grid; grid-template-columns: 16rem minmax(0, 1fr); align-items: start; gap: 2rem; padding-block: 2.5rem 4rem; }
.marketplace__sidebar { position: sticky; top: 1.5rem; min-width: 0; max-height: calc(100vh - 3rem); max-height: calc(100dvh - 3rem); overflow-y: auto; scrollbar-width: thin; }
.marketplace__filter-panel { border: 1px solid var(--directory-line); border-radius: 1rem; background: var(--directory-surface); }
.marketplace__filter-body { padding: 1.25rem; }
.marketplace__filter-heading { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; margin-bottom: 1.5rem; }
.marketplace .marketplace__filter-heading h2 { margin: 0; color: var(--directory-ink); font: 600 1.125rem/1.4 var(--font-body, system-ui, sans-serif); }
.marketplace__filter-heading a { color: var(--directory-accent); font-size: .75rem; text-underline-offset: .2rem; }
.marketplace__filter-group { min-width: 0; padding: 0 0 1.5rem; margin: 0 0 1.5rem; border: 0; border-bottom: 1px solid var(--directory-line); }
.marketplace__filter-group legend { float: left; width: 100%; padding: 0; margin-bottom: .875rem; font-size: .8125rem; font-weight: 600; letter-spacing: .015em; }
.marketplace__filter-group legend + * { clear: both; }
.marketplace__choices { display: grid; gap: .375rem; max-height: 16rem; overflow-y: auto; scrollbar-width: thin; }
.marketplace__choice { display: flex; align-items: center; gap: .625rem; min-height: 2.875rem; padding: .625rem .75rem; border: 1px solid transparent; border-radius: .625rem; font-size: .8125rem; line-height: 1.4; cursor: pointer; }
.marketplace__choice:hover { background: var(--marketplace-selected); }
.marketplace__choice:has(input:checked) { border-color: var(--color-primary-light, #d3e0ee); background: var(--marketplace-selected); color: var(--directory-accent); font-weight: 600; }
.marketplace__choice input { appearance: none; -webkit-appearance: none; flex: 0 0 1rem; width: 1rem; height: 1rem; margin: 0; padding: 0; border: 1.5px solid #8999a6; border-radius: 50%; background: transparent; cursor: pointer; }
.marketplace__choice input:checked { border-color: var(--directory-accent); background: var(--directory-accent); box-shadow: inset 0 0 0 3px var(--directory-surface); }
.marketplace__choice input[type="checkbox"] { border-radius: .2rem; }
.marketplace__count { margin-inline-start: auto; padding: .15rem .4rem; border-radius: .35rem; background: var(--directory-surface); color: var(--directory-muted); font-size: .6875rem; font-variant-numeric: tabular-nums; }
.marketplace__segments { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem; padding: .25rem; border: 1px solid var(--directory-line); border-radius: .65rem; background: #fff5; }
.marketplace__segments label, .marketplace__sort-option { position: relative; cursor: pointer; }
.marketplace__segments input, .marketplace__sort-option input { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.marketplace__segments span { display: flex; justify-content: center; align-items: center; min-height: 2.5rem; padding: .5rem; border-radius: .4rem; font-size: .8125rem; transition: background .15s, color .15s; }
.marketplace__segments input:checked + span { background: var(--directory-accent); color: var(--directory-surface); font-weight: 600; }
.marketplace__segments input:focus-visible + span, .marketplace__sort-option:has(input:focus-visible) { outline: 3px solid var(--directory-accent); outline-offset: 2px; }
.marketplace .marketplace__apply { display: flex; justify-content: space-between; align-items: center; gap: 1rem; width: 100%; min-height: 3rem; padding: .75rem 1rem; border-radius: .625rem; font-size: .875rem; font-weight: 600; }
.marketplace__apply:hover { background: var(--color-primary-dark, #17334f); }
.marketplace svg { flex-shrink: 0; width: 1.125rem; height: 1.125rem; }
.marketplace__filter-toggle { display: none; }
.marketplace__results { min-width: 0; padding: 0; }
.marketplace__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3rem; margin-bottom: 1.5rem; }
.marketplace__toolbar p { margin: 0; color: var(--directory-muted); font-size: .875rem; }
.marketplace__toolbar strong { color: var(--directory-ink); font-weight: 600; }
.marketplace__sort { position: relative; z-index: 3; font-size: .8125rem; }
.marketplace__sort summary { display: flex; align-items: center; gap: .75rem; min-height: 3rem; padding: .75rem 1rem; border: 1px solid var(--directory-line); border-radius: .625rem; background: var(--directory-surface); list-style: none; cursor: pointer; }
.marketplace summary::-webkit-details-marker { display: none; }
.marketplace__sort summary:hover { border-color: var(--directory-accent); }
.marketplace__sort-label { color: var(--directory-muted); }
.marketplace__sort [data-marketplace-sort-label] { font-weight: 600; }
.marketplace__chevron { transition: transform .15s; }
.marketplace details[open] > summary .marketplace__chevron { transform: rotate(180deg); }
.marketplace__sort-options { position: absolute; inset-block-start: calc(100% + .5rem); inset-inline-end: 0; width: max-content; min-width: 100%; max-width: min(19rem, calc(100vw - 2rem)); margin: 0; padding: .375rem; border: 1px solid var(--directory-line); border-radius: .75rem; background: var(--directory-surface); box-shadow: 0 12px 32px #1930471c, 0 2px 5px #1930470d; }
.marketplace__sort-option { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 2.75rem; padding: .625rem .75rem; border-radius: .4rem; white-space: nowrap; }
.marketplace__sort-option:hover { background: var(--marketplace-selected); }
.marketplace__sort-option:has(input:checked) { background: var(--marketplace-selected); color: var(--directory-accent); font-weight: 600; }
.marketplace__sort-option svg { visibility: hidden; }
.marketplace__sort-option:has(input:checked) svg { visibility: visible; }
.marketplace .directory__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.marketplace__empty { grid-column: 1 / -1; padding: 2rem; border: 1px dashed var(--directory-line); border-radius: .75rem; text-align: center; }
@media (max-width: 75rem) {
  .marketplace__layout { grid-template-columns: 15rem minmax(0, 1fr); gap: 1.5rem; }
  .marketplace .directory__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 48rem) {
  .marketplace__layout { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; padding-block: 1.5rem 3rem; }
  .marketplace__sidebar { position: static; max-height: none; overflow: visible; }
  .marketplace__filter-toggle { display: flex; align-items: center; gap: .625rem; min-height: 3.25rem; padding: .875rem 1rem; list-style: none; font-size: .875rem; font-weight: 600; }
  .marketplace__filter-toggle > .marketplace__chevron { margin-inline-start: auto; }
  .marketplace__filter-panel[open] > summary { border-bottom: 1px solid var(--directory-line); }
  .marketplace__filter-heading h2 { display: none; }
  .marketplace__filter-heading { justify-content: flex-end; margin-bottom: 1rem; }
  .marketplace__filter-heading a { font-size: .8125rem; }
  .marketplace__filter-count { min-width: 1.25rem; padding: .125rem .375rem; border-radius: 1rem; background: var(--directory-accent); color: var(--directory-surface); text-align: center; font-size: .6875rem; }
  .marketplace__toolbar { gap: .5rem; margin-bottom: 1rem; }
  .marketplace__sort summary { gap: .5rem; min-height: 2.75rem; padding: .625rem .75rem; }
  .marketplace__sort-label { display: none; }
}
@media (max-width: 36rem) { .marketplace .directory__grid { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .marketplace * { transition: none !important; } }
