/* /repos directory: legend, search + filters, cards. Prefix dx- keeps it apart from the .repo rows used on serie/ficha pages. */
.dx-legend{background:var(--paper);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:clamp(18px,3vw,30px) 0}
.dx-k{font:700 .8rem/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--mute);margin:0 0 12px;max-width:none}
.dx-legend ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px 28px;font-size:.95rem;line-height:1.45;color:var(--mute)}
.dx-legend li{display:block}
.dx-legend a{color:var(--ink);text-underline-offset:3px}
.dx-legend .dx-bg{margin-right:.5em}

/* badges */
.dx-bg{display:inline-block;font:700 .74rem/1.15 var(--mono);border:2px solid var(--ink);border-radius:8px;padding:.4em .6em;background:transparent;color:var(--ink);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.dx-g{background:var(--lime)}
.dx-ram{background:var(--ink);color:var(--lime)}
.dx-nodata{border-style:dashed;border-color:var(--mute);color:var(--mute);font-weight:600}
.dx-arch{background:var(--paper-2);border-color:var(--mute);color:var(--mute)}
.dx-lic-open,.dx-lic-copyleft{background:var(--paper-2)}
.dx-lic-source-available,.dx-lic-custom{background:#fff}
.dx-lic-none{border-style:dashed}

/* slim title row: results start above the fold on a laptop */
.phead.slim{padding:calc(80px + clamp(14px,2vw,22px)) 0 clamp(14px,2vw,22px)}
.phead.slim .wrap{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:6px clamp(20px,4vw,56px)}
.phead.slim h1{font-size:clamp(1.9rem,3.6vw,3rem);max-width:none;line-height:1}
.phead.slim .lead{margin:0;font-size:.95rem;line-height:1.45;max-width:58ch;flex:1 1 320px}
.dx-upd{white-space:nowrap}

/* toolbar: one row of controls */
.dx-all{background:var(--paper);overflow-x:clip}
.dx-bar{display:none}
.js .dx-bar{display:block;isolation:isolate;position:sticky;top:84px;z-index:20;padding:10px 0}
.dx-bar.open{position:static}
.dx-bar::before{content:"";position:absolute;inset:0 calc(50% - 50vw);z-index:-1;background:var(--paper);border-bottom:2px solid var(--ink)}
.dx-bw{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.dx-panel{display:contents}
.dx-search{position:relative;display:flex;align-items:center;flex:1 1 180px;min-width:0}
.dx-search label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.dx-search input{width:100%;font:600 1rem/1 var(--body);color:var(--ink);background:var(--paper-2);border:2px solid var(--ink);border-radius:12px;padding:.8em 3em .8em 1em;transition:box-shadow .3s var(--ease),background .2s;-webkit-appearance:none;appearance:none}
.dx-search input::placeholder{color:var(--mute);opacity:1}
.dx-search input:focus{outline:none;background:#fff;box-shadow:0 0 0 3px var(--lime),0 0 0 5px var(--ink)}
.dx-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.dx-search kbd{position:absolute;right:10px;font:700 .8rem/1 var(--mono);border:2px solid var(--ink);border-radius:7px;padding:.28em .5em;background:var(--lime);transition:opacity .2s;pointer-events:none}
.dx-search input:focus~kbd,.dx-search.has-q kbd{opacity:0}
.dx-sx{position:absolute;right:6px;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--ink);cursor:pointer}
.dx-sx[hidden]{display:none}
.dx-sx:hover{background:var(--lime)}
.dx-bar select,.dx-gbtn{font:600 .88rem/1 var(--body);color:var(--ink);background:var(--paper-2);border:2px solid var(--ink);border-radius:12px;padding:0 .75em;min-height:46px;max-width:100%;cursor:pointer}
.dx-bar select{-webkit-appearance:none;appearance:none;padding-right:1.9em;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 15px) 55%,calc(100% - 9px) 55%;background-size:6px 6px;background-repeat:no-repeat}
.dx-bar select.on,.dx-gbtn[aria-pressed="true"]{background-color:var(--ink);color:var(--lime);background-image:linear-gradient(45deg,transparent 50%,var(--lime) 50%),linear-gradient(135deg,var(--lime) 50%,transparent 50%)}
.dx-gbtn[aria-pressed="true"]{background-image:none}
.dx-gbtn small{font:700 .72rem/1 var(--mono);margin-left:.3em;opacity:.75}
.dx-bar select:hover,.dx-gbtn:hover{border-color:var(--ink);box-shadow:0 2px 0 var(--ink)}
.dx-bar select:focus-visible,.dx-gbtn:focus-visible,.dx-toggle:focus-visible,.dx-clear:focus-visible,.dx-sx:focus-visible,.dx-ch:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.dx-bar select{text-overflow:ellipsis;flex:0 0 auto}
#dx-s{width:142px}#dx-c{width:168px}#dx-l{width:150px}#dx-ram{width:132px}#dx-sort{width:148px}
.dx-bar option:disabled{color:#8b8d80}
.dx-toggle{display:none;font:700 .95rem/1 var(--body);color:var(--ink);background:transparent;border:2px solid var(--ink);border-radius:12px;padding:0 1em;cursor:pointer}
.dx-toggle[aria-expanded="true"]{background:var(--ink);color:var(--lime)}
.dx-toggle span{display:inline-block;min-width:1.5em;margin-left:.3em;background:var(--lime);color:var(--ink);border-radius:999px;padding:.2em .5em;font:700 .75rem/1 var(--mono);text-align:center}
.dx-toggle span[hidden]{display:none}

/* status row: count, active filters (only when active), reset */
.dx-sec{padding-top:clamp(12px,1.8vw,20px)}
.dx-stat{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 6px;min-height:34px}
.dx-count{font:600 .92rem/1.4 var(--mono);color:var(--mute);margin:0}
.dx-count b{display:inline-block;color:var(--ink);font-size:1.15rem}
.dx-active{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.dx-active:empty{display:none}
.dx-ch{display:inline-flex;align-items:center;gap:.5em;padding:.45em .75em;font-size:.82rem;background:var(--lime);border-radius:999px}
.dx-ch:hover{background:var(--ink);color:var(--lime)}
.dx-clear{font:700 .85rem/1 var(--body);color:var(--ink);background:transparent;border:0;border-bottom:2px solid var(--ink);padding:.4em 0;cursor:pointer}
.dx-clear[hidden]{display:none}
.dx-clear:hover{background:var(--lime)}
.dx-note{font:500 .85rem/1.45 var(--mono);color:var(--mute);margin:0 0 8px;max-width:78ch}
.dx-note[hidden]{display:none}

/* results */
.dx-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--rule)}
.dx-c{position:relative;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.8fr) 7.5rem;gap:2px clamp(14px,3vw,40px);align-items:start;padding:clamp(9px,1.2vw,13px) clamp(8px,1.4vw,18px);border-bottom:2px solid var(--rule);isolation:isolate;transition:background .25s}
.dx-c[hidden]{display:none}
.dx-c:hover,.dx-c:focus-within{background:var(--lime)}
.dx-n{grid-column:1;grid-row:1 / span 2;margin:0;font:700 clamp(1.05rem,1.8vw,1.35rem)/1.15 var(--mono);letter-spacing:-.02em;overflow-wrap:anywhere}
.dx-n a{color:inherit;text-decoration:none}
.dx-n a::after{content:"";position:absolute;inset:0;z-index:1}
.dx-n a:focus-visible{outline:none}
.dx-c:has(.dx-n a:focus-visible){outline:3px solid var(--ink);outline-offset:-3px}
.dx-n mark,.dx-w mark,.dx-why mark{background:var(--ink);color:var(--lime);border-radius:4px;padding:0 .08em}
.dx-w{grid-column:2;grid-row:1;margin:0;color:var(--mute);font-size:.95rem;line-height:1.4}
.dx-c:hover .dx-w,.dx-c:focus-within .dx-w{color:var(--ink)}
.dx-why{grid-column:2;grid-row:2;font:600 .78rem/1.3 var(--mono);color:var(--mute)}
.dx-b{grid-column:2;grid-row:2;list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:5px}
.dx-why:not([hidden]){grid-row:2}
.dx-why:not([hidden])~.dx-b{grid-row:3;margin-top:2px}
.dx-b li{min-width:0;max-width:100%}
.dx-b .dx-bg{font-size:.7rem;padding:.3em .55em;border-width:1.5px;border-radius:7px}
.dx-x{grid-column:3;grid-row:1 / span 2;margin:0;display:flex;flex-direction:column;align-items:flex-end;gap:2px;font:700 .82rem/1 var(--mono)}
.dx-x:empty{display:none}
.dx-x a{position:relative;z-index:2;color:var(--ink);text-underline-offset:4px;padding:.4em 0}
.dx-x a:hover{background:var(--ink);color:var(--lime);text-decoration:none}

/* empty state */
.dx-empty{padding:clamp(32px,5vw,64px) 0;max-width:46rem}
.dx-sugl{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.dx-sugl:empty{display:none}
.dx-sugl .fchip{font-size:.9rem}

@media (max-width:760px){
  .js .dx-bar{top:72px}
  .dx-toggle{display:block}
  .dx-search{flex:1 1 0}
  .dx-search kbd{display:none}
  .dx-panel{display:none}
  .dx-bar.open .dx-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:1 0 100%}
  .dx-bar.open .dx-gbtn{grid-column:1 / -1;justify-self:start}
  .dx-bar select{width:100%!important}
  .dx-c{grid-template-columns:minmax(0,1fr);gap:4px}
  .dx-n,.dx-w,.dx-why,.dx-b,.dx-x{grid-column:1;grid-row:auto}
  .dx-x{flex-direction:row;align-items:center;gap:16px}
  .phead.slim .lead{flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){.dx-c,.dx-search input{transition:none}}
