.library-browser { min-width:0; }
.lb-page-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:22px; }
.lb-kicker { color:#83917e; font-size:9px; font-weight:600; letter-spacing:.13em; }
.lb-page-heading h1 { margin:3px 0 7px; font-size:29px; }
.lb-page-heading p { color:#849181; font-size:12px; }
.lb-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-bottom:18px; }
.lb-collections { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:4px; background:#edf1e8; border-radius:10px; }
.lb-collections button { display:flex; align-items:center; gap:8px; min-height:38px; border:0; padding:9px 14px; border-radius:7px; background:transparent; color:#778570; font-size:12px; }
.lb-collections button.active { background:#fff; color:#214e43; font-weight:650; box-shadow:0 1px 4px #233b2409; }
.lb-collections button > span { padding:2px 6px; border-radius:4px; background:#e5ecd9; color:#607d4f; font-size:10px; font-weight:500; }
.lb-search { display:flex; align-items:center; gap:8px; width:260px; max-width:100%; padding:10px 12px; border:1px solid #dfe5d9; border-radius:8px; background:#fff; }
.lb-search svg { width:17px; height:17px; color:#8e9b86; }
.lb-search input { width:100%; padding:0; min-width:0; font-size:12px; border:0; background:transparent; color:#3c5547; }
.lb-search:focus-within { border-color:#849f71; box-shadow:0 0 0 2px #a7bd8722; }
.lb-books { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:6px; padding:15px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.lb-book { position:relative; min-height:35px; padding:7px 10px; background:#f7f9f4; border:1px solid transparent; border-radius:7px; color:#7a8a71; font-size:12px; white-space:nowrap; }
.lb-book:hover { background:#edf3e4; }
.lb-book.active { border-color:#2a5946; background:#25513f; color:#fff; font-weight:600; }
.lb-book-dot { display:inline-block; width:4px; height:4px; margin-left:5px; background:#8da571; border-radius:50%; vertical-align:middle; }
.lb-book.active .lb-book-dot { background:#dbe99b; }
.lb-test-heading,.lb-index-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:23px 0 17px; }
.lb-test-heading h2 { margin-top:3px; color:#294c39; font-size:21px; font-weight:550; letter-spacing:-.03em; }
.lb-test-heading h2 > span { margin:0 7px; color:#b8c4ad; font-weight:400; }
.lb-test-tabs { display:flex; gap:5px; padding:4px; background:#e9eee2; border-radius:9px; }
.lb-test-tabs button { min-height:37px; padding:8px 16px; background:transparent; border:0; border-radius:6px; font-size:12px; color:#798a70; }
.lb-test-tabs button.active { background:#fff; color:#254f3b; font-weight:650; box-shadow:0 1px 4px #29442410; }
.lb-papers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:stretch; }
.lb-paper { min-width:0; display:flex; flex-direction:column; border:1px solid #e1e7da; border-radius:13px; background:#fff; overflow:hidden; }
.lb-paper.is-ready { border-color:#d7e1cb; }
.lb-paper-head { display:flex; align-items:center; gap:10px; padding:19px 17px 17px; }
.lb-subject-icon { display:grid; place-items:center; width:34px; height:37px; flex:0 0 34px; background:#eef3e6; color:#6e8b5b; border-radius:8px; font-family:Georgia,serif; font-size:21px; }
.lb-paper-reading .lb-subject-icon { background:#f8f1e3; color:#a38a55; }
.lb-paper-writing .lb-subject-icon { background:#edf0f6; color:#788bb0; }
.lb-paper-head > div { min-width:0; flex:1; }
.lb-paper-head h3 { font-size:15px; font-weight:600; letter-spacing:-.02em; }
.lb-paper-head h3 small { display:block; margin-top:1px; color:#8a9980; font-size:10px; font-weight:400; }
.lb-paper-head p { margin-top:4px; color:#96a18e; font-size:10px; }
.lb-paper-head .lb-source { font-size:9px; }
.lb-status { align-self:flex-start; margin-top:1px; flex:0 0 auto; padding:3px 7px; border-radius:5px; background:#f0f2ed; color:#94a08b; font-size:9px; white-space:nowrap; }
.lb-status.ready { color:#6d8654; background:#edf3e3; }
.lb-unit-title { padding:0 17px 13px; color:#566f4b; font-size:11px; line-height:1.75; overflow-wrap:anywhere; }
.lb-parts { display:grid; margin:0 10px 12px; gap:3px; }
.lb-part { display:flex; align-items:center; width:100%; min-height:48px; padding:10px 9px; text-align:left; gap:7px; border:1px solid transparent; border-radius:7px; background:#f7f9f4; }
.lb-part:not(:disabled):hover { border-color:#c8d6bb; background:#edf3e4; }
.lb-part:disabled { opacity:1; color:#9ba591; cursor:default; background:#f7f8f4; }
.lb-part-label { flex:1; min-width:0; font-size:11px; font-weight:500; color:#425f37; }
.lb-part-status { color:#97a18c; font-size:9px; white-space:nowrap; }
.lb-part > svg { width:13px; height:13px; color:#8b9c7c; }
.lb-part:disabled .lb-part-label,.lb-part:disabled > svg { color:#a4ae9c; }
.lb-part:disabled > svg { opacity:.35; }
.lb-part.is-match { border-color:#b5ca91; background:#f2f6df; }
.lb-paper-foot { display:flex; align-items:flex-start; flex-direction:column; gap:10px; padding:12px 17px 16px; margin-top:auto; border-top:1px solid #eff2ea; }
.lb-paper-foot > span,.lb-progress-note { color:#98a38d; font-size:9px; line-height:1.7; }
.lb-paper-foot > span:first-child:empty { display:none; }
.lb-paper-foot .lb-await { color:#9caa8f; }
.lb-paper-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:6px; width:100%; }
.lb-paper-actions .btn { font-size:10px; padding:8px 10px; }
.lb-paper-actions svg { width:13px; height:13px; }
.lb-help { padding:17px 1px 0; color:#96a18d; font-size:10px; line-height:1.9; }
.lb-help p + p { margin-top:3px; }
.lb-index-heading { padding-top:8px; }
.lb-index-heading h2 { font-size:18px; }
.lb-index-heading p { margin-top:5px; color:#8e9a86; font-size:11px; }
.lb-index-heading > span { color:#8a9a7c; font-size:11px; white-space:nowrap; }
.lb-results-head { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:4px 0 16px; }
.lb-results-head p { color:#7f9072; font-size:12px; overflow-wrap:anywhere; }
.lb-search-group + .lb-search-group { margin-top:22px; }
.lb-search-group > h2 { margin-bottom:11px; font-size:16px; color:#42653b; }
.lb-empty { grid-column:1/-1; display:flex; align-items:center; justify-content:center; flex-direction:column; min-height:220px; gap:12px; padding:30px; border:1px dashed #d6dfca; border-radius:12px; text-align:center; }
.lb-empty h2,.lb-empty h3 { color:#687f5c; font-size:16px; }
.lb-empty p { color:#96a18b; font-size:12px; }
.lb-pagination { display:flex; justify-content:center; align-items:center; gap:18px; margin-top:24px; }
.lb-pagination span { color:#8d9d80; font-size:11px; }
@media (min-width:1400px) { .lb-paper-head h3 small { display:inline; margin-left:5px; } }
@media (max-width:1100px) {
  .lb-paper-head { padding:16px 13px; gap:8px; }
  .lb-subject-icon { width:28px; height:33px; flex-basis:28px; font-size:18px; }
  .lb-paper-head h3 { font-size:13px; }
  .lb-status { padding:3px 5px; font-size:8px; }
  .lb-part { flex-wrap:wrap; column-gap:4px; }
  .lb-part-label { flex-basis:calc(100% - 20px); }
  .lb-part-status { order:3; flex-basis:100%; }
  .lb-part > svg { margin-left:auto; }
  .lb-paper-foot { padding:11px 13px 14px; }
}
@media (max-width:800px) {
  .lb-collections { width:100%; }
  .lb-collections button { flex:1; justify-content:center; }
  .lb-search { width:100%; }
  .lb-books { grid-template-columns:repeat(6,minmax(0,1fr)); padding:10px; }
  .lb-test-heading { align-items:flex-start; flex-direction:column; gap:13px; }
  .lb-test-tabs { width:100%; }
  .lb-test-tabs button { flex:1; }
  .lb-papers { grid-template-columns:1fr; }
  .lb-paper-head h3 { font-size:15px; }
  .lb-paper-head h3 small { display:inline; margin-left:6px; }
  .lb-part { flex-wrap:nowrap; }
  .lb-part-label { flex-basis:auto; }
  .lb-part-status { order:initial; flex-basis:auto; }
  .lb-paper-actions { justify-content:flex-start; }
  .lb-paper-foot { gap:9px; }
}
@media (max-width:480px) {
  .lb-page-heading h1 { font-size:25px; }
  .lb-page-heading p { max-width:220px; line-height:1.8; font-size:11px; }
  .lb-page-heading > .btn { font-size:10px; padding:9px 11px; }
  .lb-collections button { padding:9px 8px; font-size:11px; gap:5px; }
  .lb-collections button > span { font-size:8px; padding:2px 4px; }
  .lb-books { grid-template-columns:repeat(6,minmax(0,1fr)); gap:4px; padding:8px; }
  .lb-book { padding:7px 4px; font-size:11px; }
  .lb-test-tabs button { padding:8px 10px; }
}

.lb-coverage { margin:0 0 22px; padding:16px 20px; border:1px solid var(--line,#dce3db); border-radius:14px; background:#f8faf6; color:#526254; font-size:12px; line-height:1.8; }
.lb-coverage summary { cursor:pointer; font-weight:600; color:#365644; }
.lb-coverage p { margin:12px 0 0; }
.lb-coverage a,.open-bank-credit a { color:#355d46; text-decoration:underline; text-underline-offset:3px; }
.lb-coverage-scroll { overflow:auto; margin-top:14px; }
.lb-coverage table { width:100%; min-width:420px; border-collapse:collapse; text-align:left; font-size:12px; }
.lb-coverage th,.lb-coverage td { border-bottom:1px solid #dce3db; padding:8px 12px; }
.open-bank-credit { padding:10px 12px; margin:12px 0; background:#f3f6ef; border-radius:10px; color:#5b6759; font-size:11px; line-height:1.7; overflow-wrap:anywhere; }
.open-bank-credit p { margin:0 0 5px; }
.open-bank-credit p:last-child { margin-bottom:0; }
.open-bank-credit summary { cursor:pointer; }
.open-bank-credit details p { margin-top:6px; white-space:pre-line; }
.question-block strong[data-annotation-key],.question-block [data-annotation-key] { white-space:pre-line; }
.writing-chart { margin:18px 0; }
.writing-chart img { display:block; width:100%; height:auto; border:1px solid #dce3db; border-radius:8px; background:white; }
.writing-chart figcaption { margin-top:7px; font-size:11px; color:#6e796f; }
