.document-library { padding-block: 3.5rem 5rem; }
.library-introduction { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: end; margin-bottom: 2rem; }
.library-eyebrow, .document-category { color: var(--accent); font-size: .8125rem; font-weight: 600; }
.library-introduction h2 { font-size: clamp(2rem, 4vw, 3.5rem); margin: .5rem 0 0; }
.library-introduction > p { max-width: 60ch; color: var(--text-muted); line-height: 1.75; margin: 0; }
.library-filters { display: grid; grid-template-columns: 1.2fr 1fr .8fr; align-items: end; gap: 1.25rem; padding: 1.5rem; background: var(--surface-raised); border: 1px solid var(--border); }
.library-filters > div { min-width: 0; }
.library-filters label { display: block; font-size: .875rem; font-weight: 600; margin-bottom: .5rem; }
.library-filters :is(input, select) { box-sizing: border-box; display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 48px; margin: 0; padding: .8rem; color: var(--text); background: var(--surface); border: 1px solid var(--border); font: inherit; font-size: .9375rem; border-radius: 0; }
.library-results-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.library-results-bar p { margin: 0; font-weight: 600; }
.library-results-bar button { padding: .65rem 1rem; font-size: .8125rem; }
.library-date-note { font-size: .8125rem; color: var(--text-muted); margin: .6rem 0 2rem; }
.document-library .document-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 3rem; list-style: none; margin: 0; padding: 0; }
.document-library .document-list > li { margin: 0; padding: 0; border: 0; min-width: 0; }
.document-library .document-list > li[hidden] { display: none; }
.document-card { position: relative; height: 100%; padding: 1.8rem 0; border-top: 1px solid var(--border); }
.document-card .document-category { margin: 0 0 .8rem; color: var(--accent); }
.document-card h3 { font-family: var(--serif); font-size: clamp(1.35rem, 2.2vw, 1.8rem); line-height: 1.35; margin: 0; }
.document-card h3 a { color: var(--text); text-decoration-thickness: 1px; text-underline-offset: .2em; }
.document-card h3 a::after { content: ''; position: absolute; inset: 0; }
.document-card:has(a:hover) h3 a { color: var(--accent); }
.document-card:has(a:focus-visible) { outline: 3px solid var(--text); outline-offset: 5px; }
.document-card .document-date { font-size: .8125rem; margin: 1rem 0; color: var(--text-muted); }
.document-card-cue { display: flex; justify-content: space-between; align-items: center; font-size: .8125rem; font-weight: 600; color: var(--accent); }
.document-card-cue > span { font-size: 1.5rem; }
.library-empty { padding: 2rem; border: 1px solid var(--border); background: var(--surface-raised); }
.library-empty h3, .library-help h3 { font-size: 1.6rem; margin-top: 0; }
.library-help { margin-top: 3rem; padding-top: 2rem; border-top: 2px solid var(--accent); max-width: 75ch; }
.library-help p { color: var(--text-muted); line-height: 1.8; }
.library-help a { color: var(--accent); }
@media (max-width: 60rem) {
	.library-filters { grid-template-columns: 1fr 1fr; }
	.library-search { grid-column: 1 / -1; }
}
@media (max-width: 40rem) {
	.library-introduction, .document-library .document-list, .library-filters { grid-template-columns: 1fr; gap: 1.2rem; }
	.library-search { grid-column: auto; }
	.document-library { padding-block: 2rem 3rem; }
	.document-library .document-list { gap: 0; }
	.library-filters { padding: 1rem; }
}
