/* Hanbi — textbook list page (vi). Uses styles.css + hsk.css tokens. */
.tb-toc { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0 !important; margin: 18px 0 0; }
.tb-toc li { margin: 0 !important; }
.tb-toc a { display: inline-block; min-width: 44px; padding: 10px 14px; text-align: center; border: 1px solid var(--line); border-radius: 12px; background: var(--sheet); color: var(--ink); text-decoration: none; font-weight: 600; }
.tb-lesson { margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--line); }
.tb-lesson h2 { margin: 0; }
.tb-lesson h2 span { font-weight: 450; }
.tb-meta { margin: 6px 0 0; color: var(--ink2); font-size: .95rem; }
.tb-chars { list-style: none; padding: 0 !important; margin: 16px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 8px; }
.tb-chars li { margin: 0 !important; }
.tb-chars .grid { width: 100%; display: block; }
.tb-chars b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tb-lesson .actions { margin-top: 18px; align-items: center; }
.tb-get { font-size: .95rem; }
