:root{--novalib-ink:#172033;--novalib-muted:#667085;--novalib-line:#e4e7ec;--novalib-surface:#fff;--novalib-soft:#f5f7fa;--novalib-brand:#155eef;--novalib-brand-dark:#004eeb;--novalib-radius:14px;--novalib-shadow:0 10px 30px rgba(16,24,40,.08)}
.novalib-site-main{color:var(--novalib-ink);font-size:16px;line-height:1.65}.novalib-site-main *{box-sizing:border-box}.novalib-shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}.novalib-hero{padding:64px 0 58px;background:linear-gradient(135deg,#eff4ff 0%,#f8f9fc 52%,#f0f9ff 100%);border-bottom:1px solid #dfe7f5;text-align:center}.novalib-eyebrow{margin:0 0 8px;color:var(--novalib-brand);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.novalib-hero h1{margin:0;color:var(--novalib-ink);font-size:clamp(34px,5vw,56px);line-height:1.08;letter-spacing:-.035em}.novalib-hero-copy{max-width:600px;margin:14px auto 0;color:var(--novalib-muted);font-size:18px}.novalib-search-form{display:flex;max-width:760px;margin:30px auto 0;padding:7px;background:#fff;border:1px solid rgba(21,94,239,.16);border-radius:14px;box-shadow:0 14px 35px rgba(16,24,40,.12)}.novalib-search-form input{flex:1;min-width:0;height:48px;padding:0 15px!important;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--novalib-ink)}.novalib-search-form input:focus{outline:2px solid transparent}.novalib-search-form button,.novalib-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:10px 20px;border:1px solid var(--novalib-brand);border-radius:9px;background:var(--novalib-brand);color:#fff!important;font-weight:700;line-height:1.2;text-decoration:none!important;cursor:pointer;transition:background .18s,border-color .18s,transform .18s}.novalib-search-form button:hover,.novalib-button:hover{background:var(--novalib-brand-dark);border-color:var(--novalib-brand-dark);transform:translateY(-1px)}.novalib-catalog-body{padding-top:34px;padding-bottom:70px}.novalib-filters{display:flex;align-items:end;gap:12px;padding:18px;border:1px solid var(--novalib-line);border-radius:var(--novalib-radius);background:var(--novalib-surface)}.novalib-filter-field{flex:1;min-width:120px}.novalib-filter-field label{display:block;margin:0 0 5px;color:#344054;font-size:12px;font-weight:700;text-transform:uppercase}.novalib-filter-field input{width:100%;height:44px;margin:0!important;padding:8px 12px!important;border:1px solid #d0d5dd!important;border-radius:8px!important;background:#fff!important;box-shadow:none!important}.novalib-button-secondary{min-height:44px}.novalib-clear{padding:10px 5px;color:var(--novalib-muted);font-weight:600}.novalib-results-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:38px 0 18px}.novalib-results-heading h2{margin:0;font-size:25px;line-height:1.3}.novalib-backend,.novalib-badge{display:inline-flex;padding:4px 9px;border-radius:999px;background:#eff4ff;color:#004eeb;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.novalib-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.novalib-book{overflow:hidden;border:1px solid var(--novalib-line);border-radius:var(--novalib-radius);background:var(--novalib-surface);box-shadow:0 1px 2px rgba(16,24,40,.04);transition:transform .2s,box-shadow .2s}.novalib-book:hover{transform:translateY(-4px);box-shadow:var(--novalib-shadow)}.novalib-book-cover{display:block;aspect-ratio:3/4;background:#e9edf3;overflow:hidden}.novalib-book-cover img,.novalib-detail-cover img{display:block;width:100%;height:100%;object-fit:cover}.novalib-cover-placeholder{display:flex;width:100%;height:100%;align-items:center;justify-content:center;padding:20px;background:linear-gradient(145deg,#253858,#101828);color:rgba(255,255,255,.72);font:800 13px/1.2 sans-serif;letter-spacing:.2em;text-align:center}.novalib-cover-placeholder span{padding:13px 10px;border-block:1px solid rgba(255,255,255,.3)}.novalib-book-info{padding:17px}.novalib-book h3{display:-webkit-box;overflow:hidden;margin:0 0 8px;font-size:17px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.novalib-book h3 a{color:var(--novalib-ink);text-decoration:none}.novalib-book-facts{overflow:hidden;margin:0 0 13px;color:var(--novalib-muted);font-size:13px;white-space:nowrap;text-overflow:ellipsis}.novalib-text-link{color:var(--novalib-brand);font-size:14px;font-weight:700;text-decoration:none}.novalib-empty{margin:30px 0;padding:60px 20px;border:1px dashed #cbd5e1;border-radius:var(--novalib-radius);background:var(--novalib-soft);text-align:center}.novalib-empty>span{display:block;color:#98a2b3;font-size:48px;line-height:1}.novalib-empty h2{margin:14px 0 5px}.novalib-empty p{margin:0;color:var(--novalib-muted)}.novalib-pagination{display:flex;justify-content:center;margin-top:38px}.novalib-single{padding:34px 0 80px;background:#f8fafc}.novalib-breadcrumb{display:flex;overflow:hidden;align-items:center;gap:9px;margin-bottom:26px;color:var(--novalib-muted);font-size:13px;white-space:nowrap}.novalib-breadcrumb a{color:var(--novalib-brand);text-decoration:none}.novalib-breadcrumb span:last-child{overflow:hidden;text-overflow:ellipsis}.novalib-detail{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:48px;align-items:start}.novalib-cover-column{position:sticky;top:32px}.novalib-detail-cover{overflow:hidden;aspect-ratio:3/4;border-radius:var(--novalib-radius);background:#e9edf3;box-shadow:var(--novalib-shadow)}.novalib-title-block{padding-bottom:26px;border-bottom:1px solid var(--novalib-line)}.novalib-title-block h1{margin:10px 0 8px;color:var(--novalib-ink);font-size:20px;line-height:1.35;letter-spacing:0}.novalib-subtitle{margin:0;color:var(--novalib-muted);font-size:20px}.novalib-byline{margin:16px 0 0;color:#344054;font-weight:650}.novalib-info-panel,.novalib-description{margin-top:30px}.novalib-info-panel h2,.novalib-description h2,.novalib-file-panel h2{margin:0 0 14px;font-size:20px}.novalib-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;border:1px solid var(--novalib-line);border-radius:12px;background:#fff}.novalib-meta>div{padding:14px 16px;border-bottom:1px solid var(--novalib-line)}.novalib-meta>div:nth-last-child(-n+2){border-bottom:0}.novalib-meta dt{color:var(--novalib-muted);font-size:12px;font-weight:700;text-transform:uppercase}.novalib-meta dd{margin:3px 0 0;color:var(--novalib-ink);font-weight:600;overflow-wrap:anywhere}.novalib-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.novalib-tags span{padding:5px 10px;border:1px solid #d1e0ff;border-radius:999px;background:#f5f8ff;color:#1849a9;font-size:13px}.novalib-description{font-size:17px}.novalib-description p:last-child{margin-bottom:0}.novalib-file-panel{margin-top:18px;padding:18px;border:1px solid var(--novalib-line);border-radius:12px;background:#fff}.novalib-file-panel h2{font-size:16px}.novalib-file-panel ul{list-style:none;margin:0;padding:0}.novalib-file-panel li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #eef0f3;font-size:13px}.novalib-file-panel li:first-child{border-top:0}.novalib-file-panel li span{color:var(--novalib-muted)}
.novalib-content,.novalib-source-note{padding:22px;border:1px solid var(--novalib-line);border-radius:12px;background:#fff;overflow-wrap:anywhere}.novalib-content img{max-width:100%;height:auto}.novalib-source-note{color:var(--novalib-muted);font-size:15px}
.novalib-hash-panel{margin-top:16px;padding:14px;border:1px solid var(--novalib-line);border-radius:10px;background:#fff}.novalib-hash-panel h2{margin:0 0 8px;font-size:14px;line-height:1.3}.novalib-hash-panel dl{margin:0}.novalib-hash-panel dl>div{padding:7px 0;border-top:1px solid #eef0f3}.novalib-hash-panel dl>div:first-child{border-top:0}.novalib-hash-panel dt{color:var(--novalib-muted);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.novalib-hash-panel dd{margin:2px 0 0}.novalib-hash-panel code{display:block;padding:0;background:transparent;color:#344054;font:500 12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;overflow-wrap:anywhere;text-transform:uppercase}
.novalib-download-links{display:flex;flex-wrap:wrap;gap:10px}.novalib-download-button{min-height:40px;padding:8px 14px;font-size:14px}
.novalib-download-panel{margin-top:18px;padding:16px;border:1px solid var(--novalib-line);border-radius:12px;background:#fff}.novalib-download-panel h2{margin:0 0 12px;font-size:16px}.novalib-download-panel .novalib-download-links{display:grid;grid-template-columns:1fr;gap:8px}.novalib-download-panel .novalib-download-button{width:100%;min-width:0;padding-inline:10px;font-size:12px}
.novalib-cover-zoom{display:block;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;cursor:zoom-in}.novalib-cover-lightbox[hidden]{display:none}.novalib-cover-lightbox{position:fixed;z-index:999999;inset:0;display:flex;align-items:center;justify-content:center;padding:40px;background:rgba(8,15,28,.9);cursor:zoom-out}.novalib-cover-lightbox img{display:block;max-width:min(92vw,1100px);max-height:90vh;width:auto;height:auto;object-fit:contain;box-shadow:0 24px 80px rgba(0,0,0,.45);cursor:default}.novalib-cover-lightbox-close{position:fixed;z-index:1;top:18px;right:22px;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,0,0,.35);color:#fff;font:300 32px/1 sans-serif;cursor:pointer}.novalib-cover-lightbox-open{overflow:hidden}
.novalib-similar{margin-top:34px;padding-top:26px;border-top:1px solid var(--novalib-line)}.novalib-similar>h2{margin:0 0 16px;font-size:20px}.novalib-similar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.novalib-similar-book{min-width:0}.novalib-similar-cover{display:block;overflow:hidden;aspect-ratio:3/4;border-radius:9px;background:#e9edf3}.novalib-similar-cover img{display:block;width:100%;height:100%;object-fit:cover}.novalib-similar-book h3{display:-webkit-box;overflow:hidden;margin:8px 0 3px;color:var(--novalib-ink);font-size:13px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.novalib-similar-book h3 a{color:inherit;text-decoration:none}.novalib-similar-book p{margin:0;color:var(--novalib-muted);font-size:11px}
.novalib-filter-field select{width:100%;height:44px;margin:0!important;padding:8px 34px 8px 12px!important;border:1px solid #d0d5dd!important;border-radius:8px!important;background-color:#fff!important;box-shadow:none!important}.novalib-admin-actions{display:flex;justify-content:flex-end;margin:-12px 0 20px}.novalib-edit-button{min-height:38px;padding:8px 15px;font-size:14px}
.novalib-tags a{padding:5px 10px;border:1px solid #d1e0ff;border-radius:999px;background:#f5f8ff;color:#1849a9;font-size:13px;text-decoration:none}.novalib-byline a{color:var(--novalib-brand);text-decoration:none}.novalib-entity-page{padding:34px 0 70px;background:#f8fafc}.novalib-entity-header{margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid var(--novalib-line)}.novalib-entity-header h1{margin:4px 0 0;font-size:28px;line-height:1.3}
@media(max-width:960px){.novalib-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.novalib-detail{grid-template-columns:220px minmax(0,1fr);gap:32px}}
@media(max-width:720px){.novalib-shell{width:min(100% - 28px,1180px)}.novalib-hero{padding:46px 0}.novalib-search-form{padding:5px}.novalib-search-form button{padding-inline:14px}.novalib-filters{align-items:stretch;flex-wrap:wrap}.novalib-filter-field{flex-basis:calc(50% - 8px)}.novalib-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.novalib-detail{grid-template-columns:1fr}.novalib-cover-column{position:static;width:min(260px,82vw);margin-inline:auto}.novalib-detail-content{min-width:0}.novalib-meta{grid-template-columns:1fr}.novalib-meta>div:nth-last-child(2){border-bottom:1px solid var(--novalib-line)}.novalib-similar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.novalib-search-form{display:block;background:transparent;border:0;box-shadow:none;padding:0}.novalib-search-form input{height:48px!important;border:1px solid #d0d5dd!important;border-radius:9px!important;background:#fff!important}.novalib-search-form button{width:100%;margin-top:8px}.novalib-filter-field{flex-basis:100%}.novalib-filters .novalib-button{width:100%}.novalib-clear{text-align:center}.novalib-results-heading{align-items:flex-start}.novalib-grid{grid-template-columns:1fr}.novalib-book{display:grid;grid-template-columns:112px 1fr}.novalib-book-cover{height:100%;min-height:158px}.novalib-book-info{padding:15px}.novalib-title-block h1{font-size:20px}}
