.catalog-stats{display:flex;gap:30px;margin-top:27px;font-size:12px;color:var(--muted)}.catalog-stats strong{font-family:'Lora',Georgia,serif;font-size:25px;font-weight:500;color:var(--ink);margin-right:5px}.catalog-filters{display:flex;align-items:end;gap:13px;background:#eceee4;padding:20px;border-radius:10px;margin:23px 0}.catalog-filters>div:first-child{flex:1}.catalog-filters>div{min-width:150px}.catalog-filters .form-label{font-size:11px}.form-select{font-size:13px;padding:12px 34px 12px 14px;background-color:#fffefa;border-color:#d8ded1;border-radius:7px;color:var(--ink)}.form-select:focus{border-color:#648354;box-shadow:0 0 0 3px #64835420}.filter-reset{font-size:11px;padding:12px 0}.result-count{font-size:12px;color:var(--muted);margin:20px 0}.result-count span{display:block;font-size:10px;margin-top:5px}.catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.physical-card{background:#fffefa;border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.physical-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px #173f3510}.cover-link{display:block;background:#e9ecdf;border-bottom:1px solid var(--line)}.physical-cover{width:100%;height:270px;object-fit:contain;padding:20px}.cover-placeholder{height:270px;background:#e6ebdf;color:#3b614b;padding:27px 22px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;text-align:center;position:relative;border-left:8px solid #d5deca}.cover-placeholder[hidden],.upload-preview img[hidden]{display:none}.physical-card:nth-child(3n+2) .cover-placeholder{background:#efe6d7;color:#7d6548;border-color:#e1d5bd}.physical-card:nth-child(3n+3) .cover-placeholder{background:#e8e7ed;color:#656078;border-color:#d6d4e2}.cover-placeholder svg{width:35px;height:35px;stroke-width:1.2;flex-shrink:0}.cover-placeholder span{font-family:'Lora',Georgia,serif;font-size:18px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.cover-placeholder small{font-size:7px;letter-spacing:1.4px;margin-top:auto}.physical-body{padding:21px;display:flex;flex-direction:column;flex:1}.book-type{font-size:9px;letter-spacing:1.1px;text-transform:uppercase;color:#6a7c5b}.physical-body h3{font-family:'Lora',Georgia,serif;font-size:18px;line-height:1.45;font-weight:500;margin:10px 0;overflow-wrap:anywhere}.book-author{font-size:11px;color:var(--muted);line-height:1.7;margin:0 0 18px;overflow-wrap:anywhere}.book-location{border-top:1px solid var(--line);padding-top:13px;margin: auto 0 18px;font-size:10px;line-height:1.7}.book-location>div{display:grid;grid-template-columns:38px 1fr;gap:8px;margin-top:5px}.book-location dt{font-weight:400;color:var(--muted)}.book-location dd{margin:0;overflow-wrap:anywhere}.catalog-pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin:32px 0 10px;font-size:12px}.catalog-empty{padding:65px 20px;text-align:center;color:var(--muted)}.catalog-empty svg{height:40px;width:40px}.catalog-empty h3{color:var(--ink);font-family:'Lora',Georgia,serif;margin:18px 0}.catalog-empty h1{font-size:35px}.detail-main{padding:30px 0}.book-detail{display:grid;grid-template-columns:330px minmax(0,1fr);gap:55px;margin:5px 0 25px}.detail-cover>img{width:100%;max-height:520px;object-fit:contain;background:#e9ecdf;border:1px solid var(--line);padding:20px;border-radius:10px}.detail-cover .cover-placeholder{height:440px;border-radius:10px;padding:40px}.detail-cover .cover-placeholder span{font-size:26px;-webkit-line-clamp:7}.book-detail h1{font-size:clamp(28px,3.2vw,42px);letter-spacing:-1px;line-height:1.3;margin:14px 0;overflow-wrap:anywhere}.detail-author{font-size:14px;color:var(--muted);margin-bottom:24px;overflow-wrap:anywhere}.detail-facts{font-size:13px}.detail-facts>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:15px;padding:13px 0;border-bottom:1px solid var(--line)}.detail-facts dt{font-weight:400;color:var(--muted)}.detail-facts dd{margin:0;overflow-wrap:anywhere}.visit-note{display:flex;align-items:start;gap:14px;background:#e9ecdf;border-radius:8px;padding:18px;margin:24px 0;font-size:12px;line-height:1.8}.visit-note p{margin:0}.book-notes h2{font-size:21px}.book-notes p{font-size:13px;line-height:1.8;margin:15px 0;overflow-wrap:anywhere}.catalog-admin{padding:30px 0}.catalog-admin h1{font-size:43px;margin:10px 0 0;letter-spacing:-1.5px}.admin-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.data-notice{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f4ecdc;border:1px solid #e4d9bf;padding:20px;border-radius:10px;font-size:12px;margin:25px 0}.data-notice p{margin:6px 0 0;font-size:11px;line-height:1.8}.data-notice a{font-weight:600;white-space:nowrap}.catalog-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.catalog-table{margin:0;font-size:12px;min-width:810px;--bs-table-bg:#fffefa;--bs-table-color:var(--ink);--bs-table-border-color:var(--line)}.catalog-table th{background:#e9ecdf;font-size:10px;font-weight:600;padding:16px}.catalog-table td{padding:18px 16px;vertical-align:middle}.catalog-table small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.catalog-table td:first-child{width:36%}.table-book{display:flex;align-items:center;gap:13px}.table-book strong{font-weight:500;overflow-wrap:anywhere}.table-book img,.table-cover{width:44px;height:62px;object-fit:contain;background:#e9ecdf;border-radius:4px;flex-shrink:0}.table-cover{display:flex;align-items:center;justify-content:center;color:#648354}.table-actions{display:flex;gap:14px}.table-actions a{font-weight:600}.delete-link{color:#9c463b}.catalog-edit{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:25px;margin-top:30px}.edit-fields,.edit-cover{background:#fffefa;border:1px solid var(--line);padding:28px;border-radius:12px}.edit-fields h2,.edit-cover h2{font-size:24px;margin-top:0}.edit-cover{align-self:start}.upload-preview{margin:23px 0}.upload-preview img{height:280px;width:100%;object-fit:contain;background:#e9ecdf;border-radius:6px}.upload-preview .cover-placeholder{border-radius:6px}.remove-cover{display:flex;align-items:center;gap:8px;font-size:12px;margin:18px 0}.remove-cover input{accent-color:var(--ink)}.edit-submit{grid-column:1/-1;display:flex;justify-content:end;gap:13px;padding-top:8px}.delete-panel{margin:30px 0;max-width:700px}.delete-panel h2{line-height:1.5}.delete-panel p{margin:20px 0}.inner-page .btn-danger{background:#9c463b;border-color:#9c463b}.inner-page .btn-danger:hover{background:#81392f;border-color:#81392f}.admin-catalog-link{margin:0 auto 25px;max-width:700px;display:flex;justify-content:space-between;align-items:center;background:#e9ecdf;border-radius:9px;padding:18px;font-size:12px;gap:15px}
@media(max-width:1050px){.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-filters{flex-wrap:wrap}.book-detail{grid-template-columns:270px minmax(0,1fr);gap:30px}}
@media(max-width:760px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.catalog-edit{grid-template-columns:1fr}.edit-cover{grid-row:1}.upload-preview{max-width:280px}.catalog-filters>div:first-child{flex-basis:100%}.book-detail{grid-template-columns:1fr;gap:28px}.detail-cover{width:100%;max-width:300px;margin:auto}.data-notice{align-items:start;flex-direction:column}.catalog-admin h1{font-size:36px}}
@media(max-width:480px){.catalog-grid{grid-template-columns:1fr}.physical-cover,.cover-placeholder{height:300px}.physical-body h3{font-size:22px}.cover-placeholder span{font-size:22px}.physical-body{padding:23px}.book-author{font-size:12px}.book-location{font-size:12px}.book-location>div{grid-template-columns:45px 1fr}.catalog-filters{padding:16px;gap:12px}.catalog-filters>div{min-width:0}.catalog-filters>div:first-child{flex-basis:100%}.catalog-filters>div:not(:first-child){flex:1 1 100%}.catalog-filters .btn{flex:1}.catalog-stats{gap:18px;font-size:10px}.catalog-stats strong{font-size:22px;display:block}.catalog-pagination{gap:10px;flex-wrap:wrap;font-size:10px}.catalog-pagination .btn{padding:10px}.detail-facts>div{grid-template-columns:110px minmax(0,1fr);gap:12px;font-size:12px}.edit-fields,.edit-cover{padding:21px}.catalog-admin .section-heading{align-items:stretch}.catalog-admin h1{font-size:33px}.admin-actions .btn{font-size:11px;padding:10px 12px}.admin-catalog-link{align-items:start;flex-direction:column}}
.catalog-admin{min-width:0;width:100%}.catalog-table-wrap{max-width:100%}
.catalog-table-wrap{position:relative}
