/* Public download catalogue. Cards follow the news page palette. */
.library-section { padding: 40px 0 60px; background: #f5f8fb; }
.library-toolbar { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.library-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.library-filter { border: 1px solid #c9dbe8; background: #fff; color: #33475b; border-radius: 18px; padding: 6px 16px; font-size: 14px; cursor: pointer; }
.library-filter[aria-selected="true"] { background: #006fae; border-color: #006fae; color: #fff; }
.library-search { flex: 0 1 280px; min-width: 0; padding: 9px 14px; border: 1px solid #c9dbe8; border-radius: 8px; font-size: 14px; }
.library-notice { margin: 0 0 22px; padding: 12px 16px; border: 1px solid #b8dcec; border-radius: 8px; background: #eef8fd; color: #00476f; font-size: 14px; line-height: 1.7; }
.library-notice a { color: #00476f; font-weight: 600; }
.library-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.library-card { display: flex; flex-direction: column; background: #fff; border-radius: 10px; box-shadow: 0 2px 12px rgba(0, 0, 0, .06); padding: 20px 22px; min-width: 0; }
.library-card-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 10px; }
.library-type { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 10px; display: grid; place-items: center; background: linear-gradient(135deg, #006fae, #005b8f); color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .5px; }
.library-type[data-type="doc"], .library-type[data-type="docx"] { background: linear-gradient(135deg, #2f6fdb, #2457b3); }
.library-type[data-type="xls"], .library-type[data-type="xlsx"] { background: linear-gradient(135deg, #2bb673, #1f9962); }
.library-type[data-type="ppt"], .library-type[data-type="pptx"] { background: linear-gradient(135deg, #e8754e, #cf5a39); }
.library-type[data-type="pdf"] { background: linear-gradient(135deg, #d9473f, #b8332c); }
.library-type[data-type="zip"] { background: linear-gradient(135deg, #7c5cd0, #6346b8); }
.library-card h3 { font-size: 17px; line-height: 1.45; color: #1f2d3d; margin: 2px 0 6px; overflow-wrap: anywhere; }
.library-tag { display: inline-block; padding: 2px 10px; border-radius: 12px; background: #e6f1f8; color: #00476f; font-size: 12px; }
.library-summary { flex: 1 1 auto; color: #4a5a6a; font-size: 14px; line-height: 1.75; margin: 6px 0 14px; overflow-wrap: anywhere; }
.library-summary.is-empty { color: #8a99a8; }
.library-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; border-top: 1px solid #edf2f6; padding-top: 12px; }
.library-meta { color: #7a8b9c; font-size: 13px; }
.library-download { display: inline-block; padding: 7px 18px; border-radius: 6px; background: #006fae; color: #fff; font-size: 14px; text-decoration: none; border: 0; }
.library-download:hover { background: #005b8f; }
button.library-download[disabled] { background: #c3ced8; color: #fff; cursor: not-allowed; }
.library-empty { grid-column: 1 / -1; text-align: center; color: #7a8b9c; padding: 40px 0; }
.library-staff-link { margin: 28px 0 0; text-align: right; font-size: 13px; }
.library-staff-link a { color: #7a8b9c; }
@media (max-width: 1000px) { .library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .library-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .library-search { flex-basis: 100%; }
  .library-section { padding: 24px 0 40px; }
}
