:root{--paper: #ffffff;--surface-alt: #f4f7f5;--surface-sunken: #edf2ee;--card: #ffffff;--ink: #12271c;--ink-soft: #3c5347;--muted: #6d7d74;--line: #dfe7e2;--line-strong: #c7d3cb;--brand: #175c3c;--brand-deep: #0d3e28;--brand-tint: #e5f0e8;--accent: #93753a;--accent-tint: #f4eee0;--success: #1f7a46;--success-tint: #e6f3ea;--warning: #93692a;--warning-tint: #f5ecdc;--danger: #9c3b2e;--danger-tint: #f6e8e5;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(18, 39, 28, .06);--shadow: 0 8px 24px -16px rgba(18, 39, 28, .35);--shadow-lg: 0 24px 48px -24px rgba(18, 39, 28, .35);--header-h: 68px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 Inter,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,.brand{font-family:Newsreader,Georgia,serif}h1,h2,h3,p{margin:0 0 .6em}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}button:disabled{cursor:not-allowed;opacity:.5}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}[lang=bn]{font-family:"Noto Serif Bengali",serif}.container{width:min(1180px,calc(100% - 48px));margin-inline:auto}.narrow{max-width:640px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:16px;z-index:100;background:var(--brand-deep);color:#fff;padding:10px 18px;border-radius:var(--radius-sm)}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:30;background:#fffffff0;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:600;letter-spacing:-.3px;white-space:nowrap}.brand em{font-style:normal;color:var(--brand);font-weight:500}.nav-links{display:flex;align-items:center;gap:28px;color:var(--ink-soft);font-size:13.5px;font-weight:500}.nav-links a{padding-block:8px;border-bottom:1px solid transparent}.nav-links a:hover{border-color:var(--line-strong)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--brand);color:#fff;padding:10px 18px;border:1px solid var(--brand);border-radius:var(--radius-sm);font-weight:600;font-size:13px;line-height:1.4;transition:background .15s ease,border-color .15s ease}.button:hover{background:var(--brand-deep);border-color:var(--brand-deep)}.button-outline{background:var(--paper);border-color:var(--line-strong);color:var(--ink)}.button-outline:hover{background:var(--surface-alt);border-color:var(--brand);color:var(--brand-deep)}.button.small{padding:7px 13px;font-size:12px}.text-button{display:inline-flex;align-items:center;gap:6px;color:var(--brand-deep);font-size:13px;font-weight:600;padding:4px 0}.text-button:hover,.text-button.saved{color:var(--brand)}.hero{background:var(--surface-alt);border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:56px;align-items:start;padding-block:56px 52px}.hero-primary h1{font-size:clamp(32px,3.4vw,44px);line-height:1.15;font-weight:600;letter-spacing:-.6px;max-width:15ch;color:var(--ink)}.hero-primary>p{font-size:15.5px;color:var(--ink-soft);line-height:1.7;max-width:46ch;margin-bottom:24px}.hero-search{display:flex;align-items:center;gap:10px;max-width:480px;background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius);padding:5px 5px 5px 16px;box-shadow:var(--shadow-sm)}.hero-search:focus-within{border-color:var(--brand)}.hero-search svg{color:var(--muted);flex-shrink:0}.hero-search input{flex:1;min-width:0;border:0;outline:none;background:none;padding:10px 0;font-size:14px}.hero-search .button{flex-shrink:0;white-space:nowrap;padding:10px 18px}.hero-meta{display:flex;gap:26px;margin-top:28px;flex-wrap:wrap}.hero-meta span{display:flex;flex-direction:column-reverse;gap:2px;font-size:11.5px;color:var(--muted)}.hero-meta strong{font-family:Newsreader,serif;font-size:24px;font-weight:600;color:var(--ink)}.hero-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.hero-panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.hero-panel-head span{font-size:12px;font-weight:600;color:var(--ink-soft)}.hero-panel-head small{font-size:11px;color:var(--muted)}.hero-panel-list{list-style:none;margin:0;padding:6px;display:flex;flex-direction:column;gap:2px}.hero-panel-list button{display:flex;width:100%;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-sm);text-align:left;transition:background .15s ease}.hero-panel-list button:hover{background:var(--surface-alt)}.panel-swatch{width:8px;height:28px;border-radius:3px;flex:0 0 auto}.tone-ssc{background:#1d6e63}.tone-hsc{background:var(--brand)}.tone-uni{background:#8b4a32}.panel-text{display:flex;flex-direction:column;flex:1;min-width:0}.panel-text strong{font-size:13.5px;font-weight:600}.panel-text small{font-size:11px;color:var(--muted)}.panel-count{font-size:12px;color:var(--ink-soft);font-weight:600;flex:0 0 auto}.hero-panel-foot{display:block;padding:13px 18px;text-align:center;font-size:12.5px;font-weight:600;color:var(--brand-deep);border-top:1px solid var(--line);background:var(--surface-alt)}.hero-panel-foot:hover{background:var(--brand-tint)}.catalog-section{padding-block:44px 48px;scroll-margin-top:20px}.catalog-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.catalog-heading h2{font-size:26px;font-weight:600}.catalog-heading p{color:var(--muted);font-size:13px;margin:0}.catalog-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:start}.filters-rail{position:sticky;top:calc(var(--header-h) + 20px);display:flex;flex-direction:column;gap:22px}.filter-group h3{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;margin-bottom:10px}.filter-list{display:flex;flex-direction:column;gap:2px}.filter-list button{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);font-size:13.5px;color:var(--ink-soft);text-align:left}.filter-list button:hover{background:var(--surface-alt);color:var(--ink)}.filter-list button.active{background:var(--brand-tint);color:var(--brand-deep);font-weight:600}.filter-list button span{font-size:11.5px;color:var(--muted)}.filter-list button.active span{color:var(--brand-deep)}.filter-group select{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 10px;font-size:13px;background:var(--paper)}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-soft)}.checkbox-row input{width:15px;height:15px;accent-color:var(--brand)}.catalog-main{min-width:0}.catalog-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:18px}.catalog-search{flex:1;display:flex;align-items:center;gap:9px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 12px;color:var(--muted);background:var(--paper)}.catalog-search input{flex:1;min-width:0;border:0;outline:none;font-size:13.5px;color:var(--ink);background:transparent}.result-count{font-size:12.5px;color:var(--muted);white-space:nowrap}.notice{background:var(--accent-tint);border:1px solid #e4d6b3;border-radius:var(--radius-sm);color:#6b5424;padding:11px 15px;margin-bottom:20px;font-size:12.5px}.book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,240px));gap:18px}.book-card{border:1px solid var(--line);border-radius:var(--radius);padding:10px;background:var(--card);display:flex;flex-direction:column;transition:box-shadow .15s ease,border-color .15s ease}.book-card:hover{box-shadow:var(--shadow);border-color:var(--line-strong)}.book-cover{position:relative;aspect-ratio:3/4;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-sunken);color:var(--brand-deep)}.book-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cover-ssc{background:#e7f0ee;color:#1d6e63}.cover-uni{background:#f2ece3;color:#8b4a32}.cover-type{position:absolute;inset:14px;border:1px solid currentColor;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:14px 8px}.cover-imprint{font-size:8px;letter-spacing:.14em;opacity:.75}.cover-type strong{font:500 17px/1.25 Newsreader,serif;max-width:150px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.cover-type strong[lang=bn]{font:500 15px/1.5 "Noto Serif Bengali",serif}.cover-rule{width:22px;height:1px;background:currentColor;opacity:.5}.cover-type>span:last-child{font-size:9.5px;opacity:.8}.format-badge,.category-badge{position:absolute;top:8px;font-size:9px;font-weight:600;letter-spacing:.03em;border-radius:4px;padding:3px 6px}.format-badge{left:8px;background:#ffffffeb;color:var(--ink-soft)}.category-badge{right:8px;background:var(--brand-deep);color:#fff}.book-body{padding:12px 4px 2px;display:flex;flex-direction:column;flex:1}.book-kicker{font-size:10.5px;color:var(--muted);font-weight:600;letter-spacing:.02em;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-body h3{font-size:16px;line-height:1.3;font-weight:600;margin-bottom:6px;min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-body h3[lang=bn]{font-size:14px;line-height:1.6}.book-by{font-size:11.5px;color:var(--muted);margin-bottom:12px}.book-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:9px;border-top:1px solid var(--line)}.book-bottom>span{font-size:11px;display:flex;gap:5px;align-items:center;color:var(--muted)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--muted)}.icon-button:hover{background:var(--surface-alt);color:var(--brand-deep)}.icon-button.saved{color:var(--brand)}.icon-button.danger{color:var(--danger)}.icon-button.danger:hover{background:var(--danger-tint)}.load-more{display:flex;justify-content:center;margin-top:28px}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:44px 22px;background:var(--surface-alt);border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--ink-soft)}.empty-state h3{font-size:17px}.empty-state p{color:var(--muted);font-size:13px}.request-banner{display:flex;align-items:center;gap:24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-alt);padding:28px 32px;margin-top:8px}.request-banner h2{font-size:21px;margin-bottom:4px}.request-banner p{font-size:13px;margin:0;color:var(--ink-soft)}.request-banner .button{margin-left:auto;white-space:nowrap}.site-footer{background:var(--surface-alt);border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;padding-block:40px 30px}.footer-grid .brand{font-size:19px;display:inline-flex;margin-bottom:12px}.footer-grid p{color:var(--muted);font-size:12.5px}.footer-grid h3{font-family:Inter,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin:4px 0 14px;font-weight:600;color:var(--ink-soft)}.footer-grid>div>a:not(.brand){display:block;font-size:13px;margin-bottom:9px;color:var(--ink-soft)}.footer-grid>div>a:hover{color:var(--brand-deep)}.footer-bottom{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-block:16px;color:var(--muted);font-size:11.5px}.page-section{padding-block:52px}.page-intro{color:var(--ink-soft);margin-bottom:26px;font-size:14.5px}.eyebrow{font-size:11px;letter-spacing:.05em;color:var(--muted);font-weight:600;margin-bottom:10px}.panel{padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}.form-stack{display:flex;flex-direction:column;gap:17px}.form-stack label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-soft)}.form-stack input,.form-stack select,.form-stack textarea,.admin-actions>input{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:var(--paper);color:var(--ink);font-size:13.5px;font-weight:400;min-width:0}.form-stack textarea{resize:vertical;min-height:96px}.form-stack p,.form-stack .notice{margin-bottom:0}.form-stack .button{align-self:flex-start}.error{color:var(--danger);font-size:12.5px}.success{color:var(--success);font-size:12.5px}.muted{color:var(--muted);font-size:12.5px;font-weight:400}.prose{line-height:1.8}.prose h2{margin-top:28px;font-size:22px}.prose p{color:var(--ink-soft)}.detail-page{padding-block:32px 60px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:12px;margin-bottom:28px}.breadcrumbs a:hover{color:var(--brand-deep)}.detail-header{display:flex;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:22px}.detail-header h1{max-width:760px;font-size:34px;line-height:1.2;margin-bottom:10px}.detail-header p{font-size:12.5px;color:var(--muted);margin:0}.description{max-width:760px;color:var(--ink-soft);line-height:1.85}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}.tag-row>span{font-size:11px;background:var(--surface-alt);border:1px solid var(--line);border-radius:20px;padding:4px 11px;color:var(--ink-soft)}.reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:30px}.reader-toolbar h2{margin:0;font-size:21px}.pdf-reader{width:100%;height:74vh;min-height:380px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-sunken)}.admin-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding-block:34px 60px;min-height:70vh}.admin-sidebar{border-right:1px solid var(--line);padding-right:22px}.workspace-label{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--ink-soft)}.role-badge{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--brand-deep);background:var(--brand-tint);border-radius:20px;padding:3px 10px;margin-block:13px 22px}.admin-sidebar nav{display:flex;flex-direction:column;gap:3px;margin-bottom:30px}.admin-sidebar nav button{text-align:left;padding:9px 11px;border-radius:var(--radius-sm);font-size:13px;color:var(--ink-soft)}.admin-sidebar nav button:hover{background:var(--surface-alt)}.admin-sidebar nav button.active{background:var(--brand-tint);color:var(--brand-deep);font-weight:600}.admin-main{min-width:0}.admin-main h1{font-size:28px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px}.section-heading h2,.section-heading h1{margin-bottom:4px}.section-heading p{color:var(--muted);margin-bottom:0;font-size:12.5px}.admin-actions{display:flex;gap:12px;margin-bottom:22px}.admin-actions>input{flex:1}.admin-actions .button{white-space:nowrap}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;text-align:left;font-size:12.5px}th{background:var(--surface-sunken);color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;white-space:nowrap}th,td{padding:12px 14px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}td strong{display:block;font-weight:500;min-width:170px}td small{color:var(--muted);display:block;margin-top:3px;font-size:10.5px}.status{display:inline-block;padding:3px 9px;border-radius:20px;background:var(--warning-tint);color:var(--warning);font-size:10px;font-weight:600;text-transform:capitalize}.status.published{background:var(--success-tint);color:var(--success)}.button-row{display:flex;gap:10px;align-items:center}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.editor{margin-bottom:26px}.editor h2{margin-bottom:4px;font-size:18px}.upload-zone{border:1px dashed var(--line-strong);background:var(--surface-alt);border-radius:var(--radius-sm);padding:20px;align-items:center;text-align:center}.upload-zone input{background:none;border:0;width:auto;max-width:100%;font-size:11px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.stat-grid .panel{display:flex;flex-direction:column;gap:8px}.stat-grid span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.stat-grid strong{font-family:Newsreader,serif;font-size:32px;font-weight:600}.feed{display:grid;gap:13px}.feed h3{margin-top:10px;margin-bottom:7px;font-size:16px}.feed p{color:var(--ink-soft);white-space:pre-wrap;overflow-wrap:anywhere}.audit-entry{display:flex;flex-direction:column;gap:7px;overflow-wrap:anywhere}.audit-entry code,.audit-entry small{font-size:10.5px;color:var(--muted)}@media(max-width:1050px){.hero-grid{gap:32px;grid-template-columns:1.1fr .9fr}.catalog-layout{grid-template-columns:190px minmax(0,1fr);gap:24px}}@media(max-width:900px){.container{width:calc(100% - 36px)}.nav-links{display:none}.hero-grid{grid-template-columns:1fr;padding-block:36px;gap:26px}.hero-panel{max-width:460px}.catalog-layout{grid-template-columns:1fr}.filters-rail{position:static;flex-direction:row;flex-wrap:wrap;gap:16px 26px;padding-bottom:16px;border-bottom:1px solid var(--line)}.filter-group{min-width:160px}.filter-list{flex-direction:row;flex-wrap:wrap}.admin-layout{grid-template-columns:1fr;gap:20px}.admin-sidebar{border-right:0;border-bottom:1px solid var(--line);padding:0 0 16px}.admin-sidebar nav{flex-direction:row;flex-wrap:wrap;margin:14px 0}}@media(max-width:620px){.container{width:calc(100% - 28px)}h1{font-size:30px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.book-card{padding:7px}.hero-meta{gap:16px}.hero-meta strong{font-size:20px}.request-banner{flex-wrap:wrap}.request-banner .button{margin-left:0;width:100%}.footer-grid{grid-template-columns:1fr 1fr;gap:22px}.footer-grid>div:first-child{grid-column:1 / -1}.footer-bottom{flex-direction:column;gap:6px}.form-columns,.stat-grid{grid-template-columns:1fr}.detail-header{flex-direction:column}.detail-header h1{font-size:27px}.reader-toolbar{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
