*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;color:#333;background-color:#f5f5f5}header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center;padding:2rem 1rem;box-shadow:0 2px 10px rgba(0,0,0,.1)}header h1{font-size:2.5rem;margin-bottom:.5rem}header p{font-size:1.1rem;opacity:.9}main{max-width:1200px;margin:0 auto;padding:2rem 1rem}.filters{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap;align-items:center}.search-input{padding:.75rem 1rem .75rem 2.5rem;border:2px solid #e1e5e9;border-radius:25px;background:#fff;font-size:1rem;width:300px;transition:all .3s ease;position:relative;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23999' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:.75rem;background-size:16px;box-shadow:0 2px 8px rgba(0,0,0,.05)}.search-input::placeholder{color:#999;font-style:italic}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.1),0 4px 12px rgba(0,0,0,.1);transform:translateY(-1px)}.search-input:hover{border-color:#b3bfef;box-shadow:0 4px 12px rgba(0,0,0,.08)}.filters select{border:2px solid #e1e5e9;border-radius:12px;background:#fff;font-size:1rem;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.05);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23666' viewBox='0 0 16 16'%3E%3Cpath d='M8 10.5a.5.5 0 0 1-.354-.146l-3-3a.5.5 0 0 1 .708-.708L8 9.293l2.646-2.647a.5.5 0 0 1 .708.708l-3 3A.5.5 0 0 1 8 10.5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:12px;padding:.75rem 2.5rem .75rem 1rem;color:#333;font-weight:500;min-width:150px}.filters select:hover{border-color:#b3bfef;box-shadow:0 4px 12px rgba(0,0,0,.08);transform:translateY(-1px)}.filters select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.1),0 4px 12px rgba(0,0,0,.1);transform:translateY(-1px)}.bookshelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:2rem;gap:2rem}.book-card-link{text-decoration:none;color:inherit;display:block;cursor:pointer}.book-card{background:#fff;border-radius:10px;box-shadow:0 4px 15px rgba(0,0,0,.1);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;height:100%}.book-card-link:hover .book-card{transform:translateY(-5px);box-shadow:0 6px 25px rgba(0,0,0,.15)}.book-card-link:hover{text-decoration:none}.book-cover{height:200px;overflow:hidden;background:#f8f8f8}.book-cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.book-card-link:hover .book-cover img{transform:scale(1.05)}.book-info{padding:1.5rem}.book-title{font-size:1.2rem;font-weight:600;margin-bottom:.5rem;color:#333}.book-author{color:#666;margin-bottom:.5rem;font-style:italic}.book-genre{color:#888}.book-genre,.book-rating{font-size:.9rem;margin-bottom:.75rem}.book-rating{font-weight:500}.book-description{color:#555;font-size:.85rem;line-height:1.4;margin-bottom:1rem;background:#f9f9f9;padding:.75rem;border-radius:6px;border-left:3px solid #667eea;white-space:pre-line}.book-status{padding:.5rem 1rem;border-radius:20px;font-weight:600;text-align:center;margin-bottom:1rem;font-size:.9rem}.book-status.available{background:#d4edda;color:#155724}.book-status.reserved{background:#f8d7da;color:#721c24}.next-reservation{background:#fff3cd;color:#856404;padding:.5rem;border-radius:5px;font-size:.8rem;margin-bottom:1rem;text-align:center}.book-actions{display:flex;gap:.5rem}.btn{flex:1 1;padding:.7rem 1rem;border:none;border-radius:5px;cursor:pointer;font-weight:600;transition:all .3s ease;text-align:center;text-decoration:none;display:inline-block}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5a6fd8}.btn-info{background:#17a2b8;color:#fff}.btn-info:hover{background:#138496}.modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.modal-content{background-color:#fff;margin:5% auto;padding:2rem;border-radius:10px;width:90%;max-width:800px;max-height:80vh;overflow-y:auto;position:relative}.close{color:#aaa;float:right;font-size:28px;font-weight:700;position:absolute;right:1rem;top:1rem;cursor:pointer}.close:hover{color:#333}.book-detail-view{display:flex;gap:2rem;align-items:flex-start}.detail-cover{width:200px;height:300px;object-fit:cover;border-radius:10px;box-shadow:0 4px 15px rgba(0,0,0,.2)}.detail-info{flex:1 1}.detail-info h2{color:#333;margin-bottom:1rem}.detail-info p{margin-bottom:.7rem;line-height:1.6;white-space:pre-line}.reservation-status{margin:1.5rem 0;padding:1rem;border-radius:8px;background:#f8f9fa}.status-available{color:#155724;font-weight:600}.status-reserved{color:#721c24;font-weight:600}.upcoming-reservations{margin-top:1.5rem;padding:1rem;border-radius:8px;background:#e9ecef}.upcoming-reservations h3{margin-bottom:.5rem;color:#495057}.calendar-header{text-align:center;margin-bottom:1rem}.calendar-navigation{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.month-year-display{display:flex;flex-direction:column;align-items:center;gap:.5rem}.month-year-display h4{margin:0}.nav-button{background:#667eea;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:1.2rem;font-weight:700;transition:background .2s}.nav-button:hover{background:#5a67d8}.nav-button:active{background:#4c51bf}.today-button{background:#38a169;color:#fff;border:none;padding:.3rem .8rem;border-radius:4px;cursor:pointer;font-size:.8rem;transition:background .2s}.today-button:hover{background:#2f855a}.today-button:active{background:#276749}.calendar-instructions{font-size:.9rem;color:#666;margin-top:.5rem;font-style:italic}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px;background:#ddd;border-radius:8px;overflow:hidden;margin-bottom:1rem}.day-header{background:#667eea;color:#fff;padding:.8rem;text-align:center;font-weight:600;font-size:.9rem}.calendar-day{background:#fff;padding:1rem;text-align:center;cursor:pointer;transition:background-color .2s ease;position:relative;min-height:50px;display:flex;align-items:center;justify-content:center}.calendar-day.empty{background:#f8f9fa;cursor:default}.calendar-day.available:hover{background:#e7f3ff}.calendar-day.reserved{background:#f8d7da;color:#721c24;cursor:not-allowed}.calendar-day.past{background:#e9ecef;color:#6c757d;cursor:not-allowed}.calendar-day.selected{background:#667eea;color:#fff}.calendar-day.in-range{background:#e7f3ff;color:#333}.calendar-day.over-limit{background:#f8f9fa;color:#adb5bd;cursor:not-allowed;opacity:.5}.calendar-day.over-limit:hover{background:#f8f9fa;transform:none}.reservation-indicator{position:absolute;bottom:2px;right:2px;width:6px;height:6px;background:#dc3545;border-radius:50%}.calendar-legend{display:flex;justify-content:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.legend-color{width:16px;height:16px;border-radius:3px}.legend-color.available{background:#fff;border:1px solid #ddd}.legend-color.reserved{background:#f8d7da}.legend-color.past{background:#e9ecef}.legend-color.over-limit{background:#f8f9fa;border:1px solid #adb5bd;opacity:.5}.reservation-form{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-top:1rem}.reservation-form h4{margin-bottom:1rem;color:#333}.reservation-form label{display:block;margin-bottom:.5rem;font-weight:600}.reservation-form input{width:100%;padding:.7rem;border:1px solid #ddd;border-radius:5px;margin-bottom:1rem;font-size:1rem}.reservation-form button{width:100%;padding:1rem;background:#28a745;color:#fff;border:none;border-radius:5px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s ease}.reservation-form button:hover{background:#218838}.book-detail-page{max-width:1200px;margin:0 auto;padding:2rem 1rem;min-height:100vh}.book-detail-header{margin-bottom:2rem}.back-btn{margin-bottom:1rem}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}.book-detail-header h1{color:#333;font-size:2.5rem;margin:0}.book-detail-content{background:#fff;border-radius:10px;box-shadow:0 4px 15px rgba(0,0,0,.1);overflow:hidden}.book-detail-info{display:flex;gap:2rem;padding:2rem;align-items:flex-start}.book-cover-large{flex-shrink:0}.book-cover-large img{width:200px;height:300px;object-fit:cover;border-radius:10px;box-shadow:0 4px 15px rgba(0,0,0,.2)}.book-metadata{flex:1 1}.book-metadata h2{font-size:2rem;color:#333;margin-bottom:.5rem}.book-metadata .author{font-size:1.2rem;color:#666;font-style:italic;margin-bottom:.5rem}.book-metadata .genre{color:#888;margin-bottom:.5rem}.book-metadata .isbn,.book-metadata .rating{color:#666;font-size:.9rem;margin-bottom:.75rem}.book-metadata .book-link{margin-bottom:1.25rem}.book-metadata .book-link a{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 0;color:#667eea;text-decoration:none;font-weight:500;font-size:.9rem;transition:all .3s ease;border-bottom:1px solid transparent}.book-metadata .book-link a:hover{color:#5a67d8;border-bottom-color:#5a67d8;text-decoration:none}.book-metadata .status{display:inline-block;padding:.5rem 1rem;border-radius:20px;font-weight:600;margin-bottom:1rem}.book-metadata .status.available{background:#d4edda;color:#155724}.book-metadata .status.reserved{background:#f8d7da;color:#721c24}.book-metadata .description{line-height:1.6;color:#555;white-space:pre-line}.rental-history-section{padding:2rem;border-top:1px solid #e9ecef}.rental-history-section h3{font-size:1.5rem;color:#333;margin-bottom:1rem}.no-history{color:#666;font-style:italic;text-align:center;padding:2rem}.rental-history-table{overflow-x:auto}.rental-history-table table{width:100%;border-collapse:collapse;background:#fff}.rental-history-table td,.rental-history-table th{padding:1rem;text-align:left;border-bottom:1px solid #e9ecef}.rental-history-table th{background:#f8f9fa;font-weight:600;color:#333}.rental-history-table tr:hover{background:#f8f9fa}.book-not-found{text-align:center;padding:4rem 2rem}.book-not-found h1{color:#666;margin-bottom:2rem}.loading{text-align:center;padding:4rem 2rem;font-size:1.2rem;color:#666}@media (max-width:768px){.bookshelf-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.book-detail-view{flex-direction:column;text-align:center}.detail-cover{align-self:center}.modal-content{margin:10% auto;padding:1rem;width:95%}.calendar-grid{font-size:.9rem}.calendar-day{padding:.5rem;min-height:40px}header h1{font-size:2rem}.filters{justify-content:center}.search-input{width:100%;max-width:300px;margin-bottom:.5rem}.filters select{min-width:120px;flex:1 1;max-width:200px}.book-detail-info{flex-direction:column;text-align:center}.book-cover-large img{width:150px;height:225px}.book-detail-header h1{font-size:2rem}.rental-history-table{font-size:.9rem}.rental-history-table td,.rental-history-table th{padding:.5rem}}