/* Results grid (entity listing) page - reuses redesign-core.css tokens/header/footer. */

#grid-region{transition:opacity .15s}
#grid-region.loading{opacity:.45;pointer-events:none}

/* Page head */
.page{padding:34px 0 80px}
.crumbs{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);margin-bottom:14px}
.crumbs a:hover{color:var(--orange)}
.crumbs .material-icons{font-size:15px;opacity:.6}

.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:6px}
.back-btn{
  display:inline-flex;align-items:center;gap:7px;padding:11px 18px;border-radius:11px;
  border:1px solid var(--line-2);background:var(--bg);color:var(--ink);font-weight:700;
  font-size:.92rem;font-family:inherit;cursor:pointer;transition:.18s;
}
.back-btn:hover{border-color:var(--orange);color:var(--orange);transform:translateX(-2px)}
.back-btn .material-icons{font-size:19px}
.page h1{font-size:clamp(2rem,3.6vw,2.6rem);font-weight:800;letter-spacing:-.022em;margin:0}
.page .count{color:var(--muted);font-size:.98rem;margin-top:6px}
.page .count b{color:var(--ink)}

/* Toolbar */
.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:24px 0 16px}
.search{position:relative;flex:1;min-width:240px}
.search .material-icons{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted-2);font-size:21px}
.search input{
  width:100%;padding:13px 16px 13px 46px;border:1px solid var(--line-2);border-radius:13px;
  background:var(--bg);color:var(--ink);font-size:1rem;font-family:inherit;outline:none;transition:.18s;
}
.search input:focus{border-color:var(--orange);box-shadow:0 0 0 4px var(--orange-soft)}
.select{
  display:inline-flex;align-items:center;gap:7px;padding:13px 16px;border:1px solid var(--line-2);
  background:var(--bg);color:var(--ink-2);border-radius:13px;font-size:.9rem;font-weight:600;cursor:pointer;transition:.18s;
}
.select:hover{border-color:var(--orange);color:var(--orange)}
.select .material-icons{font-size:18px}
.select b{color:var(--ink);font-weight:700}
.select:hover b{color:var(--orange)}
.select-wrap{position:relative}
.select-wrap.open .select{border-color:var(--orange);color:var(--orange)}
.select-wrap.open .select b{color:var(--orange)}
.select-menu{
  position:absolute;top:calc(100% + 8px);left:0;min-width:200px;background:var(--bg);border:1px solid var(--line);
  border-radius:13px;box-shadow:var(--shadow-lg);padding:6px;z-index:900;
  opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .16s,transform .16s,visibility .16s;
}
.select-wrap.open .select-menu{opacity:1;visibility:visible;transform:translateY(0)}
.select-menu a,.select-menu button{
  display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;
  border-radius:9px;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--ink-2);cursor:pointer;text-align:left;transition:.14s;
}
.select-menu a .material-icons,.select-menu button .material-icons{font-size:19px;color:var(--muted-2)}
.select-menu a:hover,.select-menu button:hover{background:var(--bg-soft);color:var(--orange)}
.select-menu a:hover .material-icons,.select-menu button:hover .material-icons{color:var(--orange)}
.select-menu a.on,.select-menu button.on{color:var(--orange);background:var(--orange-soft)}
.select-menu a.on .material-icons,.select-menu button.on .material-icons{color:var(--orange)}

/* Filter chips */
.chips-wrap{margin-bottom:18px}
.chips{
  display:flex;gap:8px;flex-wrap:wrap;max-height:46px;overflow:hidden;
  transition:max-height .25s var(--ease-out);
}
.chips.expanded{max-height:600px}
.chip{
  display:inline-flex;align-items:center;gap:6px;padding:9px 15px;border:1px solid var(--line-2);
  background:var(--bg);border-radius:999px;font-size:.86rem;font-weight:700;color:var(--muted);
  cursor:pointer;transition:.16s;font-family:inherit;white-space:nowrap;text-decoration:none;
}
.chip .material-icons{font-size:16px}
.chip:hover{border-color:var(--orange);color:var(--orange)}
.chip.active{background:var(--orange);border-color:var(--orange);color:#fff}
.chips-toggle{
  display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:0;border:none;background:none;
  color:var(--orange);font-weight:700;font-size:.85rem;font-family:inherit;cursor:pointer;
}
.chips-toggle .material-icons{font-size:18px;transition:transform .2s}
.chips-toggle.expanded .material-icons{transform:rotate(180deg)}

.result-count{margin:0 0 16px;font-size:.88rem;color:var(--muted);font-weight:600}
.result-count b{color:var(--ink)}

/* Grid */
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(224px,1fr))}
.empty{grid-column:1/-1;text-align:center;padding:70px 20px;color:var(--muted)}
.empty .material-icons{font-size:44px;color:var(--muted-2);margin-bottom:10px}
.empty p{margin:0;font-size:1.02rem;font-weight:600}
.card{
  background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  cursor:pointer;display:flex;flex-direction:column;position:relative;
  transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),border-color .2s;
}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--orange)}
.thumb{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--bg-soft)}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease-out)}
.card:hover .thumb img{transform:scale(1.06)}
.thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(8,9,14,.8))}
.badge{
  position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.94);backdrop-filter:blur(6px);padding:5px 10px;border-radius:999px;
  font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#16161a;
}
.badge.tour{background:var(--orange);color:#fff}
.badge.vip{background:var(--ink);color:#fff}
.badge .dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.fav{
  position:absolute;top:10px;right:10px;z-index:2;width:34px;height:34px;border-radius:50%;border:none;
  background:rgba(255,255,255,.92);backdrop-filter:blur(6px);cursor:pointer;display:grid;place-items:center;
  color:#9aa0aa;transition:.16s;
}
.fav .material-icons{font-size:19px}
.fav:hover{color:var(--orange);transform:scale(1.1)}
.fav.on{color:var(--orange)}
.name-on-img{position:absolute;left:14px;right:14px;bottom:12px;z-index:2;color:#fff}
.name-on-img .nm{font-size:1.05rem;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.meta{padding:13px 14px 14px;display:flex;flex-direction:column;gap:11px}
.genres{display:flex;gap:6px;flex-wrap:wrap}
.g{font-size:.68rem;font-weight:700;color:var(--muted);background:var(--bg-soft);padding:4px 9px;border-radius:7px}
.g.primary{color:var(--orange);background:var(--orange-soft)}
.row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:11px;border-top:1px solid var(--line)}
.stat{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--muted);font-weight:600}
.stat .material-icons{font-size:15px;color:var(--muted-2)}
.stat b{color:var(--ink)}
.spotify{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:800;color:#1DB954}

/* Pagination */
.pager{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:40px;flex-wrap:wrap}
.pager a,.pager span.pg{
  min-width:42px;height:42px;padding:0 16px;border:1px solid var(--line-2);background:var(--bg);
  border-radius:11px;font-weight:700;font-size:.92rem;color:var(--ink);cursor:pointer;font-family:inherit;transition:.16s;
  display:inline-flex;align-items:center;justify-content:center;
}
.pager a:hover{border-color:var(--orange);color:var(--orange)}
.pager a.active{background:var(--orange);border-color:var(--orange);color:#fff}
.pager .muted{color:var(--muted);font-size:.88rem;padding:0 6px;border:none;background:transparent}

/* Two-level genre filter: sub-genre row shown under the selected main genre */
.subchips{border-top:1px dashed var(--line-2);padding-top:12px}
.chip.sub{font-size:.82rem;padding:7px 13px;font-weight:600}
