.bookshelf-library-page{padding:48px 0 80px}
.bookshelf-library-page h1{max-width:850px;margin:0;font-family:"Playfair Display",serif;font-size:clamp(2.15rem,5vw,3.8rem);line-height:1.08;letter-spacing:-.04em}
.bookshelf-library-intro{max-width:850px}
.bookshelf-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bookshelf-screen{max-width:850px}
.bookshelf-existing,.bookshelf-success,.bookshelf-error,.bookshelf-processing-card{padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 6px 20px rgba(38,48,40,.035)}
.bookshelf-existing h2,.bookshelf-success h2,.bookshelf-error h2{margin:0 0 12px;font-family:"Playfair Display",serif;font-size:1.45rem}
.bookshelf-existing{margin-bottom:18px;border-color:#a9c7b2;background:#f3f8f3}
.bookshelf-source-note,.bookshelf-success-note{margin:0 0 15px;color:var(--muted)}
.bookshelf-actions,.bookshelf-review-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.bookshelf-actions button,.bookshelf-review-actions button,.bookshelf-back{font-family:inherit;cursor:pointer}
.bookshelf-reset,.bookshelf-back{border:0;background:transparent;color:#7a3732;text-decoration:underline;text-underline-offset:3px}
.bookshelf-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:17px 0 0}
.bookshelf-summary div{padding:10px 12px;border:1px solid #e0e5dd;border-radius:8px;background:rgba(255,255,255,.72)}
.bookshelf-summary dt{color:var(--muted);font-size:.76rem}
.bookshelf-summary dd{margin:2px 0 0;color:var(--ink);font-size:1.25rem;font-weight:700}
.bookshelf-processing{padding:30px 0}
.bookshelf-processing-card{max-width:430px;margin:auto;text-align:center}
.bookshelf-processing-title{display:flex;justify-content:center;align-items:baseline;margin:0;font-family:"Playfair Display",serif;font-size:1.55rem;font-weight:700}
.bookshelf-dots{display:inline-flex;width:1.2em;justify-content:space-between}
.bookshelf-dots span{display:inline-block;animation:bookshelf-dot-bounce 1.65s ease-in-out infinite}
.bookshelf-dots span:nth-child(2){animation-delay:.18s}
.bookshelf-dots span:nth-child(3){animation-delay:.36s}
.bookshelf-processing-stage{margin:9px 0 0;color:var(--muted)}
@keyframes bookshelf-dot-bounce{0%,45%,100%{transform:translateY(0)}20%{transform:translateY(-.28em)}}
.bookshelf-review-progress{margin:0 0 8px;color:var(--green);font-weight:700}
.bookshelf-source-context{margin:0 0 13px;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}
.bookshelf-review-card{max-width:720px;margin:0}
.bookshelf-question{margin:23px 0 0;font-family:"Playfair Display",serif;font-size:1.4rem}
.bookshelf-error{border-color:#d9aaa3;background:#fff8f6}
.bookshelf-success{border-color:#9dbda6;background:#f4f9f4}
.bookshelf-library-page button:focus-visible,.bookshelf-library-page a:focus-visible,.bookshelf-library-page input:focus-visible{outline:3px solid rgba(49,93,79,.35);outline-offset:3px}
.bookshelf-library-page button:disabled,.bookshelf-library-page input:disabled{cursor:not-allowed;opacity:.62}
@media(max-width:650px){.bookshelf-library-page{padding:38px 0 60px}.bookshelf-existing,.bookshelf-success,.bookshelf-error{padding:17px}.bookshelf-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.bookshelf-review-card{grid-template-columns:105px minmax(0,1fr);gap:15px;padding:15px}.bookshelf-review-card .cover-wrap{height:158px}.bookshelf-review-actions{display:grid;grid-template-columns:1fr}.bookshelf-review-actions .button{justify-content:center}.bookshelf-actions{align-items:stretch}.bookshelf-actions .button{justify-content:center;width:100%}}
@media(prefers-reduced-motion:reduce){.bookshelf-dots span{animation:none;opacity:.72}}
