.library-tools { padding-block: 48px 0; }
.library-tools__panel { padding: 28px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.library-tools h2 { margin: 0; color: var(--ink); font-size: clamp(21px, 2.4vw, 28px); line-height: 1.6; letter-spacing: -.025em; }
.library-tools__intro { margin: 8px 0 24px; color: var(--ink-soft); font-size: 13px; line-height: 1.9; }
.library-search { padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.library-search__fields { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) auto; gap: 14px; align-items: end; }
.library-search__field { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.library-search label { color: var(--ink); font-size: 12px; font-weight: 600; }
.library-search input, .library-search select { display: block; width: 100%; min-width: 0; min-height: 50px; padding: 11px 14px; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--paper); color: var(--ink); font-family: inherit; font-size: 14px; line-height: 1.8; }
.library-search input::placeholder { color: var(--muted); opacity: 1; }
.library-search select { padding-inline-end: 30px; }
.library-search .button { width: auto; min-height: 50px; cursor: pointer; white-space: nowrap; }
.library-search .button:disabled { cursor: default; opacity: .5; transform: none; }
.library-search__help { margin: 14px 0 0; color: var(--muted); font-size: 11px; line-height: 1.9; }
.library-search__status { margin: 8px 0 0; color: var(--royal); font-size: 12px; font-weight: 600; line-height: 1.9; }
.library-directory__heading { margin: 0 0 14px; color: var(--ink-soft); font-size: 12px; font-weight: 600; }
.library-directory ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.library-directory li { min-width: 0; }
.library-directory a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 48px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 9px; background: var(--blue-soft); color: var(--ink); font-size: 12px; line-height: 1.7; text-decoration: none; }
.library-directory a:hover { border-color: var(--royal); color: var(--royal); }
.library-directory__count { flex-shrink: 0; color: var(--royal); font-size: 11px; font-weight: 600; }
.library-tools :is(a, input, select, button):focus-visible, #article-library .article-cluster:focus-visible { outline: 3px solid var(--royal); outline-offset: 4px; }
.library-results { padding-top: 56px; }
#article-library .article-cluster { scroll-margin-top: 108px; }
.library-empty { padding: 30px; border: 1px solid var(--line); border-radius: 12px; background: var(--blue-soft); text-align: center; }
.library-empty h2 { margin: 0 0 10px; font-size: 22px; line-height: 1.6; }
.library-empty p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.9; }
.library-tools [hidden], #article-library [hidden] { display: none !important; }
@media (max-width: 900px) {
  .library-directory ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .library-search__fields { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
  .library-search .button { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 600px) {
  .library-tools { padding-top: 28px; }
  .library-tools__panel { padding: 20px 16px; }
  .library-search__fields { grid-template-columns: minmax(0, 1fr); }
  .library-search input, .library-search select { font-size: 16px; }
  .library-search .button { width: 100%; }
  .library-directory ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .library-directory a { padding: 10px; font-size: 11px; }
  .library-results { padding-top: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.library-tools) { scroll-behavior: auto; }
  .library-tools .button { transition: none; }
}
