/* One dialog and one state model on both screen sizes. */
#mobileFilterButton { display:inline-flex; align-items:center; }
#mobileFilterDialog { max-height:88dvh; }
#mobileFilterDialog .mobile-filter-header { position:sticky; top:0; background:#fff; z-index:2; }
#mobileFilterDialog .mobile-filter-footer { position:sticky; bottom:0; background:#fff; padding-top:12px; border-top:1px solid #f0f0f2; }
#mobileFilterDialog .mobile-filter-body { display:grid; gap:24px; }
#mobileFilterDialog .filter-help { font-size:12px; color:#646464; line-height:1.65; margin:10px 0 0; }
#mobileFilterDialog legend small { font-size:11px; color:#777; font-weight:400; }
.upgrade-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.upgrade-check { display:flex; align-items:center; gap:10px; min-height:44px; padding:6px 0; font-size:14px; }
.upgrade-check input { flex:none; width:20px; height:20px; accent-color:#c62145; }
.upgrade-check small { font-size:11px; color:#777; }
#mobileFilterDialog .filter-all-kinds { border:1px solid #e4e4e7; background:#fff; border-radius:10px; min-height:44px; padding:8px 14px; margin:0 0 10px; font:inherit; font-size:13px; color:#444; }
#mobileFilterDialog .filter-all-kinds[aria-pressed=true] { border-color:#fe2c55; color:#b91c3c; background:#fff4f5; }
#mobileFilterDialog :is(button,input):focus-visible { outline:3px solid #b91c3c; outline-offset:3px; }
#mobileFilterDialog .filter-option:has(input:disabled) { opacity:.55; }
@media(min-width:701px) {
 #mobileFilterDialog { inset:0; margin:auto; width:min(560px,calc(100vw - 48px)); height:fit-content; max-height:86dvh; border-radius:22px; }
 #mobileFilterDialog::before { display:none; }
}
/* Cultural categories still respect and expose the same topic intersection. */
body[data-culture="true"] .type-filters { display:flex; }

/* Snapshot context stays visible on PC and mobile while actual saved-count sorting is active. */
.saved-metrics-as-of { margin:0 0 16px; color:#646464; font-size:12px; line-height:1.6; }
