/* Shared result filters: mobile bottom sheet, desktop side panel. */
.swf-bar { display:flex; align-items:center; gap:12px; justify-content:space-between; min-width:0; }
.swf-heading { min-width:0; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
.swf-heading strong { font-size:16px; }
.swf-count { color:var(--muted,#5B6573); font-size:13px; }
.swf-trigger { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:0 14px; border:1px solid #C5C8CE; border-radius:12px; background:#fff; color:#10213A; font:inherit; font-weight:700; white-space:nowrap; cursor:pointer; flex-shrink:0; }
.swf-trigger svg { width:20px; height:20px; }
.swf-trigger.swf-active { background:#E6EEF8; color:#0B3D7A; border-color:#0B57B0; }
.swf-badge { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; padding:0 5px; border-radius:99px; background:#0B57B0; color:#fff; font-size:12px; }
.swf-tags { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:8px; }
.swf-tag { display:inline-flex; align-items:center; gap:7px; min-height:44px; max-width:100%; padding:6px 12px; border:0; border-radius:999px; background:#E6EEF8; color:#0B3D7A; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.swf-tag span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.swf-tag.swf-context { background:#EAE7DF; color:#39475B; }
.swf-clear { min-height:44px; padding:6px 8px; border:0; background:none; color:#0B57B0; font:inherit; font-size:13px; cursor:pointer; }
.swf-overlay { position:fixed; inset:0; z-index:10000; background:rgba(16,33,58,.48); display:flex; justify-content:center; align-items:flex-end; }
.swf-dialog { box-sizing:border-box; display:flex; flex-direction:column; width:100%; max-height:92vh; max-height:92dvh; border-radius:22px 22px 0 0; background:#fff; color:#10213A; box-shadow:0 -8px 40px rgba(16,33,58,.15); font-family:"PingFang TC","Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif; font-size:15px; line-height:1.5; overflow:hidden; }
.swf-dialog *, .swf-dialog *::before, .swf-dialog *::after { box-sizing:border-box; }
.swf-grip { width:40px; height:5px; border-radius:99px; background:#C8CCD2; margin:10px auto 0; flex-shrink:0; }
.swf-head { display:flex; align-items:flex-start; gap:12px; padding:14px 20px 12px; flex-shrink:0; }
.swf-head h2 { margin:0; font-size:22px; line-height:1.4; }
.swf-head p { margin:4px 0 0; font-size:13px; color:#5B6573; }
.swf-close { margin-left:auto; flex-shrink:0; width:44px; height:44px; border:0; background:none; color:#10213A; font-size:27px; cursor:pointer; border-radius:10px; }
.swf-body { overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; min-height:0; padding:0 20px 20px; }
.swf-group { border:0; padding:0; margin:18px 0 0; min-width:0; }
.swf-group legend, .swf-label { display:block; margin-bottom:9px; font-weight:700; font-size:15px; }
.swf-options { display:flex; flex-wrap:wrap; gap:8px; }
.swf-option { min-height:44px; min-width:64px; padding:8px 13px; border:1px solid #D6D1C4; border-radius:10px; background:#fff; color:#10213A; font:inherit; font-size:14px; cursor:pointer; }
.swf-option[aria-pressed="true"] { border-color:#0B57B0; background:#0B57B0; color:#fff; font-weight:700; }
.swf-select, .swf-input { width:100%; min-height:46px; padding:9px 12px; border:1px solid #D6D1C4; border-radius:10px; background:#fff; color:#10213A; font:inherit; font-size:16px; }
.swf-help { margin:6px 0 0; color:#5B6573; font-size:12px; }
.swf-more { margin-top:20px; border-top:1px solid #E0DBCF; padding-top:12px; }
.swf-more summary { min-height:44px; display:flex; align-items:center; justify-content:space-between; font-weight:700; cursor:pointer; list-style:none; }
.swf-more summary::-webkit-details-marker { display:none; }
.swf-more summary::after { content:'⌄'; font-size:22px; }
.swf-foot { display:flex; gap:10px; flex-shrink:0; padding:14px 20px calc(16px + env(safe-area-inset-bottom,0px)); background:#fff; border-top:1px solid #E0DBCF; }
.swf-reset, .swf-apply { min-height:48px; border-radius:12px; padding:10px 14px; font:inherit; font-weight:700; cursor:pointer; }
.swf-reset { background:#fff; border:1px solid #BCC2CA; color:#10213A; }
.swf-apply { flex:1; border:1px solid #0B57B0; background:#0B57B0; color:#fff; }
.swf-apply:disabled { opacity:.65; cursor:wait; }
.swf-trigger:focus-visible,.swf-tag:focus-visible,.swf-clear:focus-visible,.swf-dialog :focus-visible { outline:3px solid #F08A4B; outline-offset:2px; }
.swf-sort { display:flex; align-items:center; gap:8px; font-size:13px; color:#5B6573; }
.swf-sort select { min-height:44px; max-width:100%; background:transparent; border:0; font:inherit; color:#10213A; }
@media(min-width:900px) {
  .swf-overlay { align-items:stretch; justify-content:flex-end; }
  .swf-dialog { width:440px; max-width:100%; height:100%; max-height:100%; border-radius:20px 0 0 20px; }
  .swf-grip { display:none; }
  .swf-head { padding-top:28px; }
  .swf-body { flex:1; }
}
@media(prefers-reduced-motion:no-preference) {
  .swf-dialog { animation:swf-in .18s ease-out; }
  @keyframes swf-in { from { opacity:.6; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
}
