.library-container{max-width:1400px;font-family:var(--font-main);margin:0 auto;padding:2rem 4rem}.library-layout{grid-template-columns:200px 1fr;align-items:flex-start;gap:2rem 4rem;display:grid;position:relative}.library-sidebar{z-index:10;grid-area:1/1/span 3;width:200px;height:fit-content;position:sticky;top:8rem}.sidebar-section{margin-bottom:3rem}.sidebar-title{letter-spacing:.1em;color:#888;text-transform:uppercase;margin-bottom:1.5rem;font-size:.75rem;font-weight:600}.sidebar-nav{scrollbar-width:thin;scrollbar-color:#0000001a transparent;flex-direction:column;gap:1rem;max-height:60vh;padding-right:1.5rem;display:flex;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:2px}.sidebar-nav::-webkit-scrollbar-track{background:0 0}.sidebar-nav::-webkit-scrollbar-thumb{background:#0000001a}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#0003}.sidebar-link{color:#666;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;opacity:.8;font-size:.8rem;line-height:1.4;transition:all .3s}.sidebar-link:hover,.sidebar-link.active{color:var(--text);opacity:1;font-weight:600}.library-main{grid-area:3/2;min-width:0}.library-header{text-align:center;z-index:5;pointer-events:none;grid-area:1/1/auto/-1;margin-bottom:2rem}.library-header *,.library-header a{pointer-events:auto}.library-title{margin-bottom:1rem;font-size:4rem;font-style:italic;font-weight:400}.library-title span{font-style:normal;font-weight:700}.library-subtitle{color:#666;max-width:600px;margin:0 auto;font-size:1.1rem;line-height:1.6}.library-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:2rem;margin-bottom:3rem;padding:1rem 0;display:flex}.search-wrapper{color:#888;flex:1;align-items:center;gap:1rem;display:flex}.search-input{width:100%;color:var(--text);background:0 0;border:none;outline:none;font-family:inherit;font-size:1rem}.search-input::placeholder{color:#aaa}.mobile-filter-btn{cursor:pointer;color:#555;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:.5rem;transition:color .2s;display:none}.mobile-filter-btn:hover{color:var(--text)}.toolbar-actions{text-transform:uppercase;letter-spacing:.1em;color:#555;align-items:center;gap:2rem;font-size:.8rem;display:flex}.toolbar-action{cursor:pointer;white-space:nowrap;align-items:center;gap:.5rem;transition:color .3s;display:flex}.sort-select-wrapper{position:relative}.sort-select{appearance:none;text-transform:uppercase;letter-spacing:.1em;color:#555;cursor:pointer;background:0 0;border:none;outline:none;margin:0;padding:0 1.5rem 0 .5rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:color .3s}.sort-label{color:#888;font-weight:400}.sort-select:hover{color:var(--text)}.select-chevron{pointer-events:none;color:#888;position:absolute;right:0}.books-grid{grid-template-columns:repeat(3,1fr);gap:3rem;display:grid}.scroll-reveal{opacity:0;will-change:opacity, transform;transition:opacity 1.2s cubic-bezier(.22,1,.36,1),transform 1.2s cubic-bezier(.22,1,.36,1);transform:translateY(40px)scale(.98)}.scroll-reveal.is-visible{opacity:1;transform:translateY(0)scale(1)}.book-card{flex-direction:column;height:100%;display:flex}.book-cover-wrapper{aspect-ratio:2/3;background:#dcd9d4;margin-bottom:1.5rem;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000001a}.book-cover{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.4,0,.2,1)}.book-card-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.badge{text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;border-radius:2px;padding:.25rem .6rem;font-size:.65rem;font-weight:600}.badge-available{color:#333;background:#fff;border:1px solid #0000000d}.badge-borrowed{color:#888;background:#0000000d;border:1px solid #ddd}.badge-reference{color:#721c24;background:#f8d7da}.book-author{text-transform:uppercase;letter-spacing:.1em;color:#888;font-size:.7rem}.book-title{color:#1a1a1a;margin-bottom:1rem;font-size:1.5rem;font-weight:500}.book-description{color:#555;-webkit-line-clamp:3;line-clamp:3;text-overflow:ellipsis;-webkit-box-orient:vertical;margin-bottom:.5rem;font-size:.9rem;line-height:1.5;transition:all .3s;display:-webkit-box;overflow:hidden}.book-description.is-expanded{-webkit-line-clamp:initial;line-clamp:initial;margin-bottom:.5rem}.read-more-btn{color:#888;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;background:0 0;border:none;margin-bottom:1.5rem;padding:0;font-size:.75rem;font-weight:600;transition:color .2s;display:inline-block}.read-more-btn:hover{color:var(--text);text-decoration:underline}.book-description-container{flex-direction:column;align-items:flex-start;display:flex}.book-meta{text-transform:uppercase;letter-spacing:.12em;color:#999;border-top:1px solid #e0e0e0;justify-content:space-between;margin-top:auto;padding-top:1rem;font-size:.65rem;display:flex}.meta-label{color:#bbb}.meta-value{color:#666;font-weight:500}.book-card-meta{text-transform:uppercase;letter-spacing:.1em;color:#888;margin-bottom:1.5rem;font-size:.7rem}.borrow-button{text-align:center;background:var(--text);color:#fff;text-transform:uppercase;letter-spacing:.1em;margin-top:auto;padding:.8rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:background .3s;display:block}.borrow-button:hover{cursor:pointer;background:#333}.recent-borrowers{flex-direction:column;gap:1.5rem;display:flex}.borrower-item{border-bottom:1px solid #eee;padding-bottom:.75rem}.borrower-name{margin-bottom:.25rem;font-size:.9rem;font-weight:600}.borrower-book{color:#666;margin-bottom:.5rem;font-size:.75rem;font-style:italic}.borrower-meta{color:#999;text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.empty-text{color:#aaa;font-size:.8rem;font-style:italic}.loading-trigger{text-align:center;grid-column:1/-1;padding:3rem 0}.loading-spinner{color:#888;letter-spacing:.1em;text-transform:uppercase;font-size:.9rem}.end-of-list{text-align:center;color:#aaa;border-top:1px solid var(--border);grid-column:1/-1;margin-top:2rem;padding:4rem 0;font-size:.9rem;font-style:italic}@media (max-width:1200px){.library-layout{flex-direction:column;gap:2rem;display:flex}.books-grid{grid-template-columns:repeat(3,1fr);gap:2rem}.library-sidebar{display:none}.library-header,.library-main{width:100%}.toolbar-actions{display:none}.mobile-filter-btn{display:flex}}@media (max-width:1024px){.books-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.library-container{padding:2rem 1.5rem}.library-layout{flex-direction:column;gap:2rem;display:flex}.library-title{font-size:2.5rem}.books-grid{gap:2rem}}@media (max-width:576px){.books-grid{grid-template-columns:1fr;gap:2.5rem}}
.bottom-sheet-overlay{z-index:9998;opacity:0;visibility:hidden;background:#00000080;width:100vw;height:100vh;transition:opacity .3s,visibility .3s;position:fixed;top:0;left:0}.bottom-sheet-overlay.open{opacity:1;visibility:visible}.bottom-sheet{width:100%;max-height:90dvh;padding:1.5rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,16px));font-family:var(--font-main);color:#1a1a1a;background-color:#efede7;border-top-left-radius:16px;border-top-right-radius:16px;flex-direction:column;transition:transform .4s cubic-bezier(.25,1,.5,1);display:flex;position:fixed;bottom:0;left:0;transform:translateY(100%);box-shadow:0 -10px 40px #0003}.bottom-sheet.open{transform:translateY(0);z-index:99999999!important}.bottom-sheet-header{justify-content:center;align-items:center;margin-bottom:1.5rem;display:flex;position:relative}.bottom-sheet-header h2{margin:0;font-size:1.5rem;font-weight:500}.close-btn{cursor:pointer;color:#666;background:0 0;border:none;justify-content:center;align-items:center;padding:.5rem;transition:color .2s;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.close-btn:hover{color:#000}.bottom-sheet-content{flex:1;grid-template-columns:1fr 1fr;gap:1.5rem 2rem;padding-bottom:2rem;display:grid;overflow-y:auto}@media (max-width:600px){.bottom-sheet-content{grid-template-columns:1fr;gap:1.5rem}}.filter-group{flex-direction:column;display:flex}.filter-group h3{color:#333;margin-bottom:.75rem;font-size:.9rem;font-weight:600}.filter-options{flex-direction:column;gap:.5rem;display:flex}.filter-option{cursor:pointer;color:#444;align-items:center;gap:.75rem;font-size:.95rem;display:flex}.filter-option input{accent-color:#000;cursor:pointer;width:16px;height:16px}.filter-option span{transition:color .2s}.filter-option input:checked+span{color:#000;font-weight:500}.bottom-sheet-footer{border-top:1px solid #0000001a;gap:1rem;margin-top:auto;padding-top:1rem;display:flex}.reset-btn{color:#1a1a1a;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;background:0 0;border:1px solid #1a1a1a;border-radius:4px;padding:.8rem 1.5rem;font-size:.9rem;font-weight:600;transition:background .3s,color .3s}.reset-btn:hover{background:#0000000d}.apply-btn{color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;background:#1a1a1a;border:1px solid #1a1a1a;border-radius:4px;flex:1;padding:.8rem 1.5rem;font-size:.9rem;font-weight:600;transition:background .3s}.apply-btn:hover{background:#000}
.borrow-modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9998;opacity:0;visibility:hidden;background:#0006;width:100vw;height:100vh;transition:opacity .3s,visibility .3s;position:fixed;top:0;left:0}.borrow-modal-overlay.open{opacity:1;visibility:visible}.borrow-modal-container{z-index:9999;visibility:hidden;pointer-events:none;width:100%;max-height:90dvh;padding:1.5rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,16px));color:#1a1a1a;background-color:#f9f7f2;border-top-left-radius:20px;border-top-right-radius:20px;flex-direction:column;font-family:inherit;transition:transform .4s cubic-bezier(.25,1,.5,1),opacity .4s,visibility .4s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -10px 40px #00000026}.borrow-modal-container.open{visibility:visible;pointer-events:auto;transform:translateY(0);z-index:2147483647!important}@media (min-width:768px){.borrow-modal-container{opacity:0;border-radius:16px;width:450px;padding:2.5rem 2rem;transition:transform .4s cubic-bezier(.25,1,.5,1),opacity .4s,visibility .4s;inset:50% auto auto 50%;transform:translate(-50%,calc(30px - 50%))}.borrow-modal-container.open{opacity:1;flex-direction:column;max-height:90vh;display:flex;transform:translate(-50%,-50%)}}.borrow-modal-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding:.5rem 0;display:flex;position:relative}@media (min-width:768px){.borrow-modal-header{margin-bottom:2rem}}.borrow-modal-header h2{color:#1a1a1a;text-align:left;font-size:1.5rem;font-weight:700;font-family:var(--font-main,serif);flex:1;margin:0}.borrow-close-btn{cursor:pointer;color:#999;background:0 0;border:none;justify-content:center;align-items:center;padding:.5rem;transition:color .2s;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.borrow-close-btn:hover{color:#333}.borrow-modal-content{flex:1;margin-right:-.5rem;padding-right:.5rem;overflow-y:auto}@media (min-width:768px){.borrow-modal-content{flex:1;margin-right:-.5rem;padding-right:.5rem;overflow-y:auto}}.borrow-modal-content::-webkit-scrollbar{width:6px}.borrow-modal-content::-webkit-scrollbar-track{background:0 0}.borrow-modal-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:10px}.borrow-modal-content::-webkit-scrollbar-thumb:hover{background:#b0b0b0}.borrow-modal-content{scrollbar-width:thin;scrollbar-color:#ccc transparent}.book-info-card{background:#f5f3ed;border-radius:12px;align-items:center;gap:1.5rem;margin-bottom:1.5rem;padding:1rem;display:flex}.book-info-image{border-radius:4px;width:60px;height:80px;overflow:hidden;box-shadow:0 4px 10px #0000001a}.book-info-image img,.placeholder-image{object-fit:cover;width:100%;height:100%}.placeholder-image{background:#ddd}.book-info-details h3{color:#1a1a1a;margin:0 0 .15rem;font-size:1.25rem;font-weight:700}.book-info-author{color:#555;margin:0 0 .4rem;font-size:.85rem;font-weight:500}.book-info-author:empty{display:none}.book-id-code{color:#888;letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:600}.borrow-form{flex-direction:column;gap:1.25rem;display:flex}.input-group{flex-direction:column;gap:.5rem;display:flex}.input-group label{color:#999;letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:700}.input-wrapper input{color:#333;background:#f5f3ed;border:1px solid #0000;border-radius:8px;outline:none;width:100%;padding:.85rem 1rem;font-family:inherit;font-size:.95rem;transition:border-color .2s,background .2s}.input-wrapper input:focus{background:#fff;border-color:#ddd}.borrow-modal-footer{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}@media (min-width:768px){.borrow-modal-footer{margin-top:2rem}}.pinjam-submit-btn{color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;background:#1a1a1a;border:1px solid #1a1a1a;border-radius:4px;justify-content:center;align-items:center;width:100%;padding:.8rem 1.5rem;font-size:.9rem;font-weight:600;transition:background .3s,transform .2s,opacity .3s;display:flex}.pinjam-submit-btn:hover:not(:disabled){background:#333}.pinjam-submit-btn:active:not(:disabled){transform:scale(.98)}.pinjam-submit-btn:disabled{cursor:not-allowed;opacity:.7;background:#ccc;border-color:#ccc}.pertama-kali-btn{color:#1a1a1a;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;text-align:center;background:0 0;border:1px solid #1a1a1a;border-radius:4px;justify-content:center;align-items:center;width:100%;padding:.8rem 1.5rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .3s,color .3s;display:flex}.pertama-kali-btn:hover{color:#fff;background:#1a1a1a}
