/* Lobby — category plates, toolbar, stub grid. Built from the mockup's chips/search/stub components. */
.lobby-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.lobby-cat { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: var(--radius-md); background: var(--color-surface-1); box-shadow: 0 0 0 1px var(--color-border) inset; transition: transform .25s var(--ease-spring), box-shadow .25s, background-color .25s; }
.lobby-cat:hover { transform: translateY(-3px); box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-brand) 60%, var(--color-border)) inset; }
.lobby-cat[aria-current] { background: color-mix(in srgb, var(--color-brand) 14%, var(--color-surface-1)); box-shadow: 0 0 0 1px var(--color-brand) inset, 0 10px 24px -14px rgba(212,175,55,.6); }
.lobby-cat-ico { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 12px; background: var(--color-ink); box-shadow: 0 0 0 1px var(--color-border) inset; color: var(--color-brand-hi); }
.lobby-cat-ico .icon { width: 20px; height: 20px; }
.lobby-cat b { display: block; font: 700 15px/1.2 var(--font-head); }
.lobby-cat small { font-size: 12.5px; color: var(--color-muted); }
.lobby-tools { position: sticky; top: 68px; z-index: 20; border-radius: var(--radius-lg); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); background: color-mix(in srgb, var(--color-surface-1) 92%, transparent); }
.lobby-controls { display: flex; gap: 8px; flex-wrap: wrap; }
.lobby-controls .search { flex: 1 1 220px; }
.lobby-count { margin: 4px 0 16px; font-size: 14px; color: var(--color-muted); }
.lobby-count b { color: var(--color-text); }
.lobby-more { display: flex; justify-content: center; margin-top: 28px; }
.lobby-note { margin-top: 32px; }
.grid-stubs .stub { animation: stubIn .45s var(--ease-out) backwards; }
@keyframes stubIn { from { opacity: 0; transform: translateY(14px); } }

@media (max-width: 1024px) { .lobby-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lobby-tools { position: static; } }
@media (max-width: 640px) {
  .lobby-cat { padding: 12px; gap: 10px; }
  .lobby-cat-ico { width: 38px; height: 38px; }
  .lobby-controls { display: grid; grid-template-columns: 1fr 1fr; }
  .lobby-controls .search { grid-column: 1 / -1; }
  .lobby-controls .select { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .grid-stubs .stub { animation: none; } }
