.lib-header{text-align:center;padding:var(--space-7) 0 var(--space-5);border-bottom:1px solid var(--color-border)}.lib-title{font-family:var(--font-display);color:var(--color-navy);margin:0 0 var(--space-2);font-size:2rem}.lib-title-roman{font-family:var(--font-ui);color:var(--color-text-muted);font-size:1.1rem;font-weight:400}.lib-subtitle{color:var(--color-text-secondary);margin:0;font-size:.95rem}.lib-content{padding:var(--space-5) 0 var(--space-8)}.lib-filters{align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.filter-chip{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;font-size:.8rem;transition:all .15s}.filter-chip:hover{border-color:var(--color-saffron);color:var(--color-saffron)}.filter-active{background:var(--color-saffron);color:#fff;border-color:var(--color-saffron)}.lib-sort{margin-left:auto}.lib-sort select{font-family:var(--font-ui);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:.8rem}.book-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.book-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border-subtle);color:var(--color-text);cursor:pointer;flex-direction:column;text-decoration:none;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex;overflow:hidden}.book-card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-saffron);transform:translateY(-3px)}.book-thumb{background:var(--color-surface-alt);justify-content:center;align-items:center;height:220px;display:flex;position:relative;overflow:hidden}.book-thumb img{object-fit:cover;width:100%;height:100%}.thumb-fallback-text{font-family:var(--font-indic);color:var(--color-navy);opacity:.2;text-align:center;padding:var(--space-4);font-size:1.5rem;display:none;position:absolute}.thumb-fallback .thumb-fallback-text{display:block}.book-meta{padding:var(--space-4);flex-direction:column;flex:1;display:flex}.book-title-indic{font-family:var(--font-indic);color:var(--color-navy);margin:0 0 var(--space-1);font-size:1.2rem;line-height:1.4}.book-title-roman{color:var(--color-text-secondary);margin:0 0 var(--space-2);font-size:.85rem}.lang-badge{padding:2px var(--space-2);border-radius:var(--radius-full);width:fit-content;margin-bottom:var(--space-2);font-size:.7rem;font-weight:600;display:inline-block}.lang-gujarati{background:var(--color-saffron);color:#fff}.book-desc{color:var(--color-text-secondary);margin:0 0 var(--space-2);flex:1;font-size:.8rem;line-height:1.5}.book-pages{color:var(--color-text-muted);margin:0;font-size:.75rem}.upload-card{border:2px dashed var(--color-border);box-shadow:none;background:0 0;flex-direction:column;justify-content:center;align-items:center;min-height:300px;transition:border-color .2s;display:flex}.upload-card:hover{border-color:var(--color-saffron);box-shadow:none;transform:none}.upload-icon{opacity:.3;margin-bottom:var(--space-2);font-size:2.5rem}.upload-text{color:var(--color-text-muted);margin:0;font-size:.9rem}
