/* Revision 31: compact practice cards with complete, uncropped covers. */
.practice-catalog.books{gap:8px}
.practice-catalog .book{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto 1fr 1fr;gap:4px 8px;padding:8px;border-radius:10px;min-height:104px}
.practice-catalog .cover-wrap{grid-column:1;grid-row:2/4;align-self:center;width:42px;height:60px;padding:0;background:transparent;border-radius:0}
.practice-catalog .cover{display:block;width:100%;height:100%;object-fit:contain;border-radius:0;margin:0}
.practice-catalog .book-info{display:contents}
.practice-catalog .book strong{grid-column:1/-1;grid-row:1;font-size:12px;line-height:1.35;margin:0 0 3px;overflow-wrap:normal;word-break:normal}
.practice-catalog .book-n{display:none}
.practice-catalog .book-progress{grid-column:2;grid-row:2;align-self:end;margin:0}
.practice-catalog .book-progress-track{height:3px}
.practice-catalog .book-progress-copy{gap:4px;font-size:8.5px;line-height:1.35;margin-top:4px}
.practice-catalog .book-info>small{grid-column:2;grid-row:3;align-self:start;font-size:9px;line-height:1.4;margin:0}
.reading-library-header .page-title{margin-bottom:12px}
.reading-library-header h1{font-size:27px;line-height:1.15;margin:5px 0 15px}
.reading-library-header .subtitle{display:none}
.reading-study-section{margin:0 0 20px;padding:0;border:0}
.reading-guide-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 9px}
.reading-guide-heading h2{font-size:14px;font-weight:750;margin:0}
.reading-guide-heading>small{font-size:9px;color:var(--muted);white-space:nowrap}
.reader-modes.compact-modes{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0}
.compact-modes .reader-mode{display:flex;flex-direction:row;align-items:flex-start;gap:8px;border-radius:10px;padding:11px;min-height:81px;text-align:left;background:var(--card)}
.compact-modes .reader-mode>svg{width:19px;height:19px;flex:none;margin:0;color:var(--future)}
.compact-modes .reader-mode>span{min-width:0}
.compact-modes .reader-mode h3{font-size:11px;line-height:1.3;margin:0 0 4px;font-weight:750}
.compact-modes .reader-mode small{display:block;font-size:9px;color:var(--muted);line-height:1.4}
.compact-modes .reader-mode strong{display:block;font-size:10px;margin-top:7px;color:var(--future)}
.pdf-library-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
.pdf-library-heading h2{font-size:15px;margin:0;font-weight:750;letter-spacing:0}
.pdf-library-heading>small{font-size:9px;color:var(--muted);white-space:nowrap}
.pdf-search{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:10px;background:var(--field);padding:0 11px;margin:0 0 15px}
.pdf-search svg{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:1.7;flex:none}
.pdf-search input{background:transparent;border:0;box-shadow:none;outline:0;width:100%;min-width:0;padding:10px 0;color:var(--ink);font:inherit;font-size:12px;border-radius:0;margin:0}
.pdf-search:focus-within{border-color:var(--future)}
.pdf-group{margin:0 0 17px}
.pdf-group-heading{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);font-weight:650;letter-spacing:.15px;margin:0 0 9px}
.pdf-group-heading>span{font-size:9px;font-weight:500;border:1px solid var(--line);padding:1px 6px;border-radius:20px}
.pdf-library-books{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pdf-book.book{display:flex;flex-direction:column;align-items:stretch;gap:0;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:0;overflow:hidden;min-height:0}
.pdf-book .pdf-cover-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:112px;padding:8px;margin:0;background:var(--panel);border-radius:0}
.pdf-book .pdf-cover{display:block;width:100%;height:100%;object-fit:contain;border-radius:2px;margin:0;filter:grayscale(1);opacity:.84;transition:filter .25s ease,opacity .25s ease;box-shadow:none}
.pdf-book.is-ready .pdf-cover{filter:none;opacity:1}
.pdf-downloaded-mark{position:absolute;right:8px;top:8px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#168750;color:#fff;font-size:11px;box-shadow:0 1px 5px #0002}
.pdf-book .pdf-book-body{display:flex;flex:1;flex-direction:column;align-items:stretch;min-width:0;padding:9px}
.pdf-book-heading{flex:1}
.pdf-book h3{color:var(--ink);font-size:12px;line-height:1.35;font-weight:700;margin:0 0 5px;min-height:32px;overflow-wrap:anywhere}
.pdf-book-status,.pdf-position{display:block;font-size:9px;line-height:1.4;color:var(--muted)}
.pdf-book-status.available{color:#7ff2b3}
:is([data-theme=study],[data-theme=vivid],[data-theme=calm],[data-theme=mono],[data-theme=naruto-young]) .pdf-book-status.available{color:#126943}
.pdf-position{margin-top:2px}
.pdf-book-actions{display:flex;align-items:center;gap:5px;margin-top:8px}
.pdf-book .pdf-action{flex:1;padding:6px 7px;min-height:33px;border-radius:6px;font-size:10px;font-weight:650;display:flex;align-items:center;justify-content:center;gap:8px;margin:0;width:auto}
.pdf-book .pdf-action>span{font-size:14px;line-height:1}
.pdf-remove{padding:0;border:0;background:transparent;color:var(--muted);font-size:19px;min-height:33px;min-width:26px;border-radius:7px}
.pdf-download-track{height:4px;background:var(--progress-bg);border-radius:8px;overflow:hidden;margin-top:7px}
.pdf-download-track>span{display:block;height:100%;background:var(--future);transition:width .15s linear}
.pdf-error{display:block;color:var(--strong-red);font-size:10px;line-height:1.4;margin-top:6px}
.pdf-library-books.single-ready{grid-template-columns:1fr}
.single-ready .pdf-book.book{flex-direction:row;align-items:center}
.single-ready .pdf-book .pdf-cover-wrap{flex:none;width:72px;height:99px;padding:8px}
.single-ready .pdf-book .pdf-book-body{padding:10px 11px;flex:1}
.single-ready .pdf-book h3{min-height:0;font-size:13px}
.single-ready .pdf-book-actions{margin-top:6px}
.single-ready .pdf-action{flex:0 1 auto;min-width:105px}
.single-ready .pdf-remove{margin-left:auto}
.pdf-library-note{color:var(--muted);font-size:10px;line-height:1.5;text-align:center;margin:10px 0 4px}
.pdf-search-empty{text-align:center;font-size:12px;color:var(--muted);padding:15px 0}
.countdown-view main{max-width:650px;padding:0 22px;margin:0 auto;min-height:100vh;min-height:100svh}
.exam-countdown{--countdown-ink:#f4f6fb;--verse-ink:#fff0d6;--verse-ref:#86d1ef;--cancel-ink:#ff6874;box-sizing:border-box;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:40px 0 19px;background:radial-gradient(ellipse at 50% 40%,var(--future-soft),transparent 65%)}
:is([data-theme=study],[data-theme=vivid],[data-theme=calm],[data-theme=mono],[data-theme=naruto-young]) .exam-countdown{--countdown-ink:#17191e;--verse-ink:#55345c;--verse-ref:#245f83;--cancel-ink:#b92737}
[data-theme=study] .exam-countdown{--verse-ink:#28473e}
[data-theme=calm] .exam-countdown{--verse-ink:#365044}
[data-theme=naruto-young] .exam-countdown{--verse-ink:#693b27}
[data-theme=mono] .exam-countdown{--verse-ink:#303030}
.countdown-heading{width:100%}
.exam-countdown h1{font-family:inherit;font-style:normal;font-size:27px;letter-spacing:-.5px;line-height:1.25;margin:0;color:var(--countdown-ink);font-weight:750}
.countdown-heading>small{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:9px}
.exam-countdown-dial{width:168px;height:168px;margin:26px 0 25px;flex:none}
.exam-countdown-dial strong{font-size:76px}
.exam-countdown .exam-quote{box-sizing:border-box;margin:0;width:100%;max-width:500px;padding:0;min-height:0;border:0}
.quote-divider{display:block;width:34px;height:1px;background:var(--verse-ref);opacity:.65;margin:0 auto 17px}
.exam-quote p{font-family:'Lectura Serif',Georgia,serif;font-size:26px;font-weight:500;line-height:1.45;margin:0;color:var(--verse-ink);white-space:normal;letter-spacing:0;overflow-wrap:break-word}
.exam-quote cite{display:block;color:var(--verse-ref);font-size:16px;font-style:normal;font-weight:750;line-height:1.4;letter-spacing:1.2px;margin-top:18px}
.countdown-footer{display:flex;flex-direction:column;align-items:center;width:100%;margin-top:auto;padding-top:28px}
.countdown-cancel{display:block;background:transparent;border:1.5px solid var(--cancel-ink);border-radius:23px;min-width:135px;min-height:44px;padding:10px 24px;font-size:13px;font-weight:650;color:var(--cancel-ink);margin:0}
.countdown-cancel:active{background:#e6414f12}
.review-item{--review-green:#83efb0;--review-red:#ffacb5;--review-good-fill:#22945b24;--review-bad-fill:#d6385426;--review-good-line:#3ec682;--review-bad-line:#f36f86;border:1px solid var(--line);border-left-width:5px;padding:12px 13px;margin:9px 0;border-radius:11px;box-shadow:none}
:is([data-theme=study],[data-theme=vivid],[data-theme=calm],[data-theme=mono],[data-theme=naruto-young]) .review-item{--review-green:#086a3c;--review-red:#b41737;--review-good-fill:#2dc47122;--review-bad-fill:#f3476520;--review-good-line:#2ba56a;--review-bad-line:#dc4b66}
.review-item.review-correct{border-color:var(--review-good-line);background:linear-gradient(var(--review-good-fill),var(--review-good-fill)),var(--card)}
.review-item.review-wrong{border-color:var(--review-bad-line);background:linear-gradient(var(--review-bad-fill),var(--review-bad-fill)),var(--card)}
.review-heading{gap:6px;flex-wrap:nowrap;align-items:flex-start}
.review-heading .review-label{font-size:10px;min-width:0;line-height:1.4;color:var(--muted)}
.review-heading .badge{font-size:10px;line-height:1.2;padding:5px 7px;white-space:nowrap;border:0;font-weight:800;border-radius:6px}
.review-correct .review-heading .badge{background:#16874e;color:#fff}
.review-wrong .review-heading .badge{background:#c92d4a;color:#fff}
.review-item .question{font-size:14px;line-height:1.5;margin:10px 0 9px;white-space:normal}
.review-item .question .question-context{font-size:13px!important;line-height:1.5;margin:0 0 6px}
.review-item .question .asked{font-size:15px!important;line-height:1.5;margin:6px 0;padding:0;white-space:normal}
.review-item .review-response{margin:7px 0 0;padding:8px 10px;border-radius:7px;font-size:14px!important;line-height:1.4}
.review-item .review-response small{font-size:10px;margin-bottom:3px;color:var(--muted)}
.review-item .review-response strong{font-weight:750}
.review-item.review-correct .review-response,.review-item .review-response.key{background:var(--review-good-fill);color:var(--review-green);border-left:3px solid var(--review-good-line)}
.review-item.review-wrong .review-response:not(.key){background:var(--review-bad-fill);color:var(--review-red);border-left:3px solid var(--review-bad-line)}
.review-none h2{font-size:18px}
.review-none p{font-size:13px}

@media(max-width:350px){.practice-catalog .book{grid-template-columns:38px minmax(0,1fr);column-gap:6px;padding:7px}.practice-catalog .cover-wrap{width:38px;height:56px}.reading-guide-heading{flex-wrap:wrap;gap:4px}.compact-modes .reader-mode{padding:9px;gap:6px}.compact-modes .reader-mode>svg{width:16px;height:16px}.pdf-library-books{gap:8px}.pdf-book .pdf-book-body{padding:8px}.pdf-book h3{font-size:11px;min-height:30px}.pdf-book .pdf-cover-wrap{height:106px}.pdf-book .pdf-action{font-size:10px}.exam-countdown h1{font-size:26px}.exam-quote p{font-size:25px}}
@media(max-height:740px){.exam-countdown{padding-top:25px;padding-bottom:15px}.exam-countdown-dial{width:145px;height:145px;margin:24px 0 21px}.exam-countdown-dial strong{font-size:67px}.exam-quote p{font-size:25px;line-height:1.4}.countdown-footer{padding-top:22px}}
@media(min-width:700px){.practice-catalog .book{grid-template-columns:48px minmax(0,1fr)}.practice-catalog .cover-wrap{width:48px;height:68px}.practice-catalog .book strong{font-size:13px}.practice-catalog .book-progress-copy,.practice-catalog .book-info>small{font-size:10px}.pdf-library-books{grid-template-columns:repeat(3,minmax(0,1fr))}.pdf-library-books.single-ready{grid-template-columns:1fr}.pdf-book .pdf-cover-wrap{height:138px}.exam-countdown h1{font-size:30px}.exam-quote p{font-size:28px}.exam-quote cite{font-size:17px}}
@media(prefers-reduced-motion:reduce){.pdf-download-track>span,.pdf-book .pdf-cover{transition:none}}
