.novel-reading-section { margin: 8px 0 20px; }
.novel-reading-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.novel-reading-heading h2 { margin: 0; padding: 0; color: var(--text-primary); font-size: 14px; font-weight: 700; }
.novel-reading-heading a { display: inline-flex; align-items: center; min-height: 44px; color: var(--text-secondary); font-size: 12px; text-decoration: none; }
.novel-reading-row { display: flex; gap: 8px; overflow-x: auto; overscroll-behavior-x: contain; padding: 0 0 8px; scrollbar-width: none; }
.novel-reading-row::-webkit-scrollbar { display: none; }
.novel-reading-book { display: block; min-width: 0; color: var(--text-primary); text-decoration: none; }
.novel-reading-row .novel-reading-book { flex: 0 0 28%; }
.novel-reading-cover { display: block; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 8px; background: var(--novel-control-bg, #f3f4f6); }
.novel-reading-cover img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.novel-reading-cover.is-text { display: flex; align-items: center; box-sizing: border-box; padding: 12px; }
.novel-reading-cover.is-text > span { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.novel-reading-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 4px; font-size: 11px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.novel-reading-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 6px; }
.novel-shelf-filters { display: flex; gap: 6px; margin-bottom: 8px; }
.novel-shelf-filters button { box-sizing: border-box; display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-height: 36px; padding: 0; border: 0; background: transparent; color: var(--text-secondary); font: inherit; font-size: 12px; line-height: 1.35; }
.novel-shelf-filters button > span { display: inline-flex; align-items: center; min-height: 28px; box-sizing: border-box; padding: 4px 8px; border-radius: 999px; }
.novel-shelf-filters button[aria-pressed="true"] > span { background: #eef0f3; color: var(--text-primary); font-weight: 700; }
:is(.novel-reading-section, .novel-reading-grid, #novelReadShelf, #novelCreatedShelf)[hidden] { display: none; }
