/* Native book workspace. Shared colours, fonts and controls come from Eddy. */
.textbook-reader{color:var(--text-body);font:var(--fs-site-body,17px)/1.65 var(--font-brand);padding:var(--sp-6,24px) 0 var(--sp-12,48px)}
.textbook-reader *{box-sizing:border-box}.textbook-reader [hidden]{display:none!important}
.textbook-reader a{overflow-wrap:anywhere}.textbook-reader p{margin:0 0 1em}
.textbook-reader h1{font:var(--fw-bold,700) clamp(28px,3.3vw,44px)/1.2 var(--font-brand);margin:0 0 .6em;overflow-wrap:anywhere}
.textbook-reader h2{font:var(--fw-bold,700) clamp(23px,2.3vw,30px)/1.3 var(--font-brand);margin:0 0 .8em}
.textbook-reader h3{font:var(--fw-semibold,600) 20px/1.5 var(--font-brand);margin:0 0 .6em}
.textbook-reader :focus-visible{outline:3px solid var(--border-focus);outline-offset:4px}
.tb-skip{position:absolute;left:-10000px}.tb-skip:focus{left:16px;top:90px;background:var(--surface-card);padding:12px;z-index:100}
.tb-preview{font-size:var(--fs-sm,14px);color:var(--ink-600);padding:8px 0}
.tb-header{max-width:950px;margin-bottom:36px}.tb-eyebrow{font-size:var(--fs-site-small,15px);color:var(--ink-600)}
.tb-lead{max-width:760px;font-size:var(--fs-site-lead,19px)}
.tb-layout{display:grid;grid-template-columns:230px minmax(0,820px);gap:40px;align-items:start}
.tb-content{min-width:0;overflow-wrap:anywhere}.tb-sidebar{position:sticky;top:92px;max-height:calc(100vh - 110px);overflow-y:auto;padding-right:12px;font-size:14px}
.tb-toc summary{font-weight:var(--fw-bold,700);padding:12px 0;cursor:pointer}.tb-toc ol{list-style:none;padding:0;margin:0}
.tb-toc li a{display:block;padding:10px 0;text-decoration:none;color:var(--text-body);min-height:44px}
.tb-toc li a[aria-current]{color:var(--accent-ink);font-weight:var(--fw-bold,700)}
.tb-toc a span{font-variant-numeric:tabular-nums;color:var(--ink-600);margin-right:6px}
.tb-toc-review a,.tb-toc-final a{font-size:13px;color:var(--ink-600)!important}
.tb-reference-nav{display:flex;flex-direction:column;border-top:1px solid var(--border-default);padding-top:12px;margin-top:16px}
.tb-reference-nav a{padding:10px 0;min-height:44px}.tb-progress{border-top:1px solid var(--border-default);padding-top:20px;margin-top:20px!important}
.tb-tools{border-block:1px solid var(--border-default);padding:20px 0;margin-bottom:32px}
.tb-tool-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.tb-tool-row label{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.textbook-reader .eddy-btn{min-height:44px;white-space:normal;line-height:1.3;max-width:100%}
.textbook-reader input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}
.tb-search-form{margin-top:16px}.tb-search-form label{display:block;font-size:15px;margin-bottom:8px}
.tb-search-row{display:flex;gap:12px}.textbook-reader input[type=search],.textbook-reader input[data-response],.textbook-reader textarea[data-response]{font:inherit;color:var(--text-body);background:var(--surface-card);border:1px solid var(--ink-600);border-radius:var(--r-control,8px);padding:10px 12px;width:100%;min-width:0;min-height:46px;box-shadow:none}
.tb-search-row input{flex:1}.tb-search-row button{flex:none}.textbook-reader textarea[data-response]{resize:vertical;min-height:100px}
.tb-save-status{font-size:13px;color:var(--ink-600);margin:16px 0 0!important}.tb-notice{background:var(--surface-sunken);padding:16px;border-radius:var(--r-control,8px)}
.tb-start{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:32px}.tb-caption{display:block;font-size:14px;color:var(--ink-600);font-weight:400;line-height:1.5}
.tb-lesson-list{list-style:none;padding:0;margin:0}.tb-lesson-row{display:grid;grid-template-columns:40px 1fr 20px;gap:16px;padding:22px 0;border-bottom:1px solid var(--border-default);text-decoration:none;color:var(--text-body)}
.tb-lesson-row strong{display:block;font-weight:600;margin-bottom:5px}.tb-lesson-number{font-size:20px;color:var(--accent-ink);font-variant-numeric:tabular-nums}
.tb-section{margin:40px 0}.tb-section-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.tb-words{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tb-word{padding:20px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--r-card,12px);min-width:0}
.tb-word h3{font:500 27px/1.5 var(--font-hanzi)}.tb-word .tb-example{border-top:1px solid var(--border-subtle);padding-top:12px;margin-top:12px}
.tb-zh{font:400 26px/1.9 var(--font-hanzi)!important;line-break:auto;word-break:normal;overflow-wrap:anywhere;margin-bottom:4px!important}
.tb-pinyin{font-size:15px;line-height:1.8;color:var(--ink-600);margin-bottom:6px!important}.tb-translation{font-size:16px}
.tb-example{margin:14px 0}.tb-pattern{font:500 23px/1.8 var(--font-hanzi);background:var(--surface-card);padding:14px;border-radius:var(--r-control,8px)}
.tb-rule{padding:24px 0;border-bottom:1px solid var(--border-default)}.tb-note{font-size:15px;line-height:1.7;color:var(--ink-600)}
.tb-dialog{background:var(--surface-card);padding:24px;border-radius:var(--r-card,12px);margin:20px 0}.tb-dialog-line{display:grid;grid-template-columns:85px minmax(0,1fr);gap:16px;padding:10px 0}
.tb-speaker{font-size:14px;color:var(--ink-600);padding-top:6px}.tb-dialog-line .tb-example{margin:0}
.tb-reference-row{padding:12px 0;border-bottom:1px solid var(--border-subtle);display:flex;gap:20px;align-items:center;flex-wrap:wrap}.tb-reference-row .tb-example{flex:1;min-width:min(100%,180px)}
.tb-reference-visual{width:110px;margin:0}.tb-reference-visual svg{display:block;width:100%;fill:var(--text-body)}.tb-reference-visual figcaption{font-size:13px;color:var(--ink-600);text-align:center}
.tb-character-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tb-character-list>span,.tb-character-list>article{padding:14px;background:var(--surface-card);border-radius:var(--r-control,8px)}.tb-character-list strong{font:500 27px/1.6 var(--font-hanzi)}
.tb-character-list span span{font-size:14px}.tb-read-mark{display:flex;gap:10px;align-items:center;min-height:44px;padding:16px;background:var(--surface-card);border-radius:var(--r-control,8px)}
.tb-part-nav{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--border-default);padding-bottom:16px;margin-bottom:32px}
.tb-part-nav a{min-height:44px;display:flex;align-items:center;padding:8px 14px;text-decoration:none;border-radius:var(--r-control,8px);color:var(--text-body)}.tb-part-nav a[aria-current]{color:var(--accent-ink);background:var(--accent-soft);font-weight:600}
.textbook-exercise{padding:26px 0;border-bottom:1px solid var(--border-default);scroll-margin-top:95px}.textbook-exercise h3{font-size:18px;font-weight:500}.tb-task-number{font-weight:700;margin-right:5px}
.textbook-exercise label{margin-bottom:8px}.tb-task-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:14px 0}.tb-feedback{font-size:15px}.tb-feedback[data-status=correct]{color:var(--status-success)}.tb-feedback[data-status=incorrect]{color:var(--status-danger)}
.tb-solution{margin-top:16px}.tb-solution summary{padding:10px 0;min-height:44px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;color:var(--text-link)}
.tb-solution[open]{background:var(--surface-card);padding:0 16px 8px;border-radius:var(--r-control,8px)}.tb-solution p{white-space:pre-wrap}
.tb-updated{font-size:14px;margin:12px 0}.tb-answer-text{font-family:var(--font-brand);white-space:pre-wrap}.tb-answer-entry{padding:22px 0;border-bottom:1px solid var(--border-default)}.tb-answer-entry h2{font-size:19px}
.tb-hide-pinyin [data-pinyin],.tb-hide-translation [data-translation]{display:none!important}.tb-print-response{display:none;white-space:pre-wrap;overflow-wrap:anywhere}
.tb-unit-nav{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;margin:40px 0}.tb-unit-nav a{padding:10px 0;min-height:44px}
.tb-table-scroll{overflow-x:auto;max-width:100%;border:1px solid var(--border-default);border-radius:var(--r-control,8px)}.tb-table-scroll table{border-collapse:collapse;width:100%;min-width:560px}.tb-table-scroll th,.tb-table-scroll td{padding:12px;text-align:left;border-bottom:1px solid var(--border-default);vertical-align:top;font-size:15px}
.tb-compact-list{display:grid;grid-template-columns:auto 1fr;gap:10px 20px}.tb-compact-list dd{margin:0}.tb-char-picker{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.tb-char-picker a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--r-control,8px);font:23px var(--font-hanzi);text-decoration:none;color:var(--text-body)}.tb-char-picker a[aria-current]{border-color:var(--accent);color:var(--accent-ink)}
.tb-glyph-library{position:absolute;width:0;height:0;overflow:hidden}.tb-writing-character{margin:28px 0;break-inside:avoid}.tb-writing-character h3>span[lang]{font:32px var(--font-hanzi)}.tb-writing-character h3{display:flex;gap:16px;align-items:baseline}
.tb-stroke-steps{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px;list-style:none;margin:16px 0;padding:0}.tb-stroke-steps li{min-width:0;text-align:center;font-size:13px;color:var(--ink-600);break-inside:avoid}
.tb-stroke-frame{display:block;width:100%;height:auto;border:1px solid var(--border-default);fill:var(--text-body);background:var(--surface-card)}.tb-svg-grid{fill:none;stroke:var(--border-subtle);stroke-width:2;stroke-dasharray:9 9}
.tb-previous-stroke{fill:var(--ink-300)}.tb-stroke-start-halo{fill:#fff;stroke:#fff;stroke-width:34}.tb-stroke-start{fill:#fff;stroke:#9d1623;stroke-width:14}.tb-direction-halo{fill:none;stroke:#fff;stroke-width:42;stroke-linecap:round}.tb-direction{fill:none;stroke:#9d1623;stroke-width:18;stroke-linecap:round}.tb-direction-head{fill:#9d1623;stroke:#fff;stroke-width:3;stroke-linejoin:round;paint-order:stroke fill}
.tb-copy-row{display:flex;gap:6px;margin:16px 0;break-inside:avoid}.tb-copy-cell{display:block;width:48px;height:48px;border:1px solid var(--border-strong);background-color:var(--surface-card);background-image:linear-gradient(to right,transparent 49.5%,var(--border-subtle) 49.5%,var(--border-subtle) 50.5%,transparent 50.5%),linear-gradient(to bottom,transparent 49.5%,var(--border-subtle) 49.5%,var(--border-subtle) 50.5%,transparent 50.5%)}.tb-copy-cell svg{width:100%;height:100%;fill:var(--ink-500)}
.tb-license{font-size:13px;color:var(--ink-600);border-top:1px solid var(--border-default);padding-top:18px;margin-top:26px}.tb-license p{margin-bottom:8px}
.tb-search-result{padding:20px 0;border-bottom:1px solid var(--border-default)}.tb-search-result h2{font-size:20px}.tb-search-result p{font-size:15px}.tb-reset{margin:40px 0}.tb-reset summary{cursor:pointer;padding:12px 0;min-height:44px}
@media(max-width:1023px){.tb-layout{grid-template-columns:1fr;gap:24px}.tb-sidebar{position:static;max-height:none;padding:0}.tb-reference-nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px 16px}.tb-progress{margin:8px 0!important;padding:12px 0}.tb-header{margin-bottom:24px}}
@media(max-width:599px){.tb-words{grid-template-columns:1fr}.tb-character-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tb-dialog{padding:16px}.tb-dialog-line{grid-template-columns:1fr;gap:0}.tb-speaker{padding:0}.tb-zh{font-size:24px!important}.tb-stroke-steps{grid-template-columns:repeat(4,minmax(0,1fr))}.tb-copy-cell{width:calc((100vw - 85px)/6);height:calc((100vw - 85px)/6);max-width:48px;max-height:48px}.tb-search-row{gap:8px}.tb-search-row button{padding-inline:14px}.tb-lesson-row{grid-template-columns:28px 1fr 16px;gap:10px}.tb-section{margin:30px 0}}
@media print{
 @page{size:A4;margin:14mm}
 .eddy-header,.site-menu,.eddy-footer,.site-footer,.site-cta,.site-breadcrumbs,.tb-sidebar,.tb-tools,.tb-skip,.tb-preview,.tb-part-nav,.tb-task-actions,.tb-unit-nav,.tb-read-mark,.tb-reset,.tb-solution,.tb-updated,.tb-char-picker,.tb-start,.tb-license,.textbook-reader noscript{display:none!important}
 .textbook-reader{font-size:11pt;line-height:1.55;padding:0;background:#fff;color:#111}.textbook-reader .eddy-container{padding:0;max-width:none}.tb-layout{display:block}.tb-header{margin:0 0 8mm}.textbook-reader h1{font-size:22pt}.textbook-reader h2{font-size:17pt;break-after:avoid}.textbook-reader h3{font-size:13pt;break-after:avoid}
 .tb-section{margin:8mm 0}.textbook-reader .textbook-exercise[hidden]{display:block!important}.textbook-exercise{padding:5mm 0;break-inside:auto}.tb-print-response{display:block;min-height:12mm;border-bottom:1px solid #777;padding:3mm 0}.textbook-reader[data-ready=true] [data-response]{display:none!important}.tb-content{width:100%}.tb-dialog,.tb-word{background:transparent;box-shadow:none}
 .tb-zh{font-size:17pt!important}.tb-words{grid-template-columns:repeat(2,minmax(0,1fr))}.tb-stroke-steps{grid-template-columns:repeat(8,minmax(0,1fr));gap:2mm}.tb-stroke-steps li{break-inside:avoid}.tb-writing-character{break-inside:auto}.tb-stroke-frame{max-width:22mm}.tb-copy-cell{width:12mm;height:12mm}.tb-copy-row{gap:2mm}.tb-table-scroll{overflow:visible}.tb-table-scroll table{min-width:0}.tb-answer-book{display:block!important}.tb-answer-entry{break-inside:auto}
 .tb-practice .tb-section-heading>.js-only,.tb-practice #unit-progress,.tb-practice #tb-no-errors{display:none!important}
 .tb-print-response,.tb-copy-cell,.tb-stroke-frame{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* Study sequence: use the site's typography and quiet dividers. */
.tb-unit-page h1{font-size:32px;max-width:850px}.tb-unit-page .tb-header{margin-bottom:20px}.tb-unit-page .tb-lead{font-size:17px;margin-bottom:12px}
.tb-section-nav{display:flex;flex-direction:column;gap:2px;margin-bottom:18px}.tb-section-nav p{margin-bottom:6px}.tb-section-nav a{display:flex;align-items:center;min-height:44px;padding:8px 12px;color:var(--text-body);text-decoration:none;border-radius:var(--r-control,8px)}.tb-section-nav a[aria-current]{color:var(--accent-ink);background:var(--accent-soft);font-weight:600}
.tb-reference-links>summary,.tb-reading-tools>summary,.tb-reference-detail>summary,.tb-tone-input>summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--text-link)}.tb-reference-links>summary{font-weight:600}.tb-reference-links .tb-reference-nav{margin:0;padding:0;border:0}
.tb-reading-tools{margin-bottom:20px;border-block:1px solid var(--border-default);font-size:15px}.tb-reading-tools .tb-tools{border:0;padding:8px 0 16px;margin:0}.tb-study-bar{position:sticky;top:var(--tb-header-offset,80px);z-index:4;background:var(--surface-page,#F5F4F0);padding:8px 0;border-bottom:1px solid var(--border-default)}.tb-study-bar .tb-part-nav{margin:0;padding:0;border:0}.tb-section-jump{display:none}
.tb-reference-detail{border-bottom:1px solid var(--border-default);margin:8px 0}.tb-reference-detail>summary{font-size:18px;font-weight:600;color:var(--text-body)}.tb-reference-body{padding:12px 0 20px}.tb-preparation>p{margin-bottom:12px}
.tb-unit-page [id]{scroll-margin-top:calc(var(--tb-header-offset,80px) + 90px)}
.textbook-reader select{display:block;font:inherit;color:var(--text-body);background:var(--surface-card);border:1px solid var(--ink-600);border-radius:var(--r-control,8px);min-height:44px;padding:8px 32px 8px 10px;max-width:100%;min-width:0}.tb-group-tools{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:20px 0}.tb-group-tools label{font-size:14px;color:var(--ink-600)}.tb-group-tools select{margin-top:6px;color:var(--text-body);font-size:16px}.tb-group-tools p{margin:0}.tb-group-title{border-bottom:1px solid var(--border-default);padding:12px 0;margin:0!important}.tb-group-title .tb-caption{margin-top:4px}.tb-group-paging{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:24px}.textbook-reader button:disabled{opacity:.55;cursor:default}
.tb-choice-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.tb-choice-buttons button{text-align:left}.tb-choice-buttons button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.textbook-reader .tb-format-help{margin-bottom:8px}.tb-tone-input{margin-top:8px}.tb-tone-tools{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:8px 0}.tb-tone-tools label{margin:0;font-size:14px}.tb-tone-tools [role=group]{display:flex;gap:8px;flex-wrap:wrap}.tb-tone-tools button{font-size:22px;font-family:var(--font-hanzi);min-width:44px;padding:8px}.tb-oral-option{display:flex;gap:10px;align-items:center;min-height:44px;font-size:15px;margin:12px 0}.tb-oral-option input{flex:none}.tb-hint-text{padding:14px;background:var(--surface-card);font-size:15px;border-radius:var(--r-control,8px)}.tb-solution [data-review]{margin-bottom:12px}.tb-unit-nav [data-next-step]{padding:12px 18px;color:var(--btn-primary-text,#fff)}
@media(max-width:1023px){.tb-unit-page .tb-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.tb-unit-page .tb-sidebar .tb-section-nav{display:none}.tb-unit-page .tb-sidebar .tb-progress{grid-column:1/-1;margin:0!important;font-size:13px;padding:8px 0}.tb-unit-page .tb-toc[open],.tb-unit-page .tb-reference-links[open]{grid-column:1/-1}.tb-unit-page .tb-layout{gap:12px}.tb-section-jump{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;padding-top:6px}.tb-section-jump select{font-size:14px;flex:1;max-width:70%}.tb-unit-page [id]{scroll-margin-top:calc(var(--tb-header-offset,64px) + 150px)}.tb-unit-page .tb-header{margin-bottom:12px}.tb-study-bar .tb-part-nav{gap:2px}.tb-study-bar .tb-part-nav a{padding:8px 10px;font-size:14px}}
@media(max-width:599px){.tb-unit-page h1{font-size:26px}.tb-unit-page h2{font-size:23px}.tb-unit-page .tb-lead{font-size:16px}.tb-preview{padding:0}.tb-unit-page .tb-eyebrow{font-size:13px}.tb-group-tools{display:block}.tb-group-tools p{margin-top:8px}.tb-group-tools select{width:100%}.tb-group-paging button{flex:1}.tb-reference-detail>summary{font-size:17px}.tb-unit-nav [data-next-step]{width:100%}.tb-tool-row{gap:8px 16px}}
@media print{.tb-study-bar,.tb-reading-tools,.tb-group-tools,.tb-group-paging,.tb-choice-buttons,.tb-format-help,.tb-tone-input,.tb-oral-option,.tb-hint-text,.tb-group-title [data-group-progress]{display:none!important}.textbook-reader .tb-practice-group[hidden]{display:block!important}.tb-reference-detail::details-content{content-visibility:visible;display:block}.tb-reference-detail>summary{font-size:14pt;color:#111;font-weight:600}.tb-reference-body{display:block!important}.tb-unit-page [id]{scroll-margin-top:0}}
.textbook-reader[data-ready=true] .tb-options{display:none}.tb-unit-page .tb-save-status{margin:4px 0 16px!important}
@media print{.textbook-reader[data-ready=true] .tb-options{display:block}.tb-save-status{display:none!important}}
.textbook-reader[data-ready=true].tb-grouped-view .tb-group-title{display:none}.tb-tools-answers{margin:12px 0 0!important}.textbook-reader[data-ready=true] .tb-practice>.tb-section-heading h2 .tb-caption{display:none}
@media print{.textbook-reader[data-ready=true].tb-grouped-view .tb-group-title{display:block}.textbook-reader[data-ready=true] .tb-practice>.tb-section-heading h2 .tb-caption{display:block}}
.tb-unit-page .tb-practice-group{scroll-margin-top:calc(var(--tb-header-offset,80px) + 100px)}
@media(max-width:1023px){.tb-unit-page .tb-practice-group{scroll-margin-top:calc(var(--tb-header-offset,64px) + 125px)}}
/* Match anchor clearance and the section tracker to the measured sticky bar. */
.tb-unit-page [id],.tb-unit-page .tb-practice-group{scroll-margin-top:var(--tb-anchor-offset,200px)}
@media print{.tb-unit-page [id],.tb-unit-page .tb-practice-group{scroll-margin-top:0}}
