/* Shared control language: quiet surfaces, blue selection, visible keyboard focus. */
:root{--field-bg:#f7f9fc;--field-line:#c6cfdb;--field-hover:#a4b4c9}
input:not([type=checkbox]):not([type=radio]),textarea,select{background:var(--field-bg);border-color:var(--field-line);transition:border-color .15s,box-shadow .15s,background .15s}
input:not([type=checkbox]):not([type=radio]):hover,textarea:hover,select:hover{border-color:var(--field-hover)}
input:not([type=checkbox]):not([type=radio]):focus,textarea:focus,select:focus{background:white;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
input::placeholder,textarea::placeholder{color:#657386;opacity:1}
input[type=number]{appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type=checkbox],input[type=radio]{appearance:none;-webkit-appearance:none;width:20px;height:20px;min-width:20px;flex:none;margin:0;border:1.5px solid #8898ad;background:white;display:inline-grid;place-content:center;vertical-align:middle;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}
input[type=checkbox]{border-radius:6px}input[type=radio]{border-radius:50%}
input[type=checkbox]:checked,input[type=radio]:checked{border-color:var(--blue);background:var(--blue)}
input[type=checkbox]::after{content:"";width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg);opacity:0}
input[type=radio]::after{content:"";width:8px;height:8px;border-radius:50%;background:white;opacity:0}
input[type=checkbox]:checked::after,input[type=radio]:checked::after{opacity:1}
input[type=checkbox]:hover,input[type=radio]:hover{border-color:var(--blue)}
input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
input[type=checkbox][aria-invalid=true],input[type=radio][aria-invalid=true]{border-color:var(--danger)}
.check-row{cursor:pointer}.check-row:has(input:focus-visible){border-radius:8px}
.radio-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.radio-options .check-row,.checkbox-options .check-row{border:1px solid var(--field-line);border-radius:12px;padding:14px;background:var(--field-bg);align-items:center;gap:10px;min-height:52px;transition:border-color .15s,background .15s}
.radio-options .check-row:has(:checked),.checkbox-options .check-row:has(:checked){border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.radio-options .check-row:hover,.checkbox-options .check-row:hover{border-color:var(--blue)}
.checkbox-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.optional-fields{border:1px solid var(--line);border-radius:12px;background:var(--field-bg);overflow:hidden}
.optional-fields summary{position:relative;padding:16px 42px 16px 16px;list-style:none}.optional-fields summary::-webkit-details-marker{display:none}
.optional-fields summary::after{content:"";position:absolute;right:18px;top:21px;width:7px;height:7px;border:solid var(--muted);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.optional-fields[open] summary::after{transform:rotate(225deg);top:25px}.optional-fields[open] summary{border-bottom:1px solid var(--line)}
.optional-fields>div{padding:20px 16px 0;background:white}
.icon-button{color:var(--muted);background:var(--field-bg);border:1px solid var(--line);transition:background .15s,color .15s}.icon-button:hover{background:var(--blue-soft);color:var(--blue)}
/* Catalogue: one deliberate selection panel rather than nested default widgets. */
.filter-panel{padding:20px;border-color:var(--line);box-shadow:0 4px 20px #17212f05}
.filter-title{margin-bottom:20px;gap:8px}.filter-title .eyebrow{font-size:11px;margin-bottom:4px;letter-spacing:.06em}.filter-title h2{font-size:20px}
.filter-panel fieldset{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}
.filter-panel legend{float:left;width:100%;margin-bottom:12px;font-size:13px}.filter-panel legend+*{clear:both}
.filter-panel .category-options{border:0;padding:0;margin:0}
.choice-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px;border:1px solid transparent;border-radius:10px;font-size:13px;line-height:1.4;cursor:pointer;margin-bottom:4px;transition:background .15s,border-color .15s}
.choice-row input{width:18px;height:18px;min-width:18px}.choice-row:hover{background:var(--field-bg)}.choice-row:has(:checked){color:var(--blue);background:var(--blue-soft);border-color:#c7dbff;font-weight:600}
.range-fields{gap:8px}.range-fields label{display:flex;align-items:center;gap:6px;min-width:0;background:var(--field-bg);border:1px solid var(--field-line);border-radius:10px;padding:0 10px}
.range-fields label>span{font-size:12px;color:var(--muted)}
.range-fields input{margin:0;border:0!important;background:transparent!important;padding:12px 0;min-height:46px;border-radius:8px;box-shadow:none!important;font-size:16px}
.range-fields label:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);background:white}
.range-fields input:focus-visible{outline:0}
.filter-panel .check-row{font-size:12px;gap:8px;align-items:flex-start;padding:14px 0 0}
.filter-panel .check-row input{width:18px;height:18px;min-width:18px;margin-top:1px}
.filter-explainer{margin:20px 0;border-top:1px solid var(--line);padding-top:16px}.filter-explainer summary{font-size:12px;line-height:1.5;color:var(--muted);cursor:pointer;min-height:32px}
.filter-explainer .hint{font-size:12px;margin:12px 0 0}
.filter-actions{gap:4px}.filter-actions .button{font-size:14px}.filter-actions .text-button{font-size:13px}
.catalog-toolbar{align-items:stretch;gap:12px}.catalog-toolbar form{flex:0 1 auto;min-width:0}
.sort-picker{position:relative;min-width:218px;max-width:100%;font-size:14px}
.sort-picker summary{display:flex;align-items:center;gap:10px;list-style:none;border:1px solid var(--field-line);background:white;border-radius:12px;min-height:48px;padding:10px 14px;cursor:pointer;user-select:none}
.sort-picker summary::-webkit-details-marker{display:none}.sort-picker summary:hover{border-color:var(--blue)}.sort-picker[open] summary{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.sort-caption{font-size:12px;color:var(--muted)}.sort-value{font-weight:600}.control-chevron{width:7px;height:7px;border:solid var(--muted);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);margin-left:auto;flex:none}
.sort-picker[open] .control-chevron{transform:rotate(225deg)}
.sort-options{position:absolute;right:0;top:calc(100% + 8px);z-index:10;min-width:100%;width:250px;max-width:calc(100vw - 32px);padding:6px;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px #17212f20}
.sort-options button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;border:0;border-radius:8px;background:white;padding:12px;text-align:left;min-height:44px;font-size:14px}
.sort-options button:hover,.sort-options button:focus-visible{background:var(--field-bg)}.sort-options button[aria-pressed=true]{background:var(--blue-soft);color:var(--blue);font-weight:600}
.option-check{width:6px;height:10px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg);visibility:hidden;flex:none;margin-right:4px}.sort-options [aria-pressed=true] .option-check{visibility:visible}
.chip{border:1px solid #c7dbff;background:var(--blue-soft)}.chip:hover{border-color:var(--blue);text-decoration:none;background:#dfebff}
@media(min-width:1024px){.catalog-layout{grid-template-columns:248px minmax(0,1fr)}}
@media(min-width:1280px){.catalog-layout{grid-template-columns:268px minmax(0,1fr)}}
@media(max-width:599px){.sort-caption{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.sort-picker{min-width:0;width:100%}.catalog-toolbar form{flex:1}.sort-picker summary{padding-inline:12px;gap:8px;font-size:13px}.checkbox-options{grid-template-columns:1fr}.filter-dialog .filter-panel{padding:24px 20px max(20px,env(safe-area-inset-bottom))}.filter-actions{position:sticky;bottom:0;background:white;padding-top:12px;box-shadow:0 -10px 14px white;z-index:1}.radio-options .check-row{padding:12px}}
@media(forced-colors:active){input[type=checkbox],input[type=radio]{appearance:auto;-webkit-appearance:auto}input[type=checkbox]::after,input[type=radio]::after{display:none}.choice-row:has(:checked),.radio-options .check-row:has(:checked),.checkbox-options .check-row:has(:checked){outline:1px solid Highlight}.sort-options button[aria-pressed=true]{outline:1px solid Highlight}}

.filter-dialog{scroll-padding-bottom:140px}

@media(forced-colors:active){.range-fields label:focus-within{outline:2px solid Highlight;outline-offset:2px}}

.choice-row a{color:inherit;text-decoration:none;flex:1}
