/* ============================================================ filter sidebar (desktop) */
.dg-filters{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius-lg);
  padding:var(--sp-4)}
.dg-filters > h2{font-size:var(--fs-label);line-height:var(--lh-label);font-weight:600;
  color:var(--text-3);margin:0 0 var(--sp-3)}

.dg-fgroup{border-top:1px solid var(--rule);padding:var(--sp-3) 0}
.dg-fgroup:first-of-type{border-top:0;padding-top:0}
.dg-fgroup__head{display:flex;align-items:center;justify-content:space-between;width:100%;
  min-height:var(--touch);padding:0;background:none;border:0;cursor:pointer;
  font:600 var(--fs-label)/var(--lh-label) inherit;color:var(--text);text-align:start}
.dg-fgroup__head .chev{width:var(--touch);height:var(--touch);display:inline-flex;
  align-items:center;justify-content:center;margin-inline-end:calc(var(--sp-3) * -1);
  transition:transform var(--dur-base) var(--ease-standard)}
.dg-fgroup[open] .chev,.dg-fgroup.is-open .chev{transform:rotate(180deg)}
.dg-fgroup__body{overflow:hidden}

.dg-opt{display:flex;align-items:center;gap:var(--sp-3);min-height:36px;
  padding:var(--sp-1) var(--sp-2);border-radius:var(--radius);text-decoration:none;
  color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-sm);
  transition:background-color var(--dur-instant) linear}
@media (max-width:1023px){.dg-opt{min-height:var(--touch)}}
.dg-opt:hover{background:var(--sunk);color:var(--text)}
.dg-opt__box{flex:0 0 18px;width:18px;height:18px;border:2px solid var(--rule-fn);
  border-radius:3px;background:var(--white);position:relative;
  transition:border-color var(--dur-instant) linear,background-color var(--dur-instant) linear}
.dg-opt[aria-current="true"] .dg-opt__box,.dg-opt.is-on .dg-opt__box{
  background:var(--accent);border-color:var(--accent)}
.dg-opt[aria-current="true"] .dg-opt__box::after,.dg-opt.is-on .dg-opt__box::after{
  content:"";position:absolute;inset-inline-start:4px;top:0;width:5px;height:10px;
  border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg)}
.dg-opt__label{flex:1}
.dg-opt__count{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-3)}
/* zero-result options are disabled, not hidden — hiding makes the list jump */
.dg-opt.is-empty{opacity:.4;pointer-events:none}

.dg-range{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0}
.dg-range input{flex:1;min-width:0;min-height:var(--touch);padding:0 var(--sp-3);
  border:1px solid var(--rule-fn);border-radius:var(--radius);background:var(--white);
  font:inherit;font-size:var(--fs-sm);font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;color:var(--text)}
.dg-range span{color:var(--text-3);font-size:var(--fs-meta)}
.dg-range__more{background:none;border:0;padding:var(--sp-2);color:var(--accent);
  font:inherit;font-size:var(--fs-meta);cursor:pointer;text-decoration:underline}

/* ============================================================ filter drawer (mobile) */
.dg-drawer{position:fixed;inset:0;z-index:60;display:none}
.dg-drawer.is-open{display:block}
.dg-drawer__scrim{position:absolute;inset:0;background:rgba(20,20,22,.5);opacity:0;
  transition:opacity var(--dur-backdrop) linear}
.dg-drawer.is-open .dg-drawer__scrim{opacity:1}
.dg-drawer__panel{position:absolute;inset-inline:0;bottom:0;max-height:92vh;
  display:flex;flex-direction:column;background:var(--white);
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-panel);
  transform:translateY(100%);transition:transform var(--dur-panel) var(--ease-enter)}
.dg-drawer.is-open .dg-drawer__panel{transform:translateY(0)}
.dg-drawer.is-closing .dg-drawer__panel{transition-timing-function:var(--ease-exit)}
.dg-drawer__head{display:flex;align-items:center;justify-content:space-between;
  padding:var(--sp-4);border-bottom:1px solid var(--rule);flex:0 0 auto}
.dg-drawer__head h2{margin:0;font-size:var(--fs-h3)}
.dg-drawer__close{width:var(--touch);height:var(--touch);border:0;background:none;
  font-size:24px;line-height:1;color:var(--text-2);cursor:pointer}
.dg-drawer__body{flex:1;overflow-y:auto;padding:var(--sp-4);-webkit-overflow-scrolling:touch}
/* deferred apply: ticking changes a counter, not the page — six choices, one reload */
.dg-drawer__foot{flex:0 0 auto;padding:var(--sp-4);border-top:1px solid var(--rule);
  background:var(--white);display:flex;gap:var(--sp-3);
  padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom))}
body.dg-locked{overflow:hidden}
