/*!
 * page-library.bundle.css — merged page-type stylesheet.
 * Built from: page-specific.css + library.css
 * Source files preserved for rollback (point pageSpecificCSS
 * back at the individual files in header.php).
 */
 .home-hero{background:linear-gradient(135deg,var(--jinan-teal) 0%,var(--jinan-teal-dark) 100%);color:var(--white);padding:4rem 0;position:relative;overflow:hidden}.home-hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');opacity:0.3}.home-hero .container{position:relative;z-index:2}.home-stats{background:var(--white);margin-top:-3rem;border-radius:var(--border-radius);box-shadow:var(--shadow-lg);padding:2rem;position:relative;z-index:3}.stat-item{text-align:center;padding:1rem}.stat-number{font-size:3rem;font-weight:700;color:var(--jinan-teal);display:block}.stat-label{font-size:1.1rem;color:var(--dark-grey);margin-top:0.5rem}.news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:2rem}.news-card{background:var(--white);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:var(--transition-standard)}.news-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.news-card-image{height:200px;background-size:cover;background-position:center;position:relative}.news-card-date{position:absolute;top:1rem;right:1rem;background:var(--jinan-teal);color:var(--white);padding:0.5rem;border-radius:var(--border-radius);font-size:0.875rem;font-weight:600}.news-card-content{padding:1.5rem}.news-card-title{font-size:1.25rem;font-weight:600;color:var(--dark-charcoal);margin-bottom:0.75rem;line-height:1.4}.news-card-excerpt{color:var(--text-muted);font-size:0.95rem;line-height:1.6;margin-bottom:1rem}.news-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:0.875rem;color:var(--text-muted)}.library-search{background:var(--light-grey);padding:2rem;border-radius:var(--border-radius);margin-bottom:2rem}.library-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-btn{background:var(--white);border:1px solid var(--medium-grey);padding:0.5rem 1rem;border-radius:var(--border-radius);cursor:pointer;transition:var(--transition-standard)}.filter-btn:hover,.filter-btn.active{background:var(--jinan-teal);color:var(--white);border-color:var(--jinan-teal)}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;margin-top:2rem}.book-card{background:var(--white);border-radius:var(--border-radius);padding:1rem;box-shadow:var(--shadow-sm);transition:var(--transition-standard);text-align:center}.book-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.book-cover{width:100px;height:140px;background:var(--light-grey);border-radius:4px;margin:0 auto 1rem;background-size:cover;background-position:center}.book-title{font-size:1rem;font-weight:600;color:var(--dark-charcoal);margin-bottom:0.5rem;line-height:1.3}.book-author{font-size:0.875rem;color:var(--text-muted);margin-bottom:0.75rem}.book-download{background:var(--jinan-teal);color:var(--white);border:none;padding:0.5rem 1rem;border-radius:var(--border-radius);font-size:0.875rem;cursor:pointer;transition:var(--transition-standard)}.book-download:hover{background:var(--jinan-teal-hover)}.faculty-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:2rem}.faculty-card{background:var(--white);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:var(--transition-standard)}.faculty-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.faculty-image{height:250px;background-size:cover;background-position:center;position:relative}.faculty-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,0.7));color:var(--white);padding:1.5rem 1rem 1rem}.faculty-name{font-size:1.25rem;font-weight:600;margin-bottom:0.25rem}.faculty-title{font-size:0.95rem;opacity:0.9}.faculty-content{padding:1.5rem}.faculty-description{color:var(--text-muted);line-height:1.6;margin-bottom:1rem}.faculty-contact{font-size:0.875rem;color:var(--jinan-teal)}.calendar-container{background:var(--white);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);overflow:hidden}.calendar-header{background:var(--jinan-teal);color:var(--white);padding:1.5rem;text-align:center}.calendar-month{font-size:1.5rem;font-weight:600;margin-bottom:0.5rem}.calendar-year{font-size:1.125rem;opacity:0.9}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day-header{background:var(--light-grey);padding:1rem 0.5rem;text-align:center;font-weight:600;font-size:0.875rem;color:var(--dark-grey)}.calendar-day{min-height:80px;border:1px solid var(--medium-grey);padding:0.5rem;position:relative}.calendar-day-number{font-weight:600;color:var(--dark-charcoal)}.calendar-event{background:var(--jinan-teal-light);color:var(--jinan-teal);padding:0.25rem;border-radius:3px;font-size:0.75rem;margin-top:0.25rem;cursor:pointer}.calendar-event:hover{background:var(--jinan-teal);color:var(--white)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:2rem}.contact-info{background:var(--light-grey);padding:2rem;border-radius:var(--border-radius)}.contact-item{display:flex;align-items:flex-start;margin-bottom:1.5rem}.contact-icon{background:var(--jinan-teal);color:var(--white);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-inline-end:1rem;flex-shrink:0}.contact-details h4{color:var(--jinan-teal);margin-bottom:0.5rem;font-size:1.1rem}.contact-details p{color:var(--text-muted);margin:0;line-height:1.6}.contact-form{background:var(--white);padding:2rem;border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}@media (max-width:991.98px){.home-stats{margin-top:-2rem;padding:1.5rem}.stat-number{font-size:2.5rem}.news-grid,.faculty-grid,.book-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.contact-grid{grid-template-columns:1fr;gap:2rem}.calendar-grid{font-size:0.875rem}.calendar-day{min-height:60px}}@media (max-width:767.98px){.home-hero{padding:3rem 0}.home-stats{margin-top:-1.5rem;padding:1rem}.stat-number{font-size:2rem}.library-filters{gap:0.5rem}.filter-btn{padding:0.375rem 0.75rem;font-size:0.875rem}.news-grid,.faculty-grid,.book-grid{grid-template-columns:1fr}}.library-container{background:#f8f9fa;min-height:100vh;padding:2rem 0}.library-header{background:linear-gradient(135deg,var(--jinan-teal) 0%,var(--jinan-teal-dark) 100%);color:white;padding:3rem 0;margin-bottom:2rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow)}.library-title{font-size:2.5rem;font-weight:700;margin-bottom:0.5rem;display:flex;align-items:center;gap:1rem}.library-title i{color:var(--jinan-gold-dark);font-size:2.8rem}.library-subtitle{font-size:1.1rem;opacity:0.9;margin:0}.library-search-section{background:white;border-radius:var(--border-radius-lg);padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow);border:1px solid #e9ecef}.search-form{display:flex;flex-direction:column;gap:1.5rem}.search-input-group{position:relative}.search-input{width:100%;padding:1rem 1rem 1rem 3rem;border:2px solid #e9ecef;border-radius:var(--border-radius);font-size:1rem;transition:var(--transition);background:#f8f9fa}.search-input:focus{outline:none;border-color:var(--jinan-teal);box-shadow:0 0 0 3px var(--jinan-teal-light);background:white}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--jinan-teal);font-size:1.2rem}.search-options{display:flex;gap:2rem;flex-wrap:wrap;align-items:center}.search-option{display:flex;align-items:center;gap:0.5rem;cursor:pointer;transition:var(--transition)}.search-option input[type="radio"]{width:18px;height:18px;accent-color:var(--jinan-teal)}.search-option label{font-weight:500;color:#495057;cursor:pointer;margin:0}.search-btn{background:var(--jinan-teal);color:white;border:none;padding:1rem 2rem;border-radius:var(--border-radius);font-weight:600;cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:0.5rem;min-width:150px;justify-content:center}.search-btn:hover{background:var(--jinan-teal-hover);transform:translateY(-2px);box-shadow:var(--shadow-hover)}.alphabet-section{background:white;border-radius:var(--border-radius-lg);padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow);border:1px solid #e9ecef}.alphabet-header{font-size:1.5rem;font-weight:600;color:var(--jinan-teal);margin-bottom:0;display:flex;align-items:center;gap:0.5rem;cursor:pointer;padding:0.5rem;border-radius:var(--border-radius);transition:var(--transition)}.alphabet-header:hover{background:var(--jinan-teal-light)}.alphabet-header .collapse-icon{margin-inline-start:auto;transition:transform 0.3s ease;font-size:1.2rem;transform:rotate(-90deg)}.alphabet-header:not(.collapsed) .collapse-icon{transform:rotate(0deg)}.alphabet-content{transition:all 0.3s ease;overflow:hidden;max-height:0;padding:0;margin:0;opacity:0}.alphabet-content:not(.collapsed){max-height:1000px;padding-top:1.5rem;margin-top:1.5rem;opacity:1}.alphabet-divider{border:none;height:2px;background:linear-gradient( 90deg,var(--jinan-teal) 0%,var(--jinan-gold) 100% );margin:1.5rem 0;border-radius:2px}.alphabet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(45px,1fr));gap:0.5rem;margin-bottom:1rem}.alphabet-letter{display:flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:var(--border-radius);font-weight:600;font-size:1.1rem;transition:var(--transition);cursor:pointer;text-decoration:none;border:2px solid transparent}.alphabet-letter.active{background:var(--jinan-teal);color:white;border-color:var(--jinan-teal)}.alphabet-letter.inactive{background:#f8f9fa;color:#6c757d;cursor:not-allowed}.alphabet-letter.active:hover{background:var(--jinan-teal-hover);transform:translateY(-2px);box-shadow:var(--shadow)}.alphabet-letter.arabic{font-family:"Arial",sans-serif;direction:rtl}.categories-section{background:white;border-radius:var(--border-radius-lg);padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow);border:1px solid #e9ecef}.categories-header{font-size:1.5rem;font-weight:600;color:var(--jinan-teal);margin-bottom:0;display:flex;align-items:center;gap:0.5rem;cursor:pointer;padding:0.5rem;border-radius:var(--border-radius);transition:var(--transition)}.categories-header:hover{background:var(--jinan-teal-light)}.categories-header.collapsed{margin-bottom:0}.categories-content{max-height:900px;overflow-y:auto;overflow-x:hidden;transition:max-height 0.4s ease;border:1px solid var(--jinan-gold);border-top:none;border-radius:0 0 8px 8px;background:#fff;padding:15px;scrollbar-width:thin;scrollbar-color:var(--jinan-gold) #f0f0f0}.categories-content::-webkit-scrollbar{width:6px}.categories-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.categories-content::-webkit-scrollbar-thumb{background:var(--jinan-teal);border-radius:3px}.categories-content::-webkit-scrollbar-thumb:hover{background:var(--jinan-teal-hover)}.categories-content.collapsed{max-height:0;padding:0;margin:0;opacity:0}.category-group{margin-bottom:1.5rem;border:1px solid #e9ecef;border-radius:var(--border-radius);overflow:hidden;transition:var(--transition)}.category-group:hover{border-color:var(--jinan-teal);box-shadow:0 2px 8px rgba(var(--jinan-teal-rgb), 0.1)}.category-title{font-size:1.1rem;font-weight:600;color:var(--jinan-teal);margin:0;padding:1rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;align-items:center;gap:0.5rem}.category-title.collapsible-parent{cursor:pointer;transition:var(--transition);user-select:none}.category-title.collapsible-parent:hover{background:var(--jinan-teal-light);color:var(--jinan-teal-hover)}.category-title.collapsible-parent.collapsed{border-bottom:none}.category-title.collapsible-parent .category-icon{transition:transform 0.3s ease;color:var(--jinan-gold-dark)}.category-title.collapsible-parent .category-chevron{margin-inline-start:auto;transition:transform 0.3s ease;transform:rotate(-90deg)}.category-title.collapsible-parent:not(.collapsed) .category-chevron{transform:rotate(0deg)}.category-title.collapsible-parent.collapsed .category-icon{transform:rotate(-15deg)}.category-title.direct-category{border-bottom:none}.category-title.direct-category a{text-decoration:none;color:inherit;display:flex;align-items:center;gap:0.5rem;width:100%;transition:var(--transition)}.category-title.direct-category a:hover{color:var(--jinan-teal-hover);transform:translateX(5px)}.category-count{background:var(--jinan-gold);color:white;font-size:0.8rem;font-weight:600;padding:0.2rem 0.6rem;border-radius:12px;margin-inline-start:auto;min-width:24px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,0.2)}.category-items{list-style:none;padding:0;margin:0;max-height:0;overflow:hidden;transition:all 0.3s ease;background:white}.category-items:not(.collapsed){max-height:500px}.category-item{border-bottom:1px solid #f8f9fa}.category-item:last-child{border-bottom:none}.category-link{display:flex;align-items:center;gap:0.75rem;padding:0.75rem 1rem;color:#495057;text-decoration:none;transition:var(--transition);font-weight:500}.category-link:hover{background:var(--jinan-teal-light);color:var(--jinan-teal);text-decoration:none;transform:translateX(5px)}.category-link.parent-category{background:#f8f9fa;font-weight:600;color:var(--jinan-teal);border-bottom:1px solid #e9ecef}.category-link.parent-category:hover{background:var(--jinan-teal-light)}.category-link i{color:var(--jinan-gold-dark);font-size:1rem;width:16px;text-align:center;transition:var(--transition)}.category-link:hover i{color:var(--jinan-gold-hover);transform:scale(1.1)}.empty-state{text-align:center;padding:3rem 1rem;color:#6c757d}.empty-state i{font-size:3rem;color:#dee2e6;margin-bottom:1rem}.empty-state h4{font-size:1.2rem;font-weight:600;margin-bottom:0.5rem;color:#495057}.empty-state p{margin:0;font-size:0.9rem}.books-section{background:white;border-radius:var(--border-radius-lg);padding:2rem;box-shadow:var(--shadow);border:1px solid #e9ecef;min-height:400px}.books-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.books-title{font-size:1.5rem;font-weight:600;color:var(--jinan-teal);margin:0}.books-count{background:var(--jinan-gold-light);color:var(--jinan-teal);padding:0.5rem 1rem;border-radius:var(--border-radius);font-weight:600;font-size:0.9rem}.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.book-card{background:white;border:1px solid #e9ecef;border-radius:var(--border-radius-lg);overflow:hidden;transition:var(--transition);display:flex;flex-direction:column;position:relative}.book-card:hover{transform:translateY(-6px);box-shadow:0 12px 24px rgba(var(--jinan-teal-rgb), 0.15);border-color:var(--jinan-teal)}.book-cover{position:relative;width:100%;height:200px;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);overflow:hidden}.book-cover-img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease}.book-card:hover .book-cover-img{transform:scale(1.05)}.book-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--jinan-teal-light) 0%,#e9ecef 100%)}.book-cover-placeholder i{font-size:4rem;color:var(--jinan-teal);opacity:0.3}.book-category{position:absolute;top:12px;right:12px;background:linear-gradient(135deg,var(--jinan-gold) 0%,#b8941f 100%);color:white;padding:6px 14px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;z-index:2;box-shadow:0 2px 8px rgba(0,0,0,0.2)}.book-content{padding:1.25rem;display:flex;flex-direction:column;flex-grow:1}.book-title{font-size:1.1rem;font-weight:700;color:var(--jinan-teal);margin:0 0 0.5rem 0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-author{color:#495057;font-size:0.9rem;margin:0 0 0.75rem 0;display:flex;align-items:center;gap:0.4rem}.book-author i{color:var(--jinan-gold-dark);font-size:0.85rem}.book-meta{display:flex;flex-wrap:wrap;gap:0.75rem;margin-bottom:1rem;font-size:0.8rem;flex-grow:1}.book-meta span{color:#6c757d;display:flex;align-items:center;gap:0.3rem;background:#f8f9fa;padding:0.3rem 0.6rem;border-radius:4px}.book-meta span i{color:var(--jinan-teal);font-size:0.75rem}.book-actions{display:flex;gap:0.5rem;margin-top:auto;padding-top:0.75rem;border-top:1px solid #f0f0f0}.book-btn{padding:0.65rem 1rem;border:none;border-radius:var(--border-radius);font-size:0.85rem;font-weight:600;cursor:pointer;transition:var(--transition);text-decoration:none;display:inline-flex;align-items:center;gap:0.4rem;flex:1;justify-content:center}.book-btn-primary{background:var(--jinan-teal);color:white}.book-btn-primary:hover{background:var(--jinan-teal-hover);color:white;text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--jinan-teal-rgb), 0.3)}.book-btn-secondary{background:transparent;color:var(--jinan-gold-dark);border:2px solid var(--jinan-gold)}.book-btn-secondary:hover{background:var(--jinan-gold);color:white;text-decoration:none;transform:translateY(-2px)}.loading-state,.empty-state{text-align:center;padding:3rem 2rem;color:#6c757d}.loading-state i,.empty-state i{font-size:3rem;color:var(--jinan-teal-light);margin-bottom:1rem}.loading-state h3,.empty-state h3{font-size:1.5rem;margin-bottom:0.5rem;color:var(--jinan-teal)}.loading-state p,.empty-state p{font-size:1rem;margin:0}[dir="rtl"] .search-input{padding:1rem 3rem 1rem 1rem}[dir="rtl"] .search-icon{left:auto;right:1rem}[dir="rtl"] .category-link:hover,@media (max-width:768px){.library-container{padding:1rem 0}.library-header{padding:2rem 1rem;margin-bottom:1rem}.library-title{font-size:2rem}.library-search-section,.alphabet-section,.categories-section,.books-section{padding:1.5rem}.search-options{flex-direction:column;align-items:flex-start;gap:1rem}.alphabet-grid{grid-template-columns:repeat(auto-fit,minmax(40px,1fr))}.alphabet-letter{width:40px;height:40px;font-size:1rem}.books-grid{grid-template-columns:1fr}.books-header{flex-direction:column;align-items:flex-start}}@media (max-width:480px){.library-title{font-size:1.75rem;flex-direction:column;text-align:center}.alphabet-grid{grid-template-columns:repeat(6,1fr)}.book-actions{flex-direction:column}.book-btn{justify-content:center}}.book-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,0.8);z-index:9999;display:flex;align-items:center;justify-content:center;padding:2rem;opacity:0;visibility:hidden;transition:all 0.3s ease;overflow-y:auto}.book-modal.active{opacity:1;visibility:visible}.book-modal-content{background:white;border-radius:var(--border-radius-lg);max-width:600px;width:100%;max-height:85vh;overflow-y:auto;position:relative;animation:modalSlideIn 0.3s ease;margin:auto;box-shadow:0 10px 30px rgba(0,0,0,0.3)}@keyframes modalSlideIn{from{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.book-modal-header{background:linear-gradient( 135deg,var(--jinan-teal) 0%,var(--jinan-gold) 100% );color:white;padding:2rem;position:relative;border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0}.book-modal-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,0.2);border:none;color:white;font-size:1.5rem;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.book-modal-close:hover{background:rgba(255,255,255,0.3);transform:scale(1.1)}.book-modal-title{margin:0 3rem 0.5rem 0;font-size:1.5rem;font-weight:600;line-height:1.3}.book-modal-author{margin:0;opacity:0.9;font-size:1rem}.book-modal-body{padding:2rem}.book-modal-section{margin-bottom:2rem}.book-modal-section:last-child{margin-bottom:0}.book-modal-section-title{font-size:1.2rem;font-weight:600;color:var(--jinan-teal);margin-bottom:1rem;display:flex;align-items:center;gap:0.5rem}.book-modal-meta{display:flex;flex-direction:column;gap:0.75rem}.book-modal-meta-item{display:flex;align-items:center;gap:0.75rem;padding:0.75rem;background:#f8f9fa;border-radius:var(--border-radius);border-inline-start:4px solid var(--jinan-teal)}.book-modal-meta-item i{color:var(--jinan-teal);width:16px;flex-shrink:0}.book-modal-meta-label{font-weight:600;color:var(--jinan-teal);min-width:100px;flex-shrink:0}.book-modal-meta-value{color:#495057;flex-grow:1}.book-abstract{background:#f8f9fa;padding:1.5rem;border-radius:var(--border-radius);border-inline-start:4px solid var(--jinan-gold);color:#495057;line-height:1.6;font-size:0.95rem}.book-abstract p{margin:0.75rem 0;line-height:1.6}.book-abstract p:first-child{margin-top:0}.book-abstract p:last-child{margin-bottom:0}.book-abstract img{max-width:100%;height:auto;margin:15px 0;border-radius:5px;box-shadow:0 2px 8px rgba(0,0,0,0.1);display:block}.book-abstract strong{color:var(--jinan-teal);font-weight:600}.book-abstract br{line-height:2}.book-abstract [dir="rtl"]{direction:rtl}.book-abstract p[dir="rtl"]{margin:15px 0;line-height:1.6}.book-modal-actions{padding:1.5rem 2rem 2rem;display:flex;gap:1rem;justify-content:flex-end;border-top:1px solid #e9ecef}.book-modal-btn{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1.5rem;border-radius:var(--border-radius);font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:var(--transition);font-size:0.95rem}.book-modal-btn-primary{background:var(--jinan-teal);color:white}.book-modal-btn-primary:hover{background:var(--jinan-teal-hover);transform:translateY(-2px);box-shadow:var(--shadow);color:white;text-decoration:none}.book-modal-btn-secondary{background:#6c757d;color:white}.book-modal-btn-secondary:hover{background:#545b62;transform:translateY(-2px);box-shadow:var(--shadow)}.loading-state{display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem;color:var(--jinan-teal)}.loading-state i{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@media (max-width:768px){.book-modal{padding:1rem}.book-modal-content{max-height:95vh}.book-modal-header{padding:1.5rem}.book-modal-title{font-size:1.3rem;margin-inline-end:2rem}.book-modal-body{padding:1.5rem}.book-modal-actions{padding:1rem 1.5rem 1.5rem;flex-direction:column}.book-modal-btn{justify-content:center}.book-modal-meta-item{flex-direction:column;align-items:flex-start;gap:0.5rem}.book-modal-meta-label{min-width:auto}}