/* Public and partner filters: aligned controls, compact spacing, useful search width. */
:is(.public-site,.partner-app) form:is(.desk-filters,.partner-store-filters) { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin:0 0 20px; padding:12px; border:1px solid var(--line); border-radius:9px; background:var(--paper); }
:is(.public-site,.partner-app) form:is(.desk-filters,.partner-store-filters) > label { display:flex; flex-direction:column; flex:1 1 180px; gap:5px; min-width:0; margin:0; font-size:12px; line-height:1.4; }
:is(.public-site,.partner-app) form:is(.desk-filters,.partner-store-filters) > label:has(input[type=search]) { flex:2 1 260px; }
:is(.public-site,.partner-app) form:is(.desk-filters,.partner-store-filters) :is(input:not([type=hidden]),select) { width:100%; min-width:0; height:40px; min-height:40px; margin:0; padding:9px 11px; border-radius:6px; font-size:13px; line-height:1.4; }
:is(.public-site,.partner-app) form:is(.desk-filters,.partner-store-filters) > :is(button,a) { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; width:auto; min-height:40px; margin:0; padding:9px 13px; font-size:12px; line-height:1.4; white-space:nowrap; }

/* The same billing and map templates also render inside the partner shell. */
.partner-app form.ops-filter { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 20px; }
.partner-app form.ops-filter > :is(input:not([type=hidden]),select) { width:auto; min-width:0; max-width:100%; height:40px; min-height:40px; margin:0; padding:9px 11px; font-size:13px; line-height:1.4; }
.partner-app form.ops-filter > input:not([type=hidden]) { flex:2 1 260px; }
.partner-app form.ops-filter > select { flex:1 1 180px; }
.partner-app form.ops-filter > button { width:auto; min-height:40px; margin:0; padding:9px 13px; font-size:12px; line-height:1.4; white-space:nowrap; }

/* Context selectors remain compact without shrinking their touch targets. */
.partner-app form.partner-company-switch { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:6px; padding:0 0 12px; }
.partner-app form.partner-company-switch label { grid-column:1 / -1; font-size:11px; }
.partner-app form.partner-company-switch select { width:100%; min-width:0; height:40px; min-height:40px; padding:8px; font-size:12px; }
.partner-app form.partner-company-switch button { width:auto; min-height:40px; margin:0; padding:8px; font-size:12px; }
.partner-app .partner-demo-bar { gap:12px 20px; padding:12px; margin-bottom:20px; }
.partner-app .partner-demo-bar form { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; width:auto; min-width:0; }
.partner-app .partner-demo-bar label { grid-column:auto; width:auto; font-size:11px; }
.partner-app .partner-demo-bar :is(select,button) { width:auto; max-width:none; min-width:0; height:40px; min-height:40px; margin:0; padding:8px 10px; font-size:12px; line-height:1.4; }

.shop-page .shop-catalog-bar { align-items:end; gap:12px 24px; }
.shop-page .shop-search { align-items:center; max-width:none; min-width:0; margin:0; }
.shop-page .shop-search input { width:100%; min-width:0; height:44px; padding:10px 12px; font-size:14px; }
.shop-page .shop-search .button { flex:0 0 auto; min-height:44px; padding:10px 18px; font-size:13px; line-height:1.4; }
.shop-page .shop-price-mode { min-width:0; max-width:100%; }
.shop-page .shop-price-mode form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; }
.shop-page .shop-price-mode :is(select,button) { min-width:0; min-height:44px; margin:0; padding:8px; font-size:13px; }

@media(max-width:1100px) {
 .public-site form.desk-filters :is(input:not([type=hidden]),select),
 .partner-app .demo-frame form:is(.desk-filters,.partner-store-filters,.ops-filter,.partner-company-switch) :is(input:not([type=hidden]),select),
 .partner-app .demo-frame .partner-demo-bar form :is(input:not([type=hidden]),select),
 .shop-page .shop-search input,.shop-page .shop-price-mode select { min-height:44px; height:44px; font-size:16px; }
 :is(.public-site,.partner-app) form:is(.desk-filters,.partner-store-filters) > :is(button,a),
 .partner-app form.ops-filter > button,.partner-app .partner-demo-bar button,
 .partner-app form.partner-company-switch button { min-height:44px; font-size:13px; }
 .partner-app .partner-demo-bar form { width:100%; grid-template-columns:minmax(0,1fr) auto; }
 .partner-app .partner-demo-bar label { grid-column:1 / -1; }
 .partner-app .partner-demo-bar select { width:100%; }
}
@media(max-width:720px) {
 .shop-page .shop-catalog-bar { align-items:stretch; }
}
@media(max-width:600px) {
 :is(.public-site,.partner-app) form:is(.desk-filters,.partner-store-filters) { display:grid; grid-template-columns:minmax(0,1fr) auto; }
 :is(.public-site,.partner-app) form:is(.desk-filters,.partner-store-filters) > label:has(input[type=search]) { grid-column:1 / -1; }
 :is(.public-site,.partner-app) form.desk-filters:has(> label:nth-of-type(2)):has(> a) { grid-template-columns:minmax(0,1fr) auto auto; }
 :is(.public-site,.partner-app) form:is(.desk-filters,.partner-store-filters) > :is(button,a) { padding-inline:10px; }
 .partner-app form.ops-filter { display:grid; grid-template-columns:minmax(0,1fr) auto; }
 .partner-app form.ops-filter > input:not([type=hidden]) { grid-column:1 / -1; width:100%; }
 .partner-app form.ops-filter > select { width:100%; }
}
