:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#1d2939;background:#f6f8fb;font-synthesis:none;-webkit-tap-highlight-color:transparent}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:default}a{color:#235d86}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8bc0de;outline-offset:1px}
.shell{max-width:680px;margin:auto;min-height:100svh;background:#f6f8fb;padding-bottom:calc(95px + env(safe-area-inset-bottom))}.header{padding:calc(22px + env(safe-area-inset-top)) 22px 18px;display:flex;justify-content:space-between;align-items:center}.eyebrow{letter-spacing:.17em;font-size:10px;color:#728ca4;font-weight:800}.header h1{margin:4px 0 0;font-size:27px;letter-spacing:-.025em}
main{padding:0 16px 20px}h2{font-size:19px;margin:0 0 12px}h3{font-size:16px;margin:0 0 7px}.intro{color:#66788a;font-size:13px;line-height:1.7;margin:2px 0 17px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:24px 0 10px}.section-heading h2{margin:0}.muted{color:#697b8c}.small{font-size:12px}.tiny{font-size:11px}.card{background:#fff;border:1px solid #e7edf3;border-radius:18px;padding:17px;box-shadow:0 3px 15px rgba(34,71,102,.035);margin:0 0 12px}.subtle{background:#edf3f7;border-radius:15px;padding:15px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stat{background:#fff;border:1px solid #e7edf3;border-radius:16px;padding:17px 10px}.stat strong{display:block;color:#245d80;font-size:26px}.stat span{color:#687b8a;font-size:12px}
.btn{border:0;border-radius:12px;padding:11px 15px;font-weight:650;background:#315f7b;color:white;display:inline-flex;gap:7px;justify-content:center;align-items:center;min-height:42px}.btn.secondary{background:#e8f0f6;color:#285b7a}.btn.ghost{background:#fff;border:1px solid #d9e3ec;color:#41617a}.btn.warn{background:#fff0ed;color:#a3483d}.btn.block{width:100%}.btn.smallbtn{min-height:31px;padding:6px 9px;font-size:12px;border-radius:9px}.actions{display:flex;gap:8px;flex-wrap:wrap}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tool-card{background:#fff;border:1px solid #e5edf3;border-radius:16px;padding:16px;text-align:left;min-height:111px;color:#233a50}.tool-card b{display:block;margin:10px 0 3px}.tool-card span{font-size:12px;color:#73879a}.tool-icon{font-size:22px;background:#eef5f9;color:#356d8a;border-radius:11px;display:inline-grid;place-items:center;width:34px;height:34px}
.field{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}.field label{font-size:12px;color:#556e81;font-weight:650}.field input,.field select,.field textarea,.search{background:#fff;width:100%;min-height:43px;border:1px solid #d6e2ea;border-radius:11px;color:#213547;padding:10px 12px}.field textarea{min-height:116px;resize:vertical;line-height:1.6}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.search-bar{margin-bottom:12px}.filters{display:flex;gap:8px;overflow:auto;padding:2px 0 12px;scrollbar-width:none}.chip{border:1px solid #dde6ed;background:white;padding:8px 13px;border-radius:999px;white-space:nowrap;color:#527087;font-size:13px}.chip.selected{border-color:#315f7b;background:#315f7b;color:#fff}.count{background:#e9f1f7;color:#406b85;padding:5px 8px;border-radius:999px;font-weight:700;font-size:11px}
.word-row{display:flex;justify-content:space-between;gap:6px;align-items:flex-start;padding:14px 0;border-bottom:1px solid #eff3f6}.word-row:last-child{border-bottom:0}.word-info{min-width:0;flex:1}.word-head{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap}.word-head b{font-size:17px;color:#1c3650;overflow-wrap:anywhere}.word-head i{font-size:11px;font-style:normal;color:#728799}.word-meaning{margin:5px 0 8px;color:#526778;font-size:13px;line-height:1.55}.tags{display:flex;gap:4px;flex-wrap:wrap}.tag{font-size:10px;background:#eef4f7;color:#57768b;border-radius:5px;padding:3px 6px}.tag.error{background:#fff1ea;color:#b05236}.tag.good{background:#eaf6f0;color:#317959}.tag.feature{background:#e9eef8;color:#436a9c}.row-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.row-actions button{min-width:52px}.empty{padding:32px 16px;text-align:center;color:#8494a0;font-size:14px}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;max-width:680px;margin:auto;background:rgba(255,255,255,.96);border-top:1px solid #e5ecf1;box-shadow:0 -6px 20px #d8e3ea44;padding:7px 3px calc(9px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;z-index:10;backdrop-filter:blur(16px)}.nav-button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:2px;color:#8597a5;font-size:11px;min-width:55px;padding:4px}.nav-button.active{color:#296484;font-weight:800}.nav-ico{font-size:22px;height:27px;line-height:27px}
.review-prompt{text-align:center;padding:26px 10px;background:#f1f6fa;border-radius:14px;margin:12px 0}.review-prompt .meaning{font-size:32px;font-weight:750;line-height:1.55}.review-prompt .caption{color:#71889a;font-size:12px}.answer{font-size:21px;text-align:center;letter-spacing:.04em}.result{padding:13px 16px;border-radius:12px;background:#edf6ef;color:#266349;font-weight:650;margin:12px 0}.result.incorrect{background:#fff0eb;color:#ac4f37}.progressbar{height:7px;background:#e4ecf1;border-radius:99px;overflow:hidden;margin:8px 0 18px}.progressbar > span{display:block;height:100%;background:#5d93b3;border-radius:99px}.display-preview{width:min(100%,330px);display:block;margin:8px auto 18px;border:1px solid #d5dfe6;border-radius:5px;box-shadow:0 5px 17px #465b7033;background:white}.list-compact{font-size:12px;line-height:1.8;color:#586f82}.mini-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:14px 0}.mini-word{border:1px solid #e1e9ee;background:#fff;border-radius:10px;padding:9px;display:flex;justify-content:space-between;align-items:center;gap:4px;font-size:12px}.mini-word b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-word button{border:0;background:#eaf1f6;color:#41687f;border-radius:7px;min-width:24px;height:26px}
#notice{display:none;position:fixed;top:calc(8px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:40;max-width:calc(100% - 20px);background:#234d65;color:white;padding:10px 15px;border-radius:12px;box-shadow:0 4px 20px #0002;font-size:12px;text-align:center}#notice.show{display:block}
.modal-shade{position:fixed;inset:0;background:#152f43aa;z-index:30;display:flex;align-items:flex-end;justify-content:center}.modal{background:#fff;width:min(100%,680px);max-height:89svh;overflow:auto;padding:18px 19px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.close{border:0;background:#eef3f7;border-radius:9px;width:34px;height:34px;font-size:19px;color:#4a6577}.loading{text-align:center;padding:65px 10px;color:#607a8e}
@media(min-width:700px){.shell{border-left:1px solid #e6edf1;border-right:1px solid #e6edf1}.modal-shade{align-items:center}.modal{border-radius:22px;max-height:88vh}}
/* v2：学习记录的高频动作直接展示在词条列表，便于单手点击 */
.word-row{display:block;padding:13px 0 15px}
.word-row .word-meaning{margin:4px 0 7px}
.quick-actions{display:grid;grid-template-columns:minmax(88px,1.15fr) minmax(100px,1.22fr) minmax(53px,.70fr) 37px;gap:6px;margin-top:10px;width:100%}
.quick-btn{min-height:37px;border:1px solid #dbe6ed;border-radius:10px;background:#edf3f7;color:#315c79;font-size:12px;font-weight:680;padding:6px 5px;white-space:nowrap}
.quick-btn.wrong{background:#fff1eb;color:#a9482a;border-color:#f2d9cd}
.quick-btn.wrong strong{display:inline-block;margin-left:3px;background:#f9dccc;color:#913b22;padding:2px 5px;border-radius:6px;min-width:20px}
.quick-btn.known{background:#e4f3eb;color:#267451;border-color:#badbc7}
.quick-btn.minor{background:#fff;color:#57768b}
.quick-btn.icon-edit{font-size:20px;background:white;color:#607c90}
@media(max-width:365px){.quick-actions{grid-template-columns:minmax(82px,1.1fr) minmax(95px,1.2fr) minmax(49px,.65fr) 34px;gap:4px}.quick-btn{font-size:11px;padding:5px 2px}.quick-btn.icon-edit{font-size:18px}}

/* v3: 两行式紧凑词条。所有操作无需进入编辑页 */
.word-row {display:block;padding:10px 0 11px;border-bottom:1px solid #edf1f4}
.word-row .word-top {display:flex;align-items:center;gap:7px;min-width:0;margin-bottom:6px}
.word-row .word-top-main {display:flex;align-items:baseline;flex:1;gap:6px;min-width:0;white-space:nowrap;overflow:hidden}
.word-row .word-term {color:#1b3d58;font-size:16px;max-width:48%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}
.word-row .word-pos {font-size:10px;color:#8b9aa7;white-space:nowrap;flex-shrink:0}
.word-row .word-meaning {margin:0;min-width:0;flex:1;font-size:12px;line-height:1.3;color:#526778;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.word-meta {display:flex;align-items:center;flex-shrink:0;gap:4px}
.word-meta .tag {font-size:10px;padding:3px 5px}
.feature-dot {font-size:11px;color:#547caa}
.word-row .quick-actions {display:grid;grid-template-columns:1fr 1.2fr .75fr 34px;gap:6px;margin:0}
.word-row .quick-btn {min-height:33px;line-height:1.2;border-radius:9px;font-size:12px;padding:5px 4px}
.word-row .quick-btn.icon-edit {font-size:17px}
.word-row .quick-btn.wrong strong {margin-left:2px;padding:2px 5px}
@media(max-width:380px) {
 .word-row .word-term{font-size:15px;max-width:43%}
 .word-row .quick-actions{gap:4px;grid-template-columns:1fr 1.1fr .7fr 32px}
 .word-row .quick-btn {font-size:11px}
}

/* V4: 在两行式卡片的操作行增加“复习+1”，仍保留紧凑触控布局。 */
.word-row .quick-actions {grid-template-columns:minmax(0,1.14fr) minmax(0,1.05fr) minmax(0,1.0fr) minmax(0,.68fr) 31px;gap:5px;margin:0}
.word-row .quick-btn {min-width:0;min-height:36px;font-size:11px;padding:5px 2px;white-space:nowrap}
.word-row .quick-btn strong {font-variant-numeric:tabular-nums}
.word-row .quick-btn.reviewed {background:#e9f2fa;color:#285f84;border-color:#d0e2f0}
.word-row .quick-btn.reviewed strong {display:inline-block;background:#d6e7f4;color:#204e70;padding:2px 4px;border-radius:5px;min-width:17px;margin-left:1px}
.word-row .quick-btn.wrong strong {padding:2px 4px;margin-left:1px;min-width:17px}
.word-row .quick-btn.icon-edit {font-size:16px}
@media(max-width:380px){
  .word-row .quick-actions{grid-template-columns:minmax(0,1.16fr) minmax(0,1.05fr) minmax(0,1fr) minmax(0,.68fr) 30px;gap:3px}
  .word-row .quick-btn{font-size:10px;padding:4px 1px}
}

/* V4: 仅两个互斥记录按钮＋上屏＋编辑，掌握状态放在词条信息行 */
.word-row .quick-actions{grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,.75fr) 32px;gap:6px}
.word-row .quick-btn{font-size:12px;min-height:37px}
.word-row .quick-btn.correct{background:#eaf6f1;color:#287358;border-color:#c9e5d9}
.word-row .quick-btn.correct strong{display:inline-block;font-variant-numeric:tabular-nums;background:#d8eee3;color:#22684f;padding:2px 5px;border-radius:5px;min-width:17px;margin-left:1px}
.word-row .word-meta{display:flex;align-items:center;gap:3px;flex-shrink:0}
.word-row .status-chip{font-size:10px;background:#eff2f5;color:#60788b;border:0;border-radius:5px;padding:4px 5px;white-space:nowrap;cursor:pointer}
.word-row .status-chip.mastered{background:#dff1e7;color:#2c7553}
@media(max-width:365px){.word-row .quick-actions{grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,.7fr) 30px;gap:3px}.word-row .quick-btn{font-size:11px}}

/* V5: dictation/test distinct from Kindle display */
.dictation-list{display:flex;flex-direction:column;gap:0}
.dictation-item{padding:12px 0;border-bottom:1px solid #e9eff3;display:flex;gap:8px;align-items:center;justify-content:space-between}
.dictation-item:last-child{border:0}
.dictation-term{display:flex;min-width:0;gap:9px;align-items:flex-start;flex:1}
.dictation-number{display:inline-grid;place-items:center;width:22px;height:22px;flex-shrink:0;border-radius:7px;background:#eff4f8;color:#668499;font-size:11px;font-weight:700}
.dictation-question{min-width:0;flex:1}
.dictation-hint{font-size:14px;font-weight:650;color:#304d62;line-height:1.3}
.dictation-hint small{font-size:11px;color:#899ba9;font-weight:400}
.dictation-answer{display:block;color:#1e7355;font-size:14px;margin-top:2px}
.dictation-buttons{display:flex;gap:5px;align-items:center;flex-shrink:0}
.dictation-mark{font-size:12px;font-weight:700;min-width:53px;min-height:34px;padding:6px 8px;border-radius:9px;border:1px solid #dae5eb;background:#fff}
.dictation-mark.correct{color:#29785d}.dictation-mark.wrong{color:#aa563b}
.dictation-mark.correct.selected{background:#d9f0e5;border-color:#99cdb7}
.dictation-mark.wrong.selected{background:#ffebe3;border-color:#e9b4a1}
.dictation-clear{font-size:11px;border:0;padding:6px 2px;background:transparent;color:#788b99}
.quick-btn.today-selected.correct{background:#cce9dc;border:2px solid #7fc4a7}
.quick-btn.today-selected.wrong{background:#ffdfd4;border:2px solid #df977b}
@media(max-width:360px){.dictation-hint{font-size:13px}.dictation-mark{min-width:44px;padding:5px}.dictation-item{gap:4px}.dictation-buttons{gap:3px}}

/* V6: status is read-only; edit icon is the explicit manual override */
.word-row .status-chip {display:inline-block;cursor:default;user-select:none}
.word-row .status-chip.error {background:#ffebe2;color:#a7523a}

/* V7: searchable, source-dependent vocabulary scope */
.source-chooser{margin:12px 0 9px;align-items:start}
.searchable-scope{position:relative}
.searchable-scope input{width:100%;box-sizing:border-box}
.section-suggestions{position:absolute;z-index:15;top:calc(100% + 5px);left:0;right:0;background:white;border:1px solid #dae5ed;border-radius:12px;box-shadow:0 9px 22px rgba(22,53,75,.13);max-height:250px;overflow-y:auto;padding:5px}
.section-suggestions[hidden]{display:none}
.section-option{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:7px;padding:11px;font:inherit;color:#234559}
.section-option:focus,.section-option:active{background:#eaf2f7}
.selected-scope{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:#315b75;font-size:13px}
.selected-scope button{background:none;border:0;text-decoration:underline;color:#315b75;font:inherit;padding:5px}

/* V7.3 · 批次管理 */
.batch-manager{display:flex;flex-direction:column;gap:8px;}
.batch-line{border:1px solid #e0e6eb;border-radius:10px;padding:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.batch-detail{display:flex;flex-direction:column;gap:3px;min-width:0;overflow-wrap:anywhere;}
.batch-detail b{font-size:13px;}
.batch-actions{display:flex;gap:6px;flex-shrink:0;}
.batch-actions .btn{font-size:12px;padding:8px;}
@media(max-width:360px){.batch-line{align-items:flex-start;flex-direction:column}.batch-actions{align-self:flex-end;}}

.recent-batch{margin-bottom:12px;background:#f7f9fc;}

/* V7.4: 单选项在选择框内显示；清除按钮内嵌，无重复选中标签 */
.searchable-scope input{padding-right:42px}
.scope-clear-inline{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:8px;background:#eaf2f7;color:#315b75;font-size:24px;line-height:1;cursor:pointer;z-index:2}
.scope-clear-inline[hidden]{display:none}
.batch-history{margin-top:12px}
.batch-history-toggle{width:100%;border:1px solid #d7e3eb;border-radius:10px;padding:12px 14px;background:#f5f9fc;color:#315b75;font:inherit;font-weight:650;display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.batch-history-panel{margin-top:10px}
.batch-history-panel label{display:block;font-size:13px;margin-bottom:6px;color:#5e7589}
.batch-history-panel input{width:100%;box-sizing:border-box;border:1px solid #d2dfe8;border-radius:10px;padding:12px;font:inherit;color:#2f5066;background:white}
#batchHistoryResults .btn{margin-top:10px}

/* V7.5: 明确课程类型选择 + 独立填写编号，不把数字自动带入下一批。 */
.section-entry{display:flex;align-items:stretch;gap:8px;min-width:0}
.field .section-entry select{flex:0 0 115px;width:115px;min-width:0;background:#edf4f8;color:#315f7b;font-weight:650}
.field .section-entry input{min-width:0;flex:1;width:100%}
.field[hidden]{display:none !important}
@media(max-width:360px){.field .section-entry select{flex-basis:100px;width:100px}.section-entry{gap:6px}}

/* V7.6: 词性/释义并排；课程标识显示最近导入的册别与主课程标签。 */
.word-edit-details{grid-template-columns:minmax(108px,.85fr) minmax(0,1.5fr)}
.word-edit-details .field{min-width:0}
.word-edit-details .extra-pos{margin-top:5px;font-size:13px}
.word-edit-details .extra-pos[hidden]{display:none!important}
.word-row .word-meta{min-width:0}
.word-row .word-meta .tag{display:block;max-width:146px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.word-row .status-chip{cursor:default}
@media(max-width:385px){
 .word-edit-details{grid-template-columns:minmax(100px,.8fr) minmax(0,1.5fr)}
 .word-row .word-meta .tag{max-width:121px}
}

/* V7.10: 可复用的自定义课程前缀，编号始终独立输入 */
.field .new-course-prefix{display:block;margin-top:7px;min-height:43px}
.field .new-course-prefix[hidden]{display:none}
.field .section-entry select{flex-basis:132px;width:132px}
@media(max-width:360px){.field .section-entry select{flex-basis:117px;width:117px}}

/* V7.11: long meanings wrap, a compact primary-course chip expands every source/linked Week. */
.word-row .word-top {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:5px 8px;}
.word-row .word-top-main {white-space:normal;overflow:visible;flex-wrap:wrap;align-content:start;align-items:baseline;row-gap:2px;}
.word-row .word-term {max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;text-overflow:clip;}
.word-row .word-meaning {min-width:0;flex:1 1 95px;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.45;}
.word-row .word-meta {flex-wrap:wrap;max-width:184px;gap:4px;justify-content:flex-end;}
.word-row .word-meta .source-tag-btn {max-width:182px;display:inline-block;white-space:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip;background:#e9f3fa;color:#245a7e;border:1px solid #cbdfec;border-radius:7px;padding:5px 7px;line-height:1.25;font-size:11px;font-weight:650;text-align:left;cursor:pointer;}
.word-row .word-meta .source-tag-btn:focus-visible{outline:2px solid #4695be;outline-offset:2px;}
.source-detail {border:1px solid #dce7ee;background:#f7fafc;padding:9px 11px;margin:4px 0 9px;border-radius:10px;}
.source-detail-title {font-size:12px;font-weight:700;color:#365a74;margin-bottom:5px;}
.source-detail-item {display:flex;flex-direction:column;gap:2px;padding:6px 0;border-bottom:1px solid #e4edf2;font-size:12px;color:#375d77;}
.source-detail-item:last-child{border:0;padding-bottom:0}
.source-detail-item span {color:#627c8f;overflow-wrap:anywhere;}
.existing-sources-editor{border:1px solid #dce7ee;border-radius:12px;padding:12px;margin:12px 0;background:#f8fbfd;}
.existing-sources-editor h3{margin:0 0 5px;font-size:15px;}
.existing-source-editor-row {padding:10px 0;border-bottom:1px solid #e1eaf0;}
.existing-source-editor-row:last-child{border-bottom:0;}
.source-editor-title {font-weight:650;font-size:13px;color:#315a76;margin-bottom:7px;}
.existing-source-editor-row .field {margin:0;}
@media(max-width:390px){.word-row .word-meta {max-width:147px}.word-row .word-meta .source-tag-btn{max-width:147px;font-size:10px}.word-row .word-meaning {flex-basis:80px;}}

/* V7.12: 乐读年份/季节/Week-Day/编号始终一行，适合iPhone窄屏 */
.term-row{display:grid;grid-template-columns:76px minmax(85px,1fr) 57px 65px;gap:5px;align-items:center;width:100%;min-width:0}
.field .term-row select,.field .term-row input{width:100%;min-width:0;min-height:43px;height:43px;padding:9px 6px;font-size:13px;border-radius:10px}
.term-unit{display:flex;align-items:center;justify-content:center;font-size:11px;white-space:nowrap;color:#46647a;background:#eef4f8;border-radius:9px;height:43px;overflow:hidden}
@media(max-width:370px){.term-row{grid-template-columns:70px minmax(78px,1fr) 54px 59px;gap:4px}.field .term-row select,.field .term-row input{font-size:12px;padding:7px 3px}.term-unit{font-size:10px}}

/* V7.13: 教材册别缩窄、进度加宽；单词搜索可清空 */
.source-chooser{grid-template-columns:minmax(0,0.72fr) minmax(0,1.55fr)}
.source-chooser > .field{min-width:0}
.source-chooser .searchable-scope input{font-size:14px}
.keyword-wrap{position:relative;margin-bottom:12px}
.keyword-wrap .search-bar{margin:0;padding-right:44px}
.keyword-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;border-radius:7px;background:#edf3f7;color:#355f7a;width:32px;height:32px;font-size:23px;cursor:pointer}
.keyword-clear[hidden]{display:none}
.source-count-field{max-width:200px}
.backup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}
.backup-grid .btn{width:100%;min-width:0;text-align:center;white-space:normal;line-height:1.4;min-height:45px;justify-content:center}
.backup-check{margin-top:4px}
@media(max-width:360px){.source-chooser{grid-template-columns:minmax(0,.76fr) minmax(0,1.48fr)}.source-chooser .field select,.source-chooser .field input{font-size:13px}.backup-grid .btn{padding:10px 5px;font-size:12px}}

/* V7.14: 单独滚动内容区，导航位于独立底部布局区域，解决iOS滚动时漂移及遮挡 */
html,body{height:100%;overflow:hidden}
.shell{height:100vh;height:100dvh;min-height:0;padding-bottom:0;display:flex;flex-direction:column;overflow:hidden}
.app-scroll{min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scrollbar-width:thin}
.app-scroll main{padding-bottom:32px}
.bottom-nav{position:relative;bottom:auto;left:auto;right:auto;width:100%;max-width:none;flex:0 0 auto;margin:0;isolation:isolate}
/* 来源数量和排序放一行；保证排序仍有足够文字宽度 */
.source-sort-row{grid-template-columns:minmax(0,.7fr) minmax(0,1.45fr);gap:10px;margin-bottom:2px}
.source-sort-row > .field{min-width:0}
.source-sort-row .source-count-field{max-width:none}
.source-sort-row select{min-width:0;text-overflow:ellipsis;padding-right:20px;font-size:13px}
@media(max-width:370px){.source-sort-row{grid-template-columns:minmax(0,.8fr) minmax(0,1.55fr);gap:7px}.source-sort-row select{padding-left:8px;font-size:12px}}

.pending-course-hint{color:#a04b27;font-weight:700;}

/* V7.17: 课程+乐读学期匹配展示；窄册别宽课时，保持手机原始缩放 */
.source-chooser{grid-template-columns:minmax(113px,.78fr) minmax(0,1.65fr);gap:8px}
.study-scope-row{grid-template-columns:minmax(113px,.78fr) minmax(0,1.65fr);gap:8px}
.study-scope-row>.field,.source-chooser>.field{min-width:0}
.study-scope-row select,.source-chooser select{min-width:0;text-overflow:ellipsis}
/* iOS Safari 输入字号至少16px，避免聚焦后自动把整个网页放大 */
.source-chooser input,.source-chooser select,.study-scope-row select,.search-bar{font-size:16px!important}
@media(max-width:370px){
 .source-chooser{grid-template-columns:minmax(105px,.75fr) minmax(0,1.65fr);gap:6px}
 .study-scope-row{grid-template-columns:minmax(105px,.75fr) minmax(0,1.65fr);gap:6px}
 .source-chooser input,.source-chooser select,.study-scope-row select{padding-left:8px;padding-right:14px;font-size:16px!important}
}

/* V7.17 selected course: native 16px controls stay accessible, visual text compact enough for 2 columns. */
.compact-course-select{position:relative;width:100%;min-width:0}
.compact-course-select select{font-size:16px!important;color:transparent!important;width:100%;position:relative;z-index:1;background:transparent}
.compact-course-text{position:absolute;left:11px;right:30px;top:50%;transform:translateY(-50%);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#22394a;font-size:14px;line-height:1.35;z-index:2}
/* V7.41.73: Selected course is shown by the native input value only.
   A secondary absolutely-positioned copy caused duplicate "Unit 4" text on iOS. */
.searchable-scope #sectionSearch{color:#22394a;min-width:0;}

/* Chevron remains visible after native selected text is visually replaced. */
.compact-course-select::after{content:'⌄';position:absolute;right:12px;top:50%;transform:translateY(-56%);pointer-events:none;color:#30495b;font-size:20px;line-height:1;font-weight:650;z-index:3}

/* V7.20: 默写动作不拥挤，下载PDF入口位于清单操作首位 */
.dictation-tools{display:flex;flex-wrap:wrap;gap:7px}
.dictation-tools .btn{white-space:nowrap}
@media(max-width:380px){.dictation-tools .btn{font-size:12px;padding:9px 10px}}

/* V7.21: four compact indicators plus quiet progress milestone. */
.stats-four{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.stats-four .stat{padding:12px 14px;min-width:0}
.stats-four .stat strong{font-size:25px;line-height:1.25}
.stats-four .stat span{display:block;font-size:12px;line-height:1.4;margin-top:3px}
.stats-four .stat-mastered strong{color:#327c6a}
.mastery-progress{background:#fff;border:1px solid #e6edf2;border-radius:14px;padding:11px 14px;margin-top:9px}
.mastery-line{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:#355c71}
.mastery-line b{font-size:13px}
.mastery-line span{font-variant-numeric:tabular-nums}
.mastery-track{margin:8px 0;height:7px;border-radius:99px;background:#e8efee;overflow:hidden}
.mastery-track span{height:100%;background:#66ad90;display:block;border-radius:99px;transition:width .2s ease}
.mastery-note{font-size:11px;color:#637f79;margin:0;line-height:1.5}
@media(min-width:560px){.stats-four{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:340px){.stats-four .stat{padding:10px 11px}}

/* V7.22：首页只放概览，成长与复习统计从独立页面查看 */
.stats-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:13px 16px;margin:10px 0 17px;border:1px solid #dce8ef;border-radius:13px;background:white;color:#326987;font-size:13px;font-weight:750;text-align:left;cursor:pointer}
.stats-entry span:last-child{font-size:22px;line-height:1}
.stats-page-header{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:11px}
.stats-page-header .btn{padding:9px 12px;font-size:13px;white-space:nowrap}
.stats-detail-card{margin-bottom:12px}
.stats-detail-card h3{margin:0 0 13px}
.stats-mastered{display:flex;align-items:baseline;gap:8px;color:#286e5b;margin:10px 0}
.stats-mastered strong{font-size:35px;line-height:1}
.stats-mastered span{font-size:12px;color:#647f7b}
.status-distribution{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}
.status-stat{border:1px solid #e4edf1;background:#f7fafc;border-radius:10px;min-width:0;text-align:center;padding:10px 3px}
.status-stat span{display:block;color:#61798a;font-size:11px;white-space:nowrap}
.status-stat b{font-size:22px;color:#2c576e}
.weekly-activity{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:6px;margin:10px 0 12px}
.activity-day{display:flex;flex-direction:column;align-items:center;gap:3px;color:#71899a;font-size:10px;min-width:0}
.activity-bars{display:flex;align-items:end;justify-content:center;gap:2px;width:100%;height:86px;border-bottom:1px solid #dce8ed}
.activity-bars>span{width:9px;border-radius:4px 4px 0 0;min-height:0}
.activity-right{background:#80baa5}.activity-wrong{background:#eeb09b}
.activity-day small{font-size:10px}
.schedule-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:7px 0 12px}
.schedule-totals>div{background:#f2f7fa;border-radius:9px;display:flex;flex-direction:column;align-items:center;padding:10px 4px;gap:2px}
.schedule-totals strong{font-size:22px;color:#315d78}.schedule-totals span{font-size:11px;color:#718696}
.stats-review-list{border-top:1px solid #e5edf1;margin:10px 0}
.stats-review-list>div{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f4}
.stats-review-list b{font-size:14px;color:#254b65;overflow-wrap:anywhere}.stats-review-list span{font-size:11px;color:#8494a0;text-align:right}
@media(max-width:355px){.status-distribution{gap:4px}.status-stat span{font-size:10px}.activity-bars>span{width:7px}.stats-page-header .muted{font-size:10px}}

/* V7.23: 统计明细跳词库、学习状态单独选择、成就每100词升级 */
.level-tag{display:inline-flex;vertical-align:middle;align-items:center;padding:4px 9px;border-radius:30px;background:#eaf5ef;color:#246749;font-size:12px;font-weight:750;margin-left:5px}
.stats-drilldown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}
.stats-drill{min-width:0;border:1px solid #dce7ee;border-radius:11px;background:#f8fbfd;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;padding:12px 3px;color:#335a73;cursor:pointer}
.stats-drill b{font-size:23px;color:#286e5b;font-variant-numeric:tabular-nums;line-height:1.2}
.stats-drill span{font-size:11px;white-space:nowrap}
.stats-drill span span{color:#7695a9;font-size:14px}
.learning-status-row{margin:0 0 11px}
.learning-status-row .status-control{display:flex;gap:8px;align-items:stretch}
.learning-status-row select{width:100%;min-width:0;font-size:16px}
.learning-status-row .status-clear{font-size:12px;min-width:72px;padding:6px 9px;white-space:nowrap}
/* 三项默写操作必须同一行；PDF放右侧，按钮字号适配iPhone */
.dictation-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;min-width:0}
.dictation-tools .btn{min-width:0;width:100%;white-space:nowrap;overflow:hidden;padding:10px 5px;font-size:13px;min-height:43px;gap:0}
@media(max-width:375px){.dictation-tools{gap:5px}.dictation-tools .btn{font-size:12px;padding:9px 3px}}
@media(max-width:335px){.dictation-tools .btn{font-size:11px}}

.library-more{text-align:center;padding:14px 0 4px}.library-more .btn{width:100%;font-size:13px}

/* V7.24: learning status and last dictation result are independent filters */
.learning-review-filter-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:4px 0 10px}
.learning-review-filter-row>.field{min-width:0;margin:0}
.learning-review-filter-row select{width:100%;min-width:0;font-size:16px;padding-left:10px;padding-right:24px;overflow:hidden;text-overflow:ellipsis}
.filter-label-head{display:flex;align-items:center;justify-content:space-between;gap:3px;min-height:19px}
.filter-label-head label{font-size:12px;white-space:nowrap}
.filter-clear-link{background:transparent;border:0;padding:1px 2px;color:#336b8b;font-size:11px;white-space:nowrap;text-decoration:underline}
@media(max-width:355px){.learning-review-filter-row{gap:7px}.learning-review-filter-row select{padding-left:7px;font-size:16px}}

/* V7.25: 默写、上屏共享词库细筛维度，在窄屏中按两列排列。 */
.shared-word-filters{margin:10px 0 14px;padding:10px 11px;border:1px solid #dbe7ee;border-radius:12px;background:#f8fbfd;min-width:0}
.shared-word-filters>summary{cursor:pointer;color:#32617d;font-size:14px;font-weight:700;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px}
.shared-word-filters>summary::-webkit-details-marker{display:none}
.shared-word-filters>summary:after{content:'⌄';font-size:18px;flex-shrink:0}
.shared-word-filters[open]>summary:after{content:'⌃'}
.shared-filter-note{font-size:11px;color:#7b909e;font-weight:400;margin-left:auto;text-align:right}
.shared-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:13px 0 8px}
.shared-filter-grid>.field{min-width:0;margin:0}
.shared-filter-grid label{font-size:12px;white-space:nowrap}
.shared-filter-grid select{font-size:16px;min-width:0;width:100%;padding-left:9px;padding-right:21px;overflow:hidden;text-overflow:ellipsis}
.shared-word-filters .small{margin:6px 0 9px}
.shared-filter-reset{font-size:12px;padding:8px 11px;min-height:36px}
@media(max-width:355px){.shared-filter-note{font-size:10px}.shared-filter-grid{gap:7px}.shared-filter-grid select{padding-left:7px}}

.shared-filter-keyword{margin:12px 0 0;min-width:0}
.shared-filter-keyword input{font-size:16px;min-width:0}

/* V7.26: 统计作为独立的第六项底部导航。六项均匀分布，不横向滚动。 */
.bottom-nav{justify-content:space-between;gap:0;padding-left:max(3px,env(safe-area-inset-left));padding-right:max(3px,env(safe-area-inset-right))}
.bottom-nav .nav-button{flex:1 1 0;min-width:0;max-width:none;min-height:48px;padding:4px 1px;white-space:nowrap;font-size:11px}
.bottom-nav .nav-ico{font-size:21px}
@media(max-width:365px){.bottom-nav .nav-button{font-size:10px;padding:4px 0}.bottom-nav .nav-ico{font-size:20px}}
.stats-library-back{display:inline-flex;align-items:center;border:1px solid #d8e7f0;background:#eaf2f7;color:#285b7a;font-weight:700;border-radius:10px;min-height:40px;padding:9px 13px;margin:0 0 13px;font-size:13px}

/* V7.27: every statistic that represents a set of words is a real keyboard-accessible button. */
.stats-tap{font-family:inherit;appearance:none;-webkit-appearance:none;cursor:pointer;text-align:inherit;color:inherit}
.stats-four .stats-tap{border:1px solid #e2eaf1;background:white;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;border-radius:14px}
.stats-tap:focus-visible,.mastery-num-link:focus-visible,.inline-stat-link:focus-visible{outline:3px solid #80b8d9;outline-offset:2px}
.stats-tap:active{background:#eaf3f8}
.stats-tap:disabled{cursor:default;opacity:.55}
.status-stat.stats-tap{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px}
.schedule-totals>button{border:0;background:#f2f7fa;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 3px;gap:2px;min-width:0}
.schedule-totals>button strong{font-size:22px;color:#315d78}
.schedule-totals>button span{font-size:11px;color:#718696;white-space:nowrap}
.activity-day.stats-tap{border:0;background:transparent;padding:0;align-items:center;justify-content:flex-end;cursor:pointer}
.mastery-num-link,.inline-stat-link{font:inherit;appearance:none;-webkit-appearance:none;border:0;background:transparent;color:inherit;padding:0;cursor:pointer}
.inline-stat-link{text-decoration:underline;text-underline-offset:2px}
.stats-filter-banner{border:1px solid #d9e8f1;background:#f0f7fb;border-radius:10px;padding:9px 11px;margin:0 0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#2b5d79;font-size:13px}
.stats-filter-banner span{min-width:0;overflow-wrap:anywhere}.stats-filter-banner b{font-weight:750}
.stats-filter-banner button{border:0;background:transparent;color:#315e7b;white-space:nowrap;font-size:12px;font-weight:750;min-height:32px;cursor:pointer}

/* V7.29: 多页Kindle图片导航 */
.display-page-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin:12px 0}.display-page-nav strong{text-align:center;white-space:nowrap;font-size:13px;color:#345f77}.display-page-nav .btn{min-width:0;padding:9px 5px;font-size:14px}.display-page-nav .btn:last-child{justify-self:stretch}.display-page-nav .btn:disabled{opacity:.4}

/* V7.32: 编辑页今日判定与默写清单使用一致的单击选项，无原生下拉。 */
.word-today-field{border:0;margin:0 0 15px;padding:0;min-width:0}
.word-today-field legend{font-size:12px;color:#556e81;font-weight:650;margin:0 0 9px;padding:0}
.word-today-options{display:grid;grid-template-columns:1fr 1fr .78fr;gap:8px}
.word-today-choice{display:block;position:relative;min-width:0;cursor:pointer}
.word-today-choice input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.word-today-choice span{display:flex;align-items:center;justify-content:center;min-height:46px;padding:9px 6px;border:1.5px solid #d8e5ee;border-radius:11px;background:#fff;color:#577184;font-size:15px;font-weight:700;white-space:nowrap;transition:background .12s,border-color .12s}
.word-today-choice.correct span{color:#287b5d}
.word-today-choice.wrong span{color:#ae5944}
.word-today-choice.clear span{font-size:13px;color:#697e8c}
.word-today-choice.correct input:checked+span{background:#d9f0e5;border-color:#89c5a8;color:#20694e}
.word-today-choice.wrong input:checked+span{background:#ffebe3;border-color:#e7ac97;color:#a44831}
.word-today-choice.clear input:checked+span{background:#edf3f8;border-color:#a6becd;color:#37586b}
.word-today-choice input:focus-visible+span{outline:3px solid #8bc0de;outline-offset:2px}
.home-review-explain{color:#687d8e;font-size:12px;line-height:1.55;margin:-1px 0 10px}
@media(max-width:350px){.word-today-options{gap:6px}.word-today-choice span{padding:8px 4px;font-size:14px}.word-today-choice.clear span{font-size:12px}}

/* V7.33 · 主页与词库统一为 4 项快捷操作 + 编辑；撤销无今日判定时禁用 */
.word-row .quick-actions {
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(0,1.18fr) minmax(0,.78fr) minmax(0,.78fr) 33px;
  gap:5px;
  align-items:stretch;
}
.word-row .quick-btn {min-width:0;min-height:37px;padding:6px 2px;white-space:nowrap;font-size:11px;}
.word-row .quick-btn.undo {background:#f4f7fa;border-color:#dce5ec;color:#436078;}
.word-row .quick-btn.undo:disabled {opacity:.42;cursor:not-allowed;background:#f6f8fa;color:#7e94a3;}
.word-row .quick-btn.featured-selected {background:#e1edf8;border-color:#a5c6df;color:#24587a;}
.word-row .quick-btn.icon-edit {font-size:17px; padding:5px 0;}
@media (max-width:365px) {
 .word-row .quick-actions {grid-template-columns:minmax(0,1.22fr) minmax(0,1.22fr) minmax(0,.84fr) minmax(0,.84fr) 29px;gap:3px;}
 .word-row .quick-btn {font-size:10px;min-height:35px;padding:5px 1px;}
 .word-row .quick-btn strong {padding:2px 3px;margin-left:1px;}
 .word-row .quick-btn.icon-edit {font-size:16px;}
}

/* V7.35: 本次默写恢复、未判醒目提示、移动端快速续测 */
.dictation-session-card .dictation-heading{align-items:center;gap:8px}
.dictation-progress{height:8px;background:#e9f0f5;border-radius:9px;overflow:hidden;margin:8px 0 12px}
.dictation-progress>span{height:100%;display:block;background:#3c927a;transition:width .2s ease}
.dictation-session-actions{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 14px}
.dictation-session-actions .btn{flex:1 1 auto;min-height:38px;padding:9px 10px;font-size:12px}
.dictation-item.dictation-done{background:#f8fbf9}
.dictation-item.dictation-pending{background:#fff}
.dictation-result-label{display:inline-block;margin-top:3px;border-radius:5px;padding:2px 6px;font-size:11px;font-weight:600}
.dictation-result-label.result-pending{background:#fff3dc;color:#9f681a}
.dictation-result-label.result-correct{background:#e1f3e9;color:#257754}
.dictation-result-label.result-wrong{background:#ffede7;color:#a45840}
@media(max-width:370px){.dictation-session-actions .btn{flex:1 1 100%}.dictation-result-label{font-size:10px}}

/* V7.36: non-spelling hints in paper dictation / typing quiz */
.dictation-help,.review-pronunciation{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px}
.dictation-speak,.dictation-ipa-toggle{border:1px solid #d5e4ed;border-radius:8px;background:#f4f8fb;color:#35627d;font:inherit;font-size:11px;font-weight:600;min-height:30px;padding:4px 8px;white-space:nowrap;cursor:pointer}
.dictation-speak:active,.dictation-ipa-toggle:active{background:#e2eef6}
.dictation-ipa{font-size:12px;color:#4a7188;letter-spacing:0.01em;overflow-wrap:anywhere}
.review-pronunciation{justify-content:center;margin-top:12px}
@media(max-width:360px){.dictation-speak,.dictation-ipa-toggle{font-size:10px;padding:4px 6px}}


/* V7.37 - dictation hybrid A (answer below) + B (IPA inline).
   Scoped to the list; the full-screen typed quiz retains its original affordances. */
.dictation-session-card .dictation-guidance{margin:7px 0 10px;line-height:1.55}
.dictation-session-card .dictation-tools{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:5px;margin:0 0 10px;min-width:0
}
.dictation-session-card .dictation-tools .btn{min-width:0;min-height:37px;max-width:100%;font-size:12px;font-weight:650;padding:8px 2px;border-radius:9px;line-height:1.25}
.dictation-session-card .dictation-tools .btn[aria-pressed=true]{background:#dcecf5;color:#235779;border-color:#accfe0}
.dictation-session-card .dictation-list{border-top:1px solid #e7eef2}
.dictation-session-card .dictation-item{display:flex;align-items:center;gap:5px;padding:7px 3px;min-width:0;min-height:49px;justify-content:initial}
.dictation-session-card .dictation-number{width:20px;height:22px;border-radius:6px;font-size:11px;flex-shrink:0;align-self:center}
.dictation-session-card .dictation-question{flex:1 1 auto;min-width:0}
.dictation-session-card .dictation-first-line{display:flex;align-items:center;gap:2px 3px;flex-wrap:wrap;min-width:0}
.dictation-session-card .dictation-hint{font-size:13px;color:#294a60;font-weight:650;line-height:1.45;overflow-wrap:anywhere}
.dictation-session-card .dictation-hint small{font-size:11px;font-weight:600;color:#8b9cac;margin-right:2px}
.dictation-session-card .dictation-mini-icon{height:28px;min-height:28px;width:27px;min-width:27px;display:inline-grid;place-items:center;background:transparent;border:0;color:#326c8e;padding:1px;border-radius:5px;line-height:1}
.dictation-session-card .dictation-mini-icon:active{background:#e4edf4}
.dictation-session-card .dictation-mini-icon:focus-visible{outline:2px solid #5ca8d0;outline-offset:0}
.dictation-session-card .dictation-ipa-toggle{font:700 19px/1 Georgia,'Times New Roman',serif}
.dictation-session-card .dictation-ipa-toggle.is-on{color:#1f765c}
.dictation-session-card .dictation-ipa-toggle:disabled{color:#b7c7d1;opacity:.52}
/* V7.37.1: match the readable green IPA treatment from layout B; no layout or behavior changes. */
.dictation-session-card .dictation-ipa-inline{font-size:14px;line-height:1.45;color:#20805d;font-weight:750;letter-spacing:0;min-width:0;overflow-wrap:anywhere}
/* V7.37.2: the displayed IPA becomes the hide control; the 'ə' icon is not rendered alongside it. */
.dictation-session-card .dictation-ipa-reveal{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;max-width:100%;min-height:28px;padding:1px 2px;margin:0;border:0;border-radius:4px;background:transparent;font-family:inherit;text-align:left;white-space:normal;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.dictation-session-card .dictation-ipa-reveal:active{background:#e3f3eb}
.dictation-session-card .dictation-ipa-reveal:focus-visible{outline:2px solid #20805d;outline-offset:2px}
.dictation-session-card .dictation-answer{display:block;color:#177454;margin:3px 0 0;font-size:13px;line-height:1.35;font-weight:750;overflow-wrap:anywhere}
.dictation-session-card .dictation-buttons{display:flex;align-items:center;gap:3px;flex:0 0 auto}
.dictation-session-card .dictation-mark{min-width:38px;min-height:33px;padding:4px 3px;font-size:12px;white-space:nowrap;border-radius:8px}
.dictation-session-card .dictation-clear{display:grid;place-items:center;min-width:22px;min-height:33px;padding:2px 1px;font-size:20px;color:#73889a;line-height:1;border-radius:5px}
.dictation-session-card .dictation-clear:disabled{color:#c2cdd6;opacity:.28}
.dictation-session-card .dictation-clear:not(:disabled):active{background:#edf2f6}
@media(max-width:390px){
 .dictation-session-card .dictation-mark{min-width:35px;font-size:11px}
 .dictation-session-card .dictation-first-line{gap:2px}
 .dictation-session-card .dictation-mini-icon{width:25px;min-width:25px}
 .dictation-session-card .dictation-tools .btn{font-size:11px}
 .dictation-session-card .dictation-item{gap:4px}
}
@media(max-width:335px){
 .dictation-session-card .dictation-mark{min-width:31px;font-size:10px}
 .dictation-session-card .dictation-clear{min-width:19px}
 .dictation-session-card .dictation-hint{font-size:12px}
 .dictation-session-card .dictation-mini-icon{width:24px;min-width:24px}
 .dictation-session-card .dictation-tools{gap:3px}
 .dictation-session-card .dictation-tools .btn{font-size:10px}
}

/* V7.37.3: Chinese meaning is the per-word answer toggle, with no visible button chrome. */
.dictation-session-card .dictation-meaning-toggle{
 appearance:none;-webkit-appearance:none;display:inline-block;
 flex:0 1 auto;min-width:0;min-height:28px;max-width:100%;
 margin:0;padding:3px 2px;border:0;border-radius:4px;background:transparent;
 font:inherit;font-size:13px;font-weight:650;line-height:1.45;
 color:#294a60;text-align:left;white-space:normal;overflow-wrap:anywhere;
 cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent
}
.dictation-session-card .dictation-meaning-toggle:active{background:#e9f2f7}
.dictation-session-card .dictation-meaning-toggle:focus-visible{outline:2px solid #4d9abf;outline-offset:1px}
.dictation-session-card .dictation-meaning-toggle small{font-size:11px;font-weight:600;color:#8b9cac;margin-right:2px}
@media(max-width:335px){.dictation-session-card .dictation-meaning-toggle{font-size:12px}}

/* V7.38 纸笔播报：只保留当前中文提示与必要的播放操作 */
.broadcast-setup-top{margin:2px 0 15px}.broadcast-setting{display:flex;flex-direction:column;gap:6px;margin-bottom:15px}.broadcast-setting label{font-weight:700;font-size:13px;color:#47667c}.broadcast-setting select{min-height:45px;padding:10px;border-radius:11px;border:1px solid #d6e2ea;background:#fff;color:#203e55;width:100%}.broadcast-notes{background:#eff5f8;color:#557186;line-height:1.7;font-size:12px;padding:12px;border-radius:11px;margin:5px 0 17px}
.shell.is-broadcast{padding:0;background:#f7fafc}.shell.is-broadcast .header,.shell.is-broadcast .bottom-nav{display:none}.shell.is-broadcast .app-scroll{min-height:100svh}.shell.is-broadcast #main{padding:0!important}.broadcast-page{min-height:100svh;min-height:100dvh;padding:max(21px,env(safe-area-inset-top)) 18px max(22px,env(safe-area-inset-bottom));display:flex;flex-direction:column;max-width:680px;margin:auto;background:linear-gradient(180deg,#f7fafc 0%,#fff 72%)}
.broadcast-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 14px}.broadcast-exit{padding:9px 2px;border:0;background:none;color:#466d84;font-weight:700;font-size:14px}.broadcast-counter{font-weight:800;font-size:15px;color:#406987;font-variant-numeric:tabular-nums}.broadcast-track{height:6px;border-radius:99px;overflow:hidden;background:#dfe9ef}.broadcast-track span{display:block;height:100%;background:#438d7c;border-radius:99px;transition:width .2s ease}
.broadcast-center{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:40px 5px}.broadcast-eyebrow{font-size:13px;color:#7892a3;font-weight:650;letter-spacing:.04em}.broadcast-word{width:100%;padding:26px 12px 24px;border:1px solid #e5edf2;border-radius:20px;background:#fff;box-shadow:0 12px 35px rgba(45,77,106,.055);min-height:155px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px}.broadcast-pos{color:#8b9ba7;font-size:15px;font-weight:650}.broadcast-meaning{font-size:clamp(26px,7.4vw,37px);font-weight:790;line-height:1.55;color:#263f54;overflow-wrap:anywhere;max-width:100%}.broadcast-ipa-line{min-height:42px;display:flex;align-items:center;justify-content:center}.broadcast-ipa-off,.broadcast-ipa-on{border:0;background:transparent;padding:8px 13px;line-height:1.5;min-height:40px;border-radius:8px;cursor:pointer;touch-action:manipulation}.broadcast-ipa-off{font-size:13px;color:#63859a}.broadcast-ipa-off span{font-size:17px;font-weight:750;margin-right:6px}.broadcast-ipa-on{font-size:20px;color:#20805d;font-weight:750;overflow-wrap:anywhere}.broadcast-noipa{font-size:12px;color:#a0afba}.broadcast-play-status{font-size:13px;color:#6d8799;min-height:21px}.broadcast-control-area{padding:20px 5px 26px;display:flex;flex-direction:column;gap:22px}.broadcast-main-controls{display:grid;grid-template-columns:55px minmax(0,1fr) 55px;gap:12px;align-items:center}.broadcast-circle{width:55px;height:55px;border-radius:50%;border:1px solid #d8e5ed;background:#fff;color:#366883;font-size:29px;font-weight:600}.broadcast-circle:disabled{opacity:.25}.broadcast-primary{height:58px;border-radius:16px;background:#315f7b;border:0;color:#fff;font-weight:800;font-size:18px;box-shadow:0 8px 18px #2b5c7940}.broadcast-sub-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#73899a;font-size:12px}.broadcast-sub-controls .btn{padding:8px 10px;min-height:35px}.broadcast-center h2{font-size:25px;color:#23485e}.broadcast-center p{font-size:14px;color:#6b8596;max-width:285px;line-height:1.8}.broadcast-finished-icon{font-size:42px;color:#338b6b;background:#e3f3e9;display:grid;place-items:center;border-radius:50%;width:90px;height:90px}
@media(max-width:340px){.broadcast-page{padding-left:13px;padding-right:13px}.broadcast-meaning{font-size:25px}.broadcast-main-controls{grid-template-columns:49px minmax(0,1fr) 49px;gap:9px}.broadcast-circle{width:49px;height:49px}.broadcast-primary{font-size:16px}}

/* V7.39: 默写功能一排 + 清单显示控制一排；手机四等分，不删除旧功能 */
.dictation-session-card .dictation-toolbar{display:grid;gap:8px;margin:7px 0 11px}
.dictation-session-card .dictation-toolbar-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:0}
/* V7.40.2: 方式按钮在生成清单按钮下方；清单显示控制仍是四等分 */
.dictation-generate-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;min-width:0;margin-top:10px}
.dictation-generate-actions .btn{min-width:0;width:100%;min-height:43px;padding:9px 3px;font-size:12px;line-height:1.2;font-weight:700;white-space:nowrap;border-radius:9px}
@media(max-width:355px){.dictation-generate-actions{gap:5px}.dictation-generate-actions .btn{font-size:11px;padding:9px 2px}}
.dictation-session-card .dictation-toolbar-row .btn{min-width:0;width:100%;min-height:43px;padding:9px 2px;font-size:12px;line-height:1.2;font-weight:700;white-space:nowrap;letter-spacing:-.15px;border-radius:9px}
.dictation-session-card .dictation-modes .btn[aria-current=page]{background:#315f7b;color:#fff;border:0}
.dictation-session-card .dictation-display-tools{padding-top:8px;border-top:1px solid #eaf0f4}
.dictation-session-card .dictation-display-tools .btn:last-child{color:#6c5360}
.dictation-session-card .dictation-toolbar-recovery{display:flex;justify-content:flex-start}
@media(max-width:355px){.dictation-session-card .dictation-toolbar-row{gap:4px}.dictation-session-card .dictation-toolbar-row .btn{font-size:11px;letter-spacing:-.25px;padding:9px 1px}}
/* 把重播提升为主操作：与暂停一样显眼，并占满拇指易触达区域 */
.broadcast-control-area{gap:13px;padding-bottom:max(16px,env(safe-area-inset-bottom))}
.broadcast-sub-controls{display:flex;flex-direction:column;gap:10px;align-items:stretch;justify-content:stretch}
.broadcast-replay-primary{display:block;width:100%;min-height:54px;padding:10px 12px;border-radius:15px;border:1px solid #a9cbdc;background:#dfeef7;color:#285e7d;font-size:18px;font-weight:800;box-shadow:0 3px 11px rgba(33,82,116,.1);cursor:pointer;touch-action:manipulation}
.broadcast-replay-primary:active{background:#cce3f0}
.broadcast-sub-controls>span{display:block;text-align:center;font-size:12px;color:#718a9e}

/* V7.40 播报：精确跳词、播报中设置 */
.broadcast-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;margin-bottom:9px}
.broadcast-top .broadcast-exit{justify-self:start}
.broadcast-settings-open{justify-self:end;background:transparent;border:1px solid #d8e5ec;border-radius:10px;padding:8px 10px;color:#436d85;font-size:13px;font-weight:750;white-space:nowrap;cursor:pointer}
.broadcast-track-wrap{display:flex;flex-direction:column;gap:2px;padding:0 2px}
.broadcast-seek{display:block;width:100%;height:24px;margin:0;accent-color:#438d7c;touch-action:pan-x;cursor:pointer}
.broadcast-seek-hint{color:#94a7b4;text-align:center;font-size:10px;min-height:14px}
.broadcast-resume-note{background:#eff7f3;border:1px solid #c9e5d6;color:#39735c;border-radius:11px;padding:12px;font-size:13px;margin-bottom:14px}
.broadcast-settings-shade{position:fixed;inset:0;z-index:80;background:rgba(19,43,60,.42);display:flex;align-items:flex-end;justify-content:center;padding:0 0 env(safe-area-inset-bottom);overscroll-behavior:contain}
.broadcast-settings-sheet{display:flex;flex-direction:column;width:100%;max-width:680px;max-height:min(84dvh,770px);border-radius:22px 22px 0 0;background:#fff;padding:17px 19px 16px;box-shadow:0 -9px 30px rgba(12,45,70,.2)}
.broadcast-settings-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.broadcast-settings-heading h3{margin:0;font-size:19px;color:#28495f}
.broadcast-settings-x{width:37px;height:37px;border:1px solid #d8e5ec;border-radius:50%;background:#fff;color:#436d85;font-size:25px;line-height:1;cursor:pointer}
.broadcast-settings-scroll{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;padding-right:2px}
.broadcast-settings-done{margin-top:10px;width:100%;height:48px;background:#315f7b;color:#fff;font-size:15px;font-weight:750;border:0;border-radius:12px;cursor:pointer;flex-shrink:0}
.broadcast-settings-sheet .broadcast-setting{margin-bottom:12px}
.broadcast-settings-sheet .broadcast-notes{margin:10px 0 4px}
@media(max-width:340px){.broadcast-settings-open{padding:7px;font-size:12px}.broadcast-settings-sheet{padding:14px 13px 12px}}

/* V7.41 每日任务首页：简洁三档，沿用现有蓝灰主题 */
.daily-task-card{padding:17px 17px 14px;margin-top:17px;border-color:#d8e7ed}
.daily-task-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.daily-task-head h3{margin:0 0 5px;font-size:16px}
.daily-task-head p{margin:0;color:#7a90a0;font-size:11px}
.daily-task-day{background:#edf5f6;border-radius:7px;color:#467b81;font-size:11px;padding:5px 8px;white-space:nowrap}
.daily-task-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0 12px}
.daily-task-choice{background:#f1f5f8;border:1px solid #dbe6ed;border-radius:10px;min-height:41px;color:#4d6b82;font-size:14px;font-weight:750}
.daily-task-choice.chosen{background:#315f7b;border-color:#315f7b;color:white}
.daily-task-info{color:#60798b;font-size:12px;line-height:1.6;margin:4px 0 13px}
.daily-task-foot{font-size:11px;line-height:1.5;margin:10px 1px 0}

/* V7.41.1 当日可追加5/10词，不占用10/20/30默认档位。 */
.daily-task-extras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}
.daily-task-extras button{height:39px;border:1px solid #bdd5e1;border-radius:10px;background:#f5fafc;color:#315f7b;font-size:13px;font-weight:750;cursor:pointer;touch-action:manipulation}
.daily-task-extras button:active{background:#e4f0f6}

/* V7.41.4 文案与交互层级优化：只调整外观，不覆盖业务状态。 */
.home-tools-heading{margin-top:22px}
.home-tools-heading h2{font-size:16px;color:#526a7c}
.home-tools-heading .count{font-weight:600;background:transparent;color:#7e91a0;max-width:65%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-tools-heading + .two-col .tool-card{min-height:82px;padding:12px 13px;background:#fcfdfe;border-color:#e7edf2}
.home-tools-heading + .two-col .tool-card .tool-icon{width:30px;height:30px;font-size:19px;background:#f2f6f9}
.home-tools-heading + .two-col .tool-card b{margin:7px 0 1px;font-size:13px}
.home-tools-heading + .two-col .tool-card span:not(.tool-icon){font-size:11px}
.daily-task-card{margin-top:14px;margin-bottom:12px}
.daily-task-head{align-items:center}
.daily-task-head h3{margin:0}
.daily-task-choices{margin:14px 0 9px}
.daily-task-info{margin:2px 0 10px}
.dictation-result-summary{display:flex;gap:14px;align-items:center;color:#647c8d;font-size:12px;font-weight:600;margin:2px 0 11px}
.dictation-result-summary span:first-child{color:#2b8064}
.dictation-result-summary span:nth-child(2){color:#a85840}
/* 显示控制保留原位置和明显选中态，低频完成操作弱化。 */
.dictation-session-card .dictation-display-tools .btn[data-action="end-dictation-session"]{background:transparent;color:#8b6871;border-color:#e5e8ec;font-weight:600}
.dictation-session-card .dictation-display-tools .btn[data-action="end-dictation-session"]:focus-visible{outline:2px solid #8bc0de}
/* 输出类辅助按钮不与“生成清单”争夺主视觉。 */
.dictation-generate-actions .btn[data-action="download-dictation-pdf"]{color:#6b8090;background:#fff;border-color:#e4ebf0;font-weight:600}
@media(max-width:360px){.dictation-result-summary{gap:9px;font-size:11px}.daily-task-day{font-size:10px}}

/* V7.41.12 默写结果区与播报页微调。 */
.dictation-session-card .dictation-summary-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:2px 0 8px}
.dictation-session-card .dictation-summary-row .dictation-result-summary{margin:0;flex:1 1 auto}
.dictation-session-card .dictation-recovery-inline{display:flex;justify-content:flex-end;flex:0 0 auto}
.dictation-session-card .dictation-recovery-inline .btn{min-height:36px;padding:7px 11px;border-radius:999px;font-size:12px;white-space:nowrap}
.broadcast-page .broadcast-center{justify-content:flex-start;padding-top:18px;padding-bottom:6px}
.broadcast-page .broadcast-control-area{padding-top:8px}
@media(max-width:360px){.dictation-session-card .dictation-summary-row{align-items:stretch}.dictation-session-card .dictation-recovery-inline{width:100%}.dictation-session-card .dictation-recovery-inline .btn{width:100%}}

/* V7.41.15 右上角补认按钮与播报中央按钮定位。 */
.dictation-session-card .dictation-heading{align-items:center;justify-content:space-between}
.dictation-session-card .dictation-heading-action{appearance:none;-webkit-appearance:none;border:0;background:#e9f1f7;color:#406b85;padding:5px 10px;min-height:30px;border-radius:999px;font-weight:700;font-size:11px;line-height:1;white-space:nowrap;cursor:pointer}
.dictation-session-card .dictation-heading-action:active{background:#dce9f2}
.dictation-session-card .dictation-heading-action:focus-visible{outline:2px solid #7db0cb;outline-offset:2px}
.dictation-session-card .dictation-summary-row{margin:2px 0 6px}
.dictation-session-card .dictation-summary-row .dictation-result-summary{margin:0}
.broadcast-page .broadcast-control-area{padding-top:2px}
.broadcast-page .broadcast-main-controls{align-items:end}
.broadcast-page .broadcast-main-controls .broadcast-primary{justify-self:center}
@media(max-width:360px){.dictation-session-card .dictation-heading{align-items:flex-start;gap:8px}.dictation-session-card .dictation-heading-action{font-size:10px;padding:5px 9px;min-height:28px}}


/* V7.41.32 · 播报页魔法化：增强童话感，仅调UI不改功能。 */
.shell.is-broadcast{background:linear-gradient(180deg,#eef6fb 0%,#f7fbff 38%,#fbfdff 100%)}
.shell.is-broadcast .app-scroll{background:
  radial-gradient(120px 72px at 84% 9%, rgba(251,244,189,.48), transparent 72%),
  radial-gradient(145px 90px at 16% 100%, rgba(186,223,238,.26), transparent 72%),
  linear-gradient(180deg,#eff6fc 0%,#f8fbff 44%,#fdfefe 100%)}
.broadcast-page{position:relative;overflow:hidden;background:transparent}
.broadcast-page::before{
  content:"";position:absolute;right:-18px;top:18px;width:190px;height:118px;pointer-events:none;opacity:.34;
  background:url('./assets/deco-moon-cloud.png') center/contain no-repeat;
  filter:saturate(.92) brightness(1.04);
}
.broadcast-page::after{
  content:"";position:absolute;left:-10px;bottom:92px;width:155px;height:112px;pointer-events:none;opacity:.2;
  background:url('./assets/deco-cloud.png') center/contain no-repeat;
}
.broadcast-top{position:relative;z-index:2;margin-bottom:10px}
.broadcast-exit,.broadcast-settings-open{
  border:1px solid #d7e6ef;background:rgba(255,255,255,.72);backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);border-radius:14px;box-shadow:0 6px 18px rgba(64,102,136,.08)
}
.broadcast-exit{padding:9px 12px;color:#4c738d}
.broadcast-settings-open{padding:8px 12px;color:#4b728d}
.broadcast-counter{
  font-size:16px;color:#3e6888;letter-spacing:.02em;
  text-shadow:0 1px 0 rgba(255,255,255,.55)
}
.broadcast-track-wrap{position:relative;z-index:2;padding:4px 4px 0}
.broadcast-seek{height:26px;accent-color:#86a9c7}
.broadcast-seek-hint{margin-top:3px;color:#9bafbc}
.broadcast-center{position:relative;z-index:2;gap:12px;padding:10px 6px 0}
.broadcast-eyebrow{
  color:#7894aa;font-size:15px;font-weight:780;letter-spacing:.08em;
  text-shadow:0 1px 0 rgba(255,255,255,.55)
}
.broadcast-word{
  position:relative;min-height:164px;padding:30px 16px 26px;
  border:1px solid rgba(209,226,238,.96);border-radius:28px;
  background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(252,254,255,.95) 100%);
  box-shadow:0 18px 44px rgba(76,116,151,.08), inset 0 1px 0 rgba(255,255,255,.9);
}
.broadcast-word::before{
  content:"✦";position:absolute;right:22px;top:18px;font-size:22px;color:rgba(246,211,111,.72)
}
.broadcast-word::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:38px;border-radius:0 0 28px 28px;
  background:linear-gradient(180deg,rgba(238,246,252,0) 0%, rgba(234,244,251,.6) 100%);
}
.broadcast-pos{position:relative;z-index:1;color:#8ca0b0;font-size:16px;font-weight:740}
.broadcast-meaning{position:relative;z-index:1;color:#233f5a;font-size:clamp(28px,7.8vw,40px);font-weight:840;line-height:1.45}
.broadcast-ipa-line{min-height:44px}
.broadcast-ipa-off,.broadcast-ipa-on{
  background:rgba(255,255,255,.68);border:1px solid #e0eaf1;border-radius:999px;
  box-shadow:0 4px 12px rgba(96,127,154,.08)
}
.broadcast-ipa-off{color:#5f7f95}
.broadcast-ipa-off span{color:#466f89}
.broadcast-ipa-on{color:#2c7d66;background:#f8fffb}
.broadcast-play-status{
  min-height:24px;font-size:15px;font-weight:720;color:#66869b;
  text-shadow:0 1px 0 rgba(255,255,255,.5)
}
.broadcast-control-area{position:relative;z-index:2;padding-top:0;padding-bottom:max(14px,env(safe-area-inset-bottom));gap:11px}
.broadcast-main-controls{grid-template-columns:60px minmax(0,1fr) 60px;gap:14px;align-items:center;margin-top:-26px}
.broadcast-circle{
  width:60px;height:60px;border:1px solid #d6e5ee;background:rgba(255,255,255,.8);color:#5d8298;
  box-shadow:0 8px 18px rgba(68,106,138,.08);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)
}
.broadcast-circle:not(:disabled):active{transform:translateY(1px)}
.broadcast-primary.broadcast-primary-circle{
  position:relative;width:min(50vw,196px);height:min(50vw,196px);min-height:min(50vw,196px);
  border-radius:50%;
  background:linear-gradient(160deg,#5881a0 0%,#3e6d90 42%,#325d7e 100%);
  box-shadow:0 18px 34px rgba(44,91,123,.20),0 0 0 10px rgba(219,238,247,.52),0 0 48px rgba(114,181,216,.23);
  transform:translateY(-24px);
}
.broadcast-primary.broadcast-primary-circle::before{
  content:"";position:absolute;inset:10px;border-radius:50%;border:1px solid rgba(255,255,255,.14);
}
.broadcast-primary.broadcast-primary-circle::after{
  content:"";position:absolute;left:14px;right:14px;top:12px;height:32%;border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,0));pointer-events:none
}
.broadcast-primary-glyph{font-size:53px;line-height:1.02;text-shadow:0 2px 0 rgba(0,0,0,.06)}
.broadcast-primary-caption{font-size:18px;letter-spacing:.03em}
.broadcast-replay-primary{
  min-height:56px;border-radius:18px;border:1px solid #b9d4e4;
  background:linear-gradient(180deg,#edf7fc 0%,#deeff8 100%);
  color:#2c627f;box-shadow:0 8px 18px rgba(78,133,165,.08)
}
.broadcast-sub-controls>span{font-size:12px;color:#7891a3;letter-spacing:.02em}
.broadcast-finished-icon{box-shadow:0 10px 22px rgba(52,138,107,.14), 0 0 0 10px rgba(221,244,232,.7)}
@media(max-width:390px){
  .broadcast-page::before{right:-26px;top:22px;width:170px;height:108px;opacity:.3}
  .broadcast-center{padding-top:8px}
  .broadcast-main-controls{margin-top:-18px;gap:11px}
  .broadcast-primary.broadcast-primary-circle{width:min(48vw,182px);height:min(48vw,182px);min-height:min(48vw,182px);transform:translateY(-18px)}
  .broadcast-primary-glyph{font-size:48px}
  .broadcast-primary-caption{font-size:17px}
}
@media(max-width:340px){
  .broadcast-word{min-height:150px;padding:26px 14px 22px}
  .broadcast-main-controls{grid-template-columns:52px minmax(0,1fr) 52px;gap:9px;margin-top:-14px}
  .broadcast-circle{width:52px;height:52px}
  .broadcast-primary.broadcast-primary-circle{width:min(47vw,166px);height:min(47vw,166px);min-height:min(47vw,166px);transform:translateY(-12px)}
  .broadcast-play-status{font-size:14px}
}

/* V7.41.34 · 主播放按钮改为右上角月光同系雾蓝／微紫蓝，仅改色彩。
   不动尺寸、位置、图标和按钮交互，也不改变顶部月亮装饰。 */
.shell.is-broadcast .broadcast-primary.broadcast-primary-circle{
  background:
    radial-gradient(ellipse 85% 80% at 34% 18%,rgba(255,255,255,.64) 0%,rgba(255,255,255,0) 82%),
    linear-gradient(155deg,#e7efff 0%,#d2dff8 50%,#b6c8e9 100%);
  color:#345675;
  border:1px solid rgba(237,243,255,.88);
  box-shadow:0 18px 36px rgba(90,112,164,.15),0 0 0 10px rgba(224,233,253,.56),0 0 46px rgba(168,188,236,.21);
}
.shell.is-broadcast .broadcast-primary.broadcast-primary-circle::before{
  border-color:rgba(255,255,255,.3);
}
.shell.is-broadcast .broadcast-primary.broadcast-primary-circle::after{content:none;display:none}
.shell.is-broadcast .broadcast-primary-glyph,
.shell.is-broadcast .broadcast-primary-caption{text-shadow:0 1px 0 rgba(255,255,255,.26)}


/* V7.41.35 · 数据备份卡片右上角辅助按钮 */
.backup-headbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative}
.backup-headbar .magic-help-heading{margin:0;flex:1 1 auto}
.backup-headbar .magic-help-popover{left:0;right:0}
.backup-storage-action{
  flex:0 0 auto;appearance:none;-webkit-appearance:none;cursor:pointer;
  min-height:34px;padding:7px 12px;border-radius:999px;
  border:1px solid #c8d8e5;background:linear-gradient(180deg,#f8fcff 0%,#eef5fa 100%);
  color:#54758d;font-size:12px;font-weight:750;line-height:1;white-space:nowrap;
  box-shadow:0 2px 8px rgba(84,117,141,.08)
}
.backup-storage-action:active{background:linear-gradient(180deg,#eef5fa 0%,#e6f0f7 100%)}
.backup-storage-action:focus-visible{outline:2px solid #8eb6cf;outline-offset:2px}
@media(max-width:390px){
  .backup-headbar{gap:8px}
  .backup-storage-action{padding:6px 10px;font-size:11px;min-height:32px}
}


/* V7.41.40 · 检查存储改为“改归属”式圆角矩形，固定原水平位置和按钮尺寸。
   与保存状态底部对齐，不对其他备份操作作样式修改。 */
.backup-headbar{align-items:flex-end;}
.backup-headbar .backup-meta{min-width:0;flex:1 1 auto;}
.backup-headbar .backup-meta .magic-backup-summary{margin-bottom:0;}
.backup-headbar .backup-storage-action{
  border-radius:10px;
  background:#fff;
  border-color:#d9e3ec;
  color:#41617a;
  box-shadow:none;
  height:34px;min-height:34px;
}
.backup-headbar .backup-storage-action:active{background:#f0f5f9;}
@media(max-width:390px){
  .backup-headbar .backup-storage-action{height:32px;min-height:32px;}
}
.backup-headbar{margin-bottom:10px;}
.shell:not(.is-home):not(.is-broadcast) #main .backup-headbar .backup-meta .magic-backup-summary{margin:0;}


/* V7.41.44: broadcast main button shares the exact secondary-button fill and ink.
   Remove previous ornamental rings, borders, and gloss masks; keep its size and position. */
.shell.is-broadcast .broadcast-primary.broadcast-primary-circle{
  background:linear-gradient(125deg,#e5f2fc,#e8f0fa);
  color:#426e90;
  border:0;
  outline:0;
  box-shadow:
    0 0 28px rgba(159,194,230,.68),
    0 0 56px rgba(169,196,239,.48),
    0 17px 35px rgba(92,127,177,.15);
}
.shell.is-broadcast .broadcast-primary.broadcast-primary-circle::before,
.shell.is-broadcast .broadcast-primary.broadcast-primary-circle::after{
  content:none;display:none;box-shadow:none;border:0;
}
.shell.is-broadcast .broadcast-primary.broadcast-primary-circle:focus-visible{
  outline:2px solid #8fb6d6;outline-offset:4px;
}
.shell.is-broadcast .broadcast-primary-glyph,
.shell.is-broadcast .broadcast-primary-caption{color:#426e90;text-shadow:none;}

/* V7.41.51 local auto-backup history; visually quiet in the settings page. */
.auto-history-entry{display:flex;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid #e7edf6;padding:12px 0 0;margin-top:5px}
.auto-history-entry b{color:#4b6381;font-size:13px}
.auto-history-entry p{font-size:11.5px;line-height:1.55;margin:3px 0 0;color:#74879d}
.auto-history-entry .btn{flex:0 0 auto;min-height:35px;padding:6px 11px;font-size:12px}
.auto-history-list{display:flex;flex-direction:column;gap:9px;margin-top:14px}
.auto-history-item{border:1px solid #e3eaf4;background:#f9fbff;border-radius:12px;padding:10px 12px;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center}
.auto-history-item b{font-size:12px;color:#49627f}
.auto-history-item p{margin:3px 0 0;font-size:11px}
.auto-history-actions{display:flex;gap:6px}
.auto-history-actions .btn{font-size:11px;min-height:32px;padding:5px 10px}
