/* Chinese UI follows the reference screenshots: native sans-serif, no Songti/Fangsong fallback. */
:root{--wordbook-ui-font:-apple-system,BlinkMacSystemFont,system-ui,"PingFang SC","Microsoft YaHei",sans-serif}
/* V56: the uploaded V21 is a read-only layout reference. Runtime data/handlers stay V54. */
/* Restore the list's original font inheritance; parent's form-label column rules must not leak in. */
#studentLibrary[data-view=list]{font:16px/normal -apple-system,BlinkMacSystemFont,'PingFang SC',var(--wordbook-ui-font),serif}
#studentLibrary[data-view=list] .stage-word-list{font:16px -apple-system,BlinkMacSystemFont,'PingFang SC',var(--wordbook-ui-font),serif;line-height:normal}
#studentLibrary[data-view=list] .stage-word-list .sl-heading{min-height:42px;height:42px}
#studentLibrary[data-view=list] .stage-word-list .sl-search{flex-flow:row nowrap!important;line-height:normal;font:inherit}
#studentLibrary[data-view=list] .stage-word-list .sl-search input{width:0;min-width:0;margin:0;flex:1 1 0;align-self:auto}
#studentLibrary[data-view=list] .stage-word-list .stage-search-icon{width:22px;flex:0 0 22px;text-align:left}
#studentLibrary[data-view=list] .stage-word-list .stage-filter-actions,
#studentLibrary[data-view=list] .stage-word-list .stage-filter-actions button{height:27px!important;min-height:27px!important}
#studentLibrary[data-view=list] .stage-word-list .stage-advanced[open]{overflow:visible!important;max-height:none!important;height:auto!important}
#studentLibrary[data-view=list] .stage-word-list .stage-filter-body{padding:1px 2px 3px!important}
#studentLibrary[data-view=list] .stage-word-list .stage-legacy-line .stage-source-set button{min-width:0;min-height:25px!important;padding-block:2px!important}
#studentLibrary[data-view=list] .stage-word-list .stage-feature-group legend{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif}
#studentLibrary[data-view=list] .stage-word-list .stage-feature-mode-label{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;line-height:normal}
#studentLibrary[data-view=list] .stage-word-list .stage-result-head{height:32px;min-height:32px!important}
#studentLibrary[data-view=list] .stage-word-list .stage-sort-picker{height:27px}
#studentLibrary[data-view=list] .stage-word-list .sl-foot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#studentLibrary[data-view=list] .stage-word-list .sl-course-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#studentLibrary[data-view=list] .stage-word-list .stage-result-box{flex:1 1 0;min-height:0}
/* Match the original full rows and dynamic scroll thumb, without shrinking the text. */
#studentLibrary[data-view=list] .stage-word-list .sl-list-record{flex:none;height:var(--wordlist-row-height,61px);min-height:var(--wordlist-row-height,61px)}
#studentLibrary[data-view=list] .stage-word-list .stage-word-main>b{line-height:1.15}
/* The safe area is solid night. Paint only the scene below it; no change to shelf/label/card geometry. */
html:has(body.student-active),body.student-active{background:#170b4f!important}
#studentLibrary[data-view=shelf]{isolation:isolate;background-image:none!important;background-color:transparent!important}
#studentLibrary[data-view=shelf]::before{content:'';position:absolute;inset:env(safe-area-inset-top,0px) 0 0;z-index:-1;background:#170b4f url("student-ui/assets/shelf_library_bg_v22.b6a3105a39430cc5b.webp") center top/cover no-repeat;pointer-events:none}
/* Original list paper stays below the status edge, including its overflowing upper roll. */
#studentLibrary[data-view=list]{clip-path:inset(env(safe-area-inset-top,0px) 0 0 0);background:#170b4f!important}
/* These immersive pages use their own back path. Testing tools remain on the native scene pages. */
body.student-active[data-student-library=open] #modeSwitch,
body.student-active[data-student-library=open] #integrationNotice{display:none!important}

/* Product UI never displays an internal deployment/testing banner. Errors and data conflicts remain actionable. */
#integrationNotice{display:none!important}
