/* One search bar, one summary of applied conditions, one grouped filter drawer. */
.list-filter-panel{padding:18px 20px;margin-bottom:22px}
.filter-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px}
.filter-search{position:relative;min-width:0}
.filter-search .filter-field-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.filter-search label{display:block;margin:0}
.filter-search input{margin:0;min-height:46px;padding:11px 14px 11px 42px;font-size:15px;border-radius:10px;background:#fff;width:100%;min-width:0}
.filter-search-icon{position:absolute;width:19px;height:19px;left:14px;top:50%;transform:translateY(-50%);stroke:var(--muted);stroke-width:1.6;fill:none;pointer-events:none}
.filter-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:14px;font-weight:600;line-height:1.35;white-space:nowrap;cursor:pointer}
.filter-toggle[hidden]{display:none}.filter-toggle:hover{border-color:#b4c9ba;background:#f8faf9}
.filter-icon,.filter-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.filter-toggle .count{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;margin:0;border-radius:7px;font-size:12px;background:var(--soft);color:var(--green)}
.filter-submit{min-height:46px;border-radius:10px;padding:11px 20px}
.filter-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:12px}
.filter-summary:empty{display:none}
.quick-filters,.applied-filters{display:flex;flex-wrap:wrap;gap:8px;min-width:0;margin:0;padding:0;border:0}
.quick-filters a,.applied-filters a{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:6px 10px;border-radius:8px;font-size:13px;line-height:1.4;border:1px solid transparent;color:var(--muted);background:#f3f6f4;max-width:100%;overflow-wrap:anywhere}
.quick-filters a:hover{color:var(--green);border-color:#cbdcd1}
.applied-filters a{background:var(--soft);color:var(--green)}
.applied-filters a:hover{border-color:#a9c7b4}.applied-filters svg{width:16px;height:16px;flex:none;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round}
.filter-reset{display:inline-flex;align-items:center;justify-content:center;min-height:36px;font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap}
.filter-reset:hover{color:var(--green);text-decoration:underline}.filter-summary>.filter-reset{margin-left:auto}
/* The server-rendered details is a usable fallback without JavaScript. */
.filter-controls{margin-top:16px;min-width:0}
.filter-controls>summary{display:flex;align-items:center;gap:10px;list-style:none;font-size:14px;font-weight:600;cursor:pointer;color:var(--green);padding-block:8px}
.filter-controls>summary::-webkit-details-marker{display:none}.filter-controls>summary::after{content:"";width:7px;height:7px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);margin-left:auto}.filter-controls[open]>summary::after{transform:rotate(225deg)}
.filter-drawer-header{display:none}
.filter-drawer-body{display:grid;gap:24px;padding-block:18px}
.filter-group{border:0;min-width:0;margin:0;padding:0}
.filter-group legend{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:14px;padding:0}
.list-filter-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px}
.list-filter-fields label{display:grid;align-content:start;gap:8px;min-width:0;font-size:13px;margin:0}
.list-filter-fields>label:last-child:nth-child(odd){grid-column:1/-1}
.list-filter-fields input,.list-filter-fields select{margin:0;width:100%;min-width:0;font-size:14px;min-height:44px;border-radius:9px}
.list-filter-fields .custom-select-trigger{font-size:14px;min-height:44px;background:#fff;padding:10px 12px}
.list-filter-fields .field-error{font-size:12px;margin:0}
.filter-drawer-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:18px}
.filter-close{display:grid;place-items:center;flex:none;width:40px;height:40px;padding:0;border:0;border-radius:10px;background:#f3f6f4;color:var(--muted);cursor:pointer}
.filter-close:hover{background:#eaf0ec;color:var(--ink)}
.filter-drawer-open{overflow:hidden;scrollbar-gutter:stable}
.filter-drawer{inset:0 0 0 auto;margin:0;padding:0;width:min(480px,100%);max-width:100%;height:100dvh;max-height:100dvh;border:0;border-left:1px solid var(--line);border-radius:18px 0 0 18px;background:#fff;color:var(--ink);box-shadow:-12px 0 48px #172d2420;overflow:visible}
.filter-drawer::backdrop{background:#172d2440}
.filter-drawer[open]{display:flex}
.filter-drawer .filter-controls{display:flex;flex-direction:column;flex:1;min-height:0;margin:0;width:100%}
.filter-drawer .filter-drawer-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line);flex:none}
.filter-drawer-header h2{font-size:21px;line-height:1.3;margin:0}
.filter-drawer .filter-drawer-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start;padding:24px;scrollbar-gutter:stable}
.filter-drawer .filter-group+.filter-group{border-top:1px solid var(--line);padding-top:12px}
.filter-drawer .filter-drawer-footer{flex:none;padding:16px 24px max(16px,env(safe-area-inset-bottom));background:#fff;border-radius:0 0 0 18px}
.filter-drawer-footer .button{font-size:14px;min-height:46px}
@media(max-width:600px){.list-filter-fields{grid-template-columns:minmax(0,1fr)}.list-filter-panel{padding:16px}.filter-toolbar{grid-template-columns:minmax(0,1fr) auto}.filter-search{grid-column:1/-1}.filter-toggle{width:100%;grid-column:1}.filter-submit{grid-column:2;min-width:112px}.filter-summary>.filter-reset{margin-left:0}.filter-drawer{border-radius:0;border:0}.filter-drawer .filter-drawer-header{padding:16px 20px}.filter-drawer .filter-drawer-body{padding:20px}.filter-drawer .filter-drawer-footer{padding-inline:20px;border-radius:0}.filter-drawer-footer .button{flex:1}.filter-drawer-footer .filter-reset{min-width:92px}}
@media(max-width:370px){.list-filter-fields{grid-template-columns:minmax(0,1fr)}.list-filter-fields>label:last-child:nth-child(odd){grid-column:auto}}

.filter-drawer-error{flex:none;margin:0;padding:12px 24px;background:#fff1f0;color:#a12a28;font-size:13px;line-height:1.5}
