.public-solutions { color: #243447; background: #f5f8fa; min-height: 65vh; }
.library-hero { background: #eaf4f9; border-bottom: 1px solid #d6e6ef; padding: 1.25rem 0; }
.library-hero h1 { color: #142a3d; font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; margin-bottom: .5rem; }
.library-intro { max-width: 720px; font-size: 1rem; line-height: 1.5; margin: 0; }
.library-body { padding-top: 1.25rem; padding-bottom: 3.5rem; }
.library-filters { display: grid; grid-template-columns: 2fr 1.2fr 1fr auto; gap: 1rem; align-items: end; background: #fff; border: 1px solid #dce5eb; padding: 1.25rem; border-radius: 12px; }
.library-filters > div { min-width: 0; }
.library-filters label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .5rem; }
.library-filters .form-control, .library-filters .form-select { min-height: 44px; }
.public-solutions .btn-primary { background: #00689d; border-color: #00689d; min-height: 44px; }
.library-results-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.25rem 0; }
.library-results-heading h2 { font-size: 1.1rem; margin: 0; }
.public-solutions a { color: #00689d; }
.library-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.library-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #dce5eb; border-radius: 12px; padding: 1.5rem; overflow-wrap: anywhere; }
.library-card-meta { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.25rem; }
.library-card-meta span { background: #edf5fa; color: #235b79; font-size: .75rem; border-radius: 5px; padding: .3rem .55rem; }
.library-card-id { font-size: .75rem; color: #64748b; letter-spacing: .04em; margin-bottom: .5rem; }
.library-card h3 { font-size: 1.15rem; line-height: 1.5; margin-bottom: .75rem; }
.library-card h3 a { text-decoration: none; color: #142a3d; }
.library-card h3 a:hover { color: #00689d; text-decoration: underline; }
.library-card-summary { color: #607183; font-size: .9rem; line-height: 1.6; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.library-card-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; margin: auto 0 0; padding: 1rem 0; }
.library-card-facts dt { color: #64748b; font-size: .75rem; font-weight: 500; }
.library-card-facts dd { margin: .2rem 0 0; font-size: .85rem; line-height: 1.5; }
.library-card-link { border-top: 1px solid #e2e8f0; padding-top: 1rem; display: flex; justify-content: space-between; font-weight: 600; font-size: .9rem; text-decoration: none; }
.library-card-link:hover { text-decoration: underline; }
.library-empty { text-align: center; padding: 3rem 1rem; background: #fff; border: 1px solid #dce5eb; border-radius: 12px; }
.library-empty > i { display: block; color: #00689d; font-size: 2rem; margin-bottom: 1rem; }
.library-empty h3 { font-size: 1.25rem; }
.library-pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 2rem; }
.public-solution-detail { padding: 2.5rem 0; }
.public-solutions a:focus-visible, .public-solutions button:focus-visible { outline: 3px solid #00689d; outline-offset: 4px; }
@media (max-width: 1100px) { .library-filters { grid-template-columns: 1fr 1fr; } .library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .library-filters, .library-grid { grid-template-columns: 1fr; } .library-card { padding: 1.25rem; } .public-solution-detail { padding: 1.5rem 0; } }
