/* Mine Mirth Shop Pro. Uses the Mine Mirth theme's colours and fonts, light and dark. */
.mmsp-filters {
	--c: var(--mm-primary, #35a8f6);
	--t: var(--mm-text, #0a1626);
	--m: var(--mm-muted, #506279);
	--s: var(--mm-surface, #fff);
	--s2: var(--mm-bg-alt, #eaf2fa);
	--b: var(--mm-border, #d9e4ef);
	--ok: var(--mm-success, #12b981);
	--warn: var(--mm-warning, #f5a524);
	--bad: var(--mm-danger, #f04461);
	color: var(--t);
}

/* ---------- Filter panel ---------- */
.mmsp-filters { display: grid; gap: 4px; margin-bottom: 20px; transition: opacity .2s; }
.mmsp-filters.is-loading { opacity: .55; pointer-events: none; }
.mmsp-filters__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 6px; }
.mmsp-filters__head strong { font-size: 1.05rem; }
.mmsp-clear { font-size: .82rem; font-weight: 600; color: var(--c); }
.mmsp-chips { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 8px; }
.mmsp-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; background: color-mix(in srgb, var(--c) 14%, transparent); color: var(--t); font-size: .8rem; font-weight: 600; text-decoration: none !important; }
.mmsp-chip span { opacity: .7; }
.mmsp-chip:hover { background: color-mix(in srgb, var(--c) 24%, transparent); }

.mmsp-group { margin: 0; padding: 14px 0; border: 0; border-top: 1px solid var(--b); min-width: 0; }
.mmsp-group legend { float: left; width: 100%; display: flex; align-items: center; gap: 8px; margin-bottom: 10px; padding: 0; font-weight: 700; font-size: .9rem; }
.mmsp-group legend + * { clear: both; }
.mmsp-n { min-width: 20px; padding: 0 7px; border-radius: 999px; background: var(--c); color: var(--mm-on-primary, #03111f); font-size: .7rem; text-align: center; line-height: 18px; }

/* Availability: three clear choices with their colour */
.mmsp-stock { display: grid; gap: 6px; }
.mmsp-stock__opt { position: relative; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--b); border-radius: 12px; background: var(--s); cursor: pointer; font-weight: 600; font-size: .9rem; transition: border-color .2s, background-color .2s; }
.mmsp-stock__opt input { position: absolute; opacity: 0; pointer-events: none; }
.mmsp-stock__dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent); }
.mmsp-stock__opt.is-instock .mmsp-stock__dot { background: var(--ok); color: var(--ok); }
.mmsp-stock__opt.is-preorder .mmsp-stock__dot { background: var(--warn); color: var(--warn); }
.mmsp-stock__opt.is-outofstock .mmsp-stock__dot { background: var(--bad); color: var(--bad); }
.mmsp-stock__label { flex: 1; }
.mmsp-stock__opt small { color: var(--m); font-family: var(--mm-font-mono, monospace); font-size: .78rem; }
.mmsp-stock__opt:hover { border-color: var(--c); }
.mmsp-stock__opt:has(input:checked) { border-color: var(--c); background: color-mix(in srgb, var(--c) 10%, var(--s)); }
.mmsp-stock__opt:has(input:checked)::after { content: "✓"; color: var(--c); font-weight: 700; }
.mmsp-stock__opt:has(input:focus-visible) { box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 30%, transparent); }
.mmsp-stock__opt.is-empty { opacity: .55; }

/* Checkbox rows */
.mmsp-check { display: flex; align-items: center; gap: 10px; padding: 6px 4px; border-radius: 8px; font-size: .9rem; font-weight: 500; cursor: pointer; }
.mmsp-check:hover { background: color-mix(in srgb, var(--c) 8%, transparent); }
.mmsp-check span { flex: 1; min-width: 0; }
.mmsp-check small, .mmsp-pill small { color: var(--m); font-family: var(--mm-font-mono, monospace); font-size: .74rem; }
.mmsp-check[hidden] { display: none; }

/* Category tree */
.mmsp-tree, .mmsp-tree__kids { margin: 0; padding: 0; list-style: none; }
.mmsp-tree__kids { display: none; margin-left: 14px; padding-left: 10px; border-left: 1px solid var(--b); }
.mmsp-tree__item.is-open > .mmsp-tree__kids { display: block; }
.mmsp-tree__row { display: flex; align-items: center; }
.mmsp-tree__row .mmsp-check { flex: 1; }
.mmsp-tree__toggle { width: 28px; height: 28px; flex-shrink: 0; border: 0; border-radius: 8px; background: transparent; color: var(--m); cursor: pointer; position: relative; }
.mmsp-tree__toggle::before { content: ""; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translate(-50%, -70%) rotate(45deg); transition: transform .2s; }
.mmsp-tree__item.is-open > .mmsp-tree__row .mmsp-tree__toggle::before { transform: translate(-50%, -30%) rotate(-135deg); }
.mmsp-tree__toggle:hover { background: var(--s2); color: var(--t); }

/* Attributes: pills for short lists, searchable list for long ones */
.mmsp-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.mmsp-pill { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--b); border-radius: 999px; background: var(--s); font-size: .84rem; font-weight: 600; cursor: pointer; transition: border-color .2s, background-color .2s, color .2s; }
.mmsp-pill input { position: absolute; opacity: 0; pointer-events: none; }
.mmsp-pill:hover { border-color: var(--c); }
.mmsp-pill:has(input:checked) { background: var(--c); border-color: var(--c); color: var(--mm-on-primary, #03111f); }
.mmsp-pill:has(input:checked) small { color: inherit; opacity: .75; }
.mmsp-pill:has(input:focus-visible) { box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 30%, transparent); }
.mmsp-find { width: 100%; min-height: 38px !important; margin-bottom: 8px; padding: 6px 12px !important; font-size: .86rem !important; }
.mmsp-list { display: grid; gap: 0; max-height: 240px; overflow: auto; padding-right: 4px; }

/* Price */
.mmsp-range { position: relative; height: 26px; margin: 4px 0 10px; }
.mmsp-range::before { content: ""; position: absolute; left: 0; right: 0; top: 11px; height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--s2) var(--a, 0%), var(--c) var(--a, 0%), var(--c) var(--b, 100%), var(--s2) var(--b, 100%)); }
.mmsp-range input[type="range"] { position: absolute; left: 0; top: 0; width: 100%; height: 26px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; border: 0 !important; box-shadow: none !important; min-height: 0 !important; padding: 0 !important; }
.mmsp-range input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--s); border: 2px solid var(--c); pointer-events: auto; cursor: pointer; box-shadow: 0 2px 6px rgba(0, 0, 0, .15); }
.mmsp-range input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--s); border: 2px solid var(--c); pointer-events: auto; cursor: pointer; }
.mmsp-price { display: flex; align-items: center; gap: 6px; }
.mmsp-price label { position: relative; flex: 1; min-width: 0; }
.mmsp-price label span { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--m); font-size: .82rem; pointer-events: none; }
.mmsp-price input { width: 100%; min-height: 40px !important; padding: 6px 8px 6px 26px !important; font-size: .88rem !important; -moz-appearance: textfield; }
.mmsp-price input::-webkit-inner-spin-button { -webkit-appearance: none; }
.mmsp-go { min-height: 40px; padding: 0 14px; border: 0; border-radius: 10px; background: var(--c); color: var(--mm-on-primary, #03111f); font-weight: 700; cursor: pointer; }
.mmsp-apply { width: 100%; min-height: 44px; margin-top: 10px; border: 0; border-radius: 999px; background: var(--c); color: var(--mm-on-primary, #03111f); font-weight: 700; }
