.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.lib-panel { background: #fff; border: 1px solid #e3e7eb; border-radius: 3px; min-width: 0; box-shadow: 0 1px 3px #23334f0a; }
.lib-list-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 15px; }
.lib-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.lib-link { border: 0; background: transparent; color: #2070a9; padding: 6px 2px; text-decoration: underline; font-size: 13px; }
.lib-link:hover { color: #125785; }
.lib-search input { width: 210px; min-height: 34px; padding: 7px 9px; border: 1px solid #cbd5df; border-radius: 3px; }
.lib-table-scroll { overflow-x: auto; }
.lib-table { width: 100%; min-width: 950px; border-collapse: collapse; font-size: 12px; }
.lib-table th, .lib-table td { text-align: left; vertical-align: top; padding: 11px 10px; border-top: 1px solid #e9edf2; }
.lib-table th { color: #526a80; background: #f5f8fb; font-weight: 700; white-space: nowrap; }
.lib-table tbody tr:hover { background: #fafcff; }
.lib-paths a { display: block; max-width: 220px; overflow-wrap: anywhere; margin-bottom: 4px; color: #1c72b0; }
.lib-row-actions { white-space: nowrap; }
.lib-row-actions button { margin-right: 6px; border: 1px solid #cbd9e5; background: #fff; color: #276b9d; padding: 5px 7px; border-radius: 3px; font-size: 11px; }
.lib-row-actions button:hover { background: #edf5fa; }
.lib-form-panel { padding: 0 20px 20px; }
.lib-form-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid #e6ebf0; }
.lib-form-heading h2 { font-size: 17px; margin: 16px 0; }
.lib-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 22px; padding: 18px 0; }
.lib-field { display: flex; flex-direction: column; gap: 6px; color: #4d6278; font-size: 12px; font-weight: 600; }
.lib-field input, .lib-field select { min-height: 35px; width: 100%; border: 1px solid #cad6e2; border-radius: 3px; background: #fff; color: #263a50; padding: 7px 9px; }
.lib-field select[multiple] { min-height: 110px; padding: 5px; }
.lib-field select[multiple] option { padding: 4px; }
.lib-field input[type=file] { padding: 5px; }
.lib-field small { color: #8695a5; font-weight: 400; }
.lib-files { border: 1px solid #dbe3eb; margin: 0 0 15px; font-size: 12px; }
.lib-files label { display: block; margin: 7px 0; }
.lib-file-tile { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 7px 0; padding: 8px; border: 1px solid #e2e8ee; border-radius: 3px; }
.lib-file-tile a { color: #2070a9; overflow-wrap: anywhere; }.lib-file-tile button { border: 1px solid #d5dfe8; background: #fff; padding: 5px 8px; color: #a03b43; }
.lib-remove-dialog { border: 0; border-radius: 4px; padding: 20px; box-shadow: 0 12px 35px #20364f44; }.lib-remove-dialog::backdrop { background: #162a3d88; }.lib-remove-dialog div { display: flex; justify-content: flex-end; gap: 8px; }.lib-remove-dialog button { border: 1px solid #cad5df; border-radius: 3px; background: #fff; padding: 7px 15px; }
.lib-form-actions, .lib-dialog-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 9px; margin-top: 14px; }
.lib-error, .lib-notice { padding: 10px 12px; border: 1px solid; border-radius: 3px; font-size: 12px; }
.lib-error { color: #9a2631; border-color: #ecc6cb; background: #fff2f3; }
.lib-notice { color: #317154; border-color: #bfe0cb; background: #f0fbf3; }
.lib-dialog { width: min(780px, calc(100vw - 22px)); max-height: min(90dvh, 900px); padding: 0; border: 0; border-radius: 4px; box-shadow: 0 15px 50px #102f4d66; }
.lib-dialog::backdrop { background: #112b47a8; }
.lib-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 17px; border-bottom: 1px solid #e2e8ee; }
.lib-dialog-header h2 { font-size: 17px; margin: 0; color: #344d66; }
.lib-dialog-header button { border: 0; background: transparent; color: #698097; font-size: 24px; line-height: 1; }
.lib-dialog-body { padding: 18px; overflow-y: auto; max-height: calc(90dvh - 55px); }
.lib-dialog-body form { display: grid; gap: 12px; }
.lib-info-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.lib-info-buttons button { border: 1px solid #d1dce7; background: #fff; color: #376c95; padding: 7px 10px; border-radius: 3px; font-size: 12px; }
.lib-values { padding: 10px; background: #f6f8fa; color: #5c6e80; font-size: 12px; line-height: 1.5; }
.lib-validation { margin-top: 20px; padding: 14px; background: #fbfcfd; border: 1px solid #dce4ec; font-size: 13px; }
.lib-validation ul { max-height: 130px; overflow: auto; color: #a3343c; }
.lib-ncert-filters { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 10px; }
.lib-ncert-results { margin-top: 20px; border-top: 1px solid #e2e8ee; padding-top: 12px; }
.lib-select-all { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; }
.lib-ncert-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 12px; }
.lib-ncert-card { display: flex; gap: 8px; align-items: flex-start; min-height: 64px; padding: 12px; border: 1px solid #dfe7ee; border-radius: 3px; font-size: 13px; }
.lib-ncert-card span { flex: 1; }
.lib-ncert-card small { display: block; color: #73889b; margin-top: 4px; }
.lib-ncert-card a { color: #2070a9; font-size: 11px; }
@media(max-width:700px) { .lib-fields, .lib-ncert-grid { grid-template-columns: 1fr; }.lib-ncert-filters { grid-template-columns: 1fr; }.lib-list-top { align-items: stretch; }.lib-search input { width: 100%; }.lib-search { width: 100%; }.lib-dialog-body { padding: 12px; } }
