.open-books{margin:18px 0 26px;padding:20px;border:1px solid var(--border,#dce4e1);border-radius:14px;background:var(--card-bg,#fff)}.open-books-intro h2{font-size:1.15rem;margin:0 0 6px}.open-books-intro p,.open-books-source,.open-books-status{color:var(--muted,#52615d);font-size:.9rem}.open-books-form{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.open-books-form label{flex-basis:100%;font-weight:600;font-size:.88rem}.open-books-input{min-width:190px;flex:1;padding:11px 12px;border:1px solid #abbab3;border-radius:9px;background:var(--background,#fff);color:inherit}.open-books-submit{border:0;border-radius:9px;padding:10px 18px;background:#08784e;color:white;cursor:pointer;font-weight:600}.open-books-submit:disabled{opacity:.55;cursor:wait}.open-books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:15px}.open-book-card{min-width:0}.open-book-link{display:block;height:100%;text-decoration:none;color:inherit;border:1px solid #dce4e1;border-radius:11px;overflow:hidden}.open-book-link:focus-visible{outline:3px solid #08784e;outline-offset:3px}.open-book-cover{height:172px;display:flex;align-items:center;justify-content:center;background:#f1f4f2}.open-book-cover img{max-height:100%;max-width:100%;object-fit:contain}.open-book-cover-placeholder{color:#687a72;font-size:.85rem}.open-book-copy{padding:12px}.open-book-copy h3{font-size:.91rem;line-height:1.35;margin:0 0 5px}.open-book-copy p,.open-book-copy small{font-size:.79rem;color:#52615d;margin:0 0 6px}.open-book-action{font-size:.8rem;color:#08784e;font-weight:600}.open-books-source{margin-bottom:0}@media(max-width:480px){.open-books{padding:14px}.open-books-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
