[hidden]{display:none!important}
button:disabled{cursor:default;opacity:.55}
#ai-settings input[type="password"]{width:100%;border:1px solid #bfcfc1;border-radius:10px;padding:12px;background:#fff;color:var(--ink)}
#ai-settings select{width:100%}
.ai-check{display:flex;align-items:start;gap:9px;margin:17px 0;font-size:14px;line-height:1.6}
.ai-check input{margin-top:5px;width:17px;height:17px;flex-shrink:0}
.annotation-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #b5cfbd;background:#edf5ee;border-radius:14px;padding:15px;margin:16px 0}
.annotation-bar strong{font-size:14px}.annotation-bar p{margin:5px 0 0}.annotation-bar .actions{flex-shrink:0}
.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 225px;align-items:start;gap:18px}
.review-text{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:18px;white-space:pre-wrap;line-height:2.4;font-size:20px;overflow-wrap:anywhere}
.review-word{font:inherit;line-height:1.8;padding:0 2px;margin:0 1px;border:1px solid transparent;border-radius:5px;color:inherit;background:transparent}
.review-word.pos-noun{background:#dcecf7;color:#164d70}.review-word.pos-verb{background:#def1e3;color:#17603c}.review-word.pos-adjective{background:#f6e5ee;color:#873855}
.review-word.selected{outline:2px solid #286f57;outline-offset:1px}
.review-tools{position:sticky;top:130px;border:1px solid var(--line);border-radius:16px;background:var(--paper);padding:16px;max-height:calc(100vh - 220px);overflow-y:auto}
.review-tools h3{font-size:16px;margin-top:0}.review-chosen{font-size:23px;overflow-wrap:anywhere;white-space:pre-wrap}
.review-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.review-choices button{padding:8px 4px}
.review-tools .actions{gap:6px;margin-bottom:16px}.review-tools .actions button{padding:8px;min-height:38px;font-size:12px}
@media(max-width:700px){.annotation-bar{align-items:start;flex-direction:column}.annotation-bar .actions{gap:7px}.annotation-bar button{font-size:13px;padding:9px}.review-layout{grid-template-columns:1fr;padding-bottom:350px}.review-tools{position:fixed;left:18px;right:18px;bottom:82px;top:auto;max-height:38vh;z-index:20;box-shadow:0 -5px 18px #264e351c}.review-text{padding:16px}.review-chosen{margin:7px 0}.review-choices{grid-template-columns:repeat(4,1fr)}.review-tools .actions{margin-bottom:8px}}
.auth-wrap{max-width:500px;margin:40px auto}
.auth-wrap h1{font-size:30px;color:#1b4f42}
.auth-tabs{margin:22px 0 0}
.auth-submit{margin-top:22px;width:100%}
.import-panel{margin-top:22px}
.reader-controls .control-spacer{margin-top:18px}
.reader-controls .adjust{min-width:42px;min-height:40px;padding:6px;font-size:21px;line-height:1}
.reader-controls .control-spacer strong{min-width:42px;text-align:center}
.reading-card{align-items:flex-start;justify-content:flex-start}
.reading-content{max-width:860px}
.sentence.current{background:#f8df9b;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.child-mode .reader-controls{display:block}
.child-mode .reader-controls h3{font-size:17px}
.child-mode .reader-controls .control-spacer{justify-content:center}
@media(max-width:700px){.auth-wrap{margin:12px auto}.reader-controls .control-spacer{gap:8px}.reader-controls .control-spacer span{width:100%;font-weight:700}.reader-actions{display:grid;grid-template-columns:repeat(2,1fr)}.reader-actions button{width:100%}}

/* Reading controls remain available while a long article is scrolled. */
:root{--reading-size:20px}
.topbar,.child-mode .topbar{position:sticky;top:0;z-index:30;height:64px}
.topbar .brand{font-size:21px}
.topbar .brand-mark{height:38px;width:38px}
.reader-head{position:sticky;top:64px;z-index:25;min-height:52px;padding:8px 0;background:#f9f8f2;border-bottom:1px solid var(--line)}
.reader-head .nav-back{min-height:36px;padding:7px 12px;font-size:14px}
.reader-workspace{display:grid;grid-template-columns:minmax(0,1fr) 164px;gap:16px;align-items:stretch}
.reader-workspace .reading-card{margin:0;min-width:0;min-height:360px}
.reader-workspace .reader-side{position:sticky;top:128px;align-self:start;max-height:calc(100vh - 213px);overflow-y:auto;background:#fffdf9;border:1px solid var(--line);border-radius:18px;padding:11px;box-shadow:0 8px 20px #264e3512}
.reader-side .reader-actions{display:flex;flex-direction:column;gap:7px}
.reader-side .reader-actions button,.child-mode .reader-side .reader-actions button{width:100%;min-width:0;min-height:43px;padding:7px 4px;font-size:13px;line-height:1.2}
.reader-side .reader-actions button span{display:inline;font-size:18px;margin-right:5px}
.reader-side .reader-actions .primary{min-width:0}
.reader-side .reader-controls{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}
.reader-side .reader-controls h3{font-size:14px;margin:0 0 8px}
.reader-side .view-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.reader-side .view-buttons button{font-size:11px;padding:6px 0;min-width:0}
.side-adjust{border-top:1px solid var(--line);margin-top:9px;padding-top:8px;text-align:center;font-size:12px;font-weight:700}
.side-adjust>div{display:flex;justify-content:center;gap:7px;margin-top:5px}
.side-adjust .adjust{min-width:45px;min-height:35px;padding:3px}
.reading-content .reading-paragraph{margin:0 0 1.15em}
.reading-content .reading-paragraph:last-child{margin-bottom:0}
.reading-content .sentence{scroll-margin-top:130px}
.reading-content .sentence.current{background:#fff3d0}
.article-source{font-size:12px!important;line-height:1.5!important;color:#66746b!important;margin:2px 0 10px!important}
.textbook-note{display:inline-block;font-size:11px;line-height:1.5;color:#795728;background:#fff2d8;border-radius:5px;padding:2px 6px;margin:0 0 8px}
.reading-content .sentence.selectable{cursor:pointer;border-radius:6px}
.reading-content .sentence.selectable:hover{box-shadow:inset 0 -2px #809f91}
.reading-content .sentence.selectable:focus-visible{outline:2px solid #286f57;outline-offset:3px}
.pos-word{border-radius:4px;padding:1px 2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.pos-noun{background:#dcecf7;color:#164d70}
.pos-verb{background:#def1e3;color:#17603c}
.pos-adjective{background:#f6e5ee;color:#873855}
.reader-side .word-toggle-on{border-color:#568d73;background:#e6f3e9}
.pos-legend{display:flex;flex-wrap:wrap;gap:3px;margin-top:8px;font-size:11px}
.pos-legend button{border:1px solid transparent;padding:4px 6px;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer}
.pos-legend button.pos-off{background:#f1f1ee;color:#777;border-color:#d8d8d3;text-decoration:line-through}
.child-mode .reader-workspace .reading-card{min-height:43vh}
.child-mode .reader-side .reader-controls{display:block}
@media(max-width:700px){.reader-workspace{grid-template-columns:minmax(0,1fr) 105px;gap:9px}.reader-workspace .reading-card{padding:18px}.reader-workspace .reader-side{padding:7px;top:125px;max-height:calc(100vh - 210px)}.reader-side .reader-actions{display:flex;flex-direction:column}.reader-side .reader-actions button,.child-mode .reader-side .reader-actions button{font-size:11px;min-height:41px}.reader-side .reader-actions button span{font-size:16px;margin-right:2px}.reader-side .view-buttons{grid-template-columns:1fr}.reader-side .view-buttons button{font-size:12px}.side-adjust .adjust{min-width:36px}.reading-content{font-size:var(--reading-size)}}

/* 声音选择与试听 */
.setting-control{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.setting-control select{min-width:230px;max-width:260px}
.setting-control .soft{min-height:42px;padding:8px 14px}
@media(max-width:700px){.setting-control{justify-content:flex-start}.setting-control select{min-width:0;width:100%;max-width:none}}


/* 年级标签 / 教材关系标签 / 顶栏朗读提示（2026-10-30） */
.tag-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 4px}
.grade-tag{display:inline-block;border-radius:999px;padding:5px 11px;background:var(--green);color:#fff;font-size:12px;font-weight:800;letter-spacing:.02em}
.reader-head+.tag-row,.reader-head ~ .tag-row{margin:12px 0 2px}
.browser-hint{margin-left:auto;margin-right:10px;font-size:11px;color:#8b998f;white-space:nowrap;border-bottom:1px dotted #c8d3ca;padding-bottom:1px;cursor:help;letter-spacing:.02em}
@media(max-width:700px){.browser-hint{display:none}.tag-row{gap:5px}.grade-tag{font-size:11px;padding:4px 9px}}

/* 多音字标注：字正下方实心圆点（中文着重号位置），随字号缩放（2026-10-30） */
.poly{position:relative;cursor:help}
.poly::after{content:"";position:absolute;left:50%;bottom:-.34em;width:.34em;height:.34em;margin-left:-.17em;border-radius:50%;background:#9c4512}
.poly-hint{font-size:11px;line-height:1.55;color:#6b7a70;margin:7px 0 0;padding:7px 8px;background:#fbf3e6;border:1px solid #ecd9bc;border-radius:8px}
.poly-hint span{display:block}
.reader-side .poly-hint{font-size:10.5px;padding:6px}
.reading-content .poly:hover{background:#fdf0dc;border-radius:3px}
@media(max-width:700px){.poly-hint{font-size:10px;padding:5px}.poly-hint .poly-hint-more{display:none}}
