/* ============================================================
   InfraTree v2 — 문제 라이브러리 (page composition)
   tokens.css + components.css 위. 목록은 CSR(library.js).
   ============================================================ */
.lib-page { display: grid; gap: var(--it-sp-4); padding-top: var(--it-sp-5); padding-bottom: var(--it-sp-7); }
.mut { color: var(--it-text-2); font-size: var(--it-fs-sm); }
.meta-mono { font-family: var(--it-mono); font-size: var(--it-fs-sm); color: var(--it-muted); font-weight: 400; }
.it-accent { color: var(--it-accent); }

.lib-h1 { margin: 0; font-size: var(--it-fs-xl); font-weight: 600; }
.lib-search { display: block; }

.lib-chips { display: flex; gap: var(--it-sp-2); flex-wrap: wrap; }
.lib-chip {
  font-family: var(--it-font); font-size: var(--it-fs-sm); padding: 5px 12px; border-radius: var(--it-radius-pill);
  cursor: pointer; background: var(--it-panel); color: var(--it-text-2);
  border: 1px solid var(--it-border); transition: background 130ms ease, border-color 130ms ease, color 130ms ease;
}
.lib-chip:hover { color: var(--it-text); border-color: var(--it-border-2); }
.lib-chip.is-active { background: var(--it-accent-dim); color: var(--it-accent); border-color: var(--it-accent-line); }

.lib-meta { min-height: 18px; }
.lib-list { overflow: hidden; }
.lib-list[aria-busy="true"] { opacity: 0.55; }
.lib-empty { padding: var(--it-sp-6); text-align: center; color: var(--it-text-2); font-size: var(--it-fs-base); }
.lib-pager { padding: var(--it-sp-2) 0; }
.lib-pager:empty { display: none; }
