:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;color:var(--skin-183b2c,#183b2c);background:#fff;--accent:var(--skin-2b8158,#2b8158);--accentSoft:var(--skin-e9f6ee,#e9f6ee);--line:var(--skin-dce9df,#dce9df);--muted:var(--skin-728679,#728679)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button,.filelabel{cursor:pointer}button,select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 14px;color:inherit}button:hover,.filelabel:hover{background:var(--skin-edf7ef,#edf7ef)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--skin-9bcfac,#9bcfac);outline-offset:2px}.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:650}.primary:hover{background:var(--skin-216c49,#216c49)}.appHeader{height:72px;padding:0 34px;display:grid;grid-template-columns:215px minmax(250px,1fr) auto;align-items:center;gap:15px;border-bottom:1px solid var(--skin-e5eee6,#e5eee6);background:#fff}.headerLeft,.headerActions{display:flex;align-items:center;gap:15px}.backButton{border-radius:50px;padding:5px 14px;white-space:nowrap}.brand{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:19px;font-weight:750}.brandicon{display:grid;place-items:center;background:var(--accent);color:#fff;border-radius:9px;width:32px;height:32px}.chapterButton{border:0;background:none;font-size:20px;font-weight:600;display:flex;justify-content:center;align-items:center;gap:12px;min-width:0;white-space:nowrap}.chapterButton:hover{background:var(--accentSoft)}.chapterButton span:first-child{overflow:hidden;text-overflow:ellipsis}.chevron{font-size:25px;color:var(--skin-94a99a,#94a99a)}.headerActions{justify-content:flex-end;gap:8px}.headerActions button,.modeLabel{border:0;background:transparent;white-space:nowrap;font-size:15px;padding:9px 7px}.headerActions button:hover{background:var(--accentSoft)}.modeLabel{font-weight:600}main{width:100%;padding:0 40px 34px}.progressStrip{padding:27px 0 0}.progressLine{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:20px;align-items:center}.progressTrack{display:flex;gap:8px;align-items:center;color:var(--accent);font-size:20px}.progressTrack progress{width:100%;height:8px;accent-color:var(--skin-58b77d,#58b77d)}.progressTrack progress::-webkit-progress-bar{background:var(--skin-edf1ee,#edf1ee);border-radius:10px}.progressTrack progress::-webkit-progress-value{background:var(--skin-58b77d,#58b77d);border-radius:10px}.progressLine>strong{font-size:18px;white-space:nowrap}.optionGroup{display:flex;gap:18px;white-space:nowrap}.optionGroup label{font-size:15px;cursor:pointer}.optionGroup input{accent-color:var(--accent);width:17px;height:17px;vertical-align:middle}.viewSwitch{display:flex;border-radius:40px;background:var(--skin-eef3ef,#eef3ef);padding:4px;white-space:nowrap}.viewSwitch button{border:0;background:transparent;border-radius:30px;padding:6px 12px}.viewSwitch button.active{background:#fff;font-weight:650;box-shadow:0 1px 5px var(--skin-31513b16,#31513b16)}.memoryInline{display:flex;align-items:center;gap:10px;margin:11px 0 0 31px;color:var(--muted);font-size:13px}.memoryInline>span:first-child{font-weight:650}.memoryInline button{border:0;padding:2px 7px;color:var(--accent);font-size:13px}.memoryCompare{display:flex;gap:8px;align-items:center}.memoryMetric{display:flex;align-items:baseline;gap:5px}.memoryMetric small{font-size:12px}.memoryMetric strong{color:var(--accent)}.memoryMetric strong span{font-weight:400;color:var(--muted)}.memoryArrow{color:var(--skin-87bc97,#87bc97)}.notice{font-size:13px;color:var(--skin-607c66,#607c66);margin:16px 0 5px;min-height:20px}.exercise{width:100%;padding:10px 0}.roundhead{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:15px 0 18px}.roundhead h2{font-size:15px;font-weight:550;margin:3px 0}.roundhead p{font-size:13px;color:var(--muted);margin:0}.eyebrow{font-size:13px;color:var(--accent);font-weight:650}.roundstats{text-align:right;white-space:nowrap}.roundstats strong{color:var(--accent);font-size:18px}.roundstats span{font-size:12px;color:var(--muted);margin-left:5px}.stickybar{display:flex;align-items:center;gap:9px;position:sticky;top:0;z-index:4;background:#fff;padding:12px 0 17px;margin-bottom:12px;border-bottom:1px solid var(--line)}.stickybar span{color:var(--muted);font-size:13px;flex:1}.stickybar button{white-space:nowrap}.stickybar .finish{color:var(--accent);border-color:var(--skin-c5e5ce,#c5e5ce)}.dictationRows{width:100%}.dictationRow{display:grid;grid-template-columns:34px minmax(0,1fr);gap:15px;align-items:center;margin:0 0 12px;scroll-margin-top:85px}.rowIndex{border:0;background:transparent;color:var(--skin-84958a,#84958a);padding:10px 0;text-align:left;font-size:18px}.rowIndex:hover{color:var(--accent);background:transparent}.answerBox{display:flex;align-items:center;gap:10px;min-height:74px;border:1px solid var(--skin-d5e3d9,#d5e3d9);border-radius:8px;padding:0 17px;background:#fff}.dictationRow.playing .answerBox{border-color:var(--accent);background:var(--skin-f4fbf5,#f4fbf5)}.answerBox:focus-within{border-color:var(--skin-50aa74,#50aa74);box-shadow:0 0 0 2px var(--skin-def2e4,#def2e4)}.answerBox input{border:0;background:transparent;outline:0!important;box-shadow:none;width:100%;min-width:0;padding:14px 0;font-size:20px}.answerBox input::placeholder{color:var(--skin-a8b7ac,#a8b7ac);font-size:15px}.status{flex:0 0 26px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:19px;font-weight:650;color:white}.status.correct{background:var(--skin-2ba669,#2ba669)}.status.wrong{background:#d63846}.status.empty{visibility:hidden}.answerHints{grid-column:2;margin:-4px 0 0 2px;color:var(--muted);font-size:13px}.answerHints span+span{margin-left:15px}.answerHints[hidden]{display:none}#bottomActions{display:flex;justify-content:flex-end;padding:28px 0}.reviewPanel{padding:30px 10px}.reviewPanel[hidden],#dictationRows[hidden],#writingTools[hidden],#bottomActions[hidden]{display:none}.reviewTop{display:flex;justify-content:space-between;gap:20px;align-items:center}.reviewTop h2{font-size:23px;margin:5px 0}.reviewTop p,#reviewInstruction{font-size:14px;color:var(--muted);line-height:1.7}.reviewTop .roundstats strong{font-size:28px}.wrongList{display:flex;flex-direction:column;gap:10px;margin-top:18px}.wrongItem{display:grid;grid-template-columns:40px 92px minmax(0,1fr);gap:10px;align-items:center;padding:13px 16px;border:1px solid var(--line);border-radius:8px}.wrongItem button{color:var(--accent)}.wrongWordButton{border:0;padding:4px 0;font-size:17px;font-weight:650;text-align:left}.wrongMeaning{color:var(--muted);font-size:13px}.wrongInput{color:#b7505e;font-size:13px;margin-top:4px}.reviewActions{display:flex;gap:10px;margin-top:25px}.success{text-align:center;background:var(--skin-e9f7ee,#e9f7ee);color:var(--accent);font-size:18px;padding:24px;border-radius:8px}footer{color:var(--skin-839588,#839588);font-size:12px;line-height:1.8;margin-top:24px}dialog{border:1px solid var(--line);border-radius:16px;padding:25px;width:min(520px,calc(100% - 24px));box-shadow:0 20px 70px var(--skin-24442d30,#24442d30);color:inherit}dialog.wide{width:min(980px,calc(100% - 24px))}dialog::backdrop{background:var(--skin-193c2750,#193c2750)}.dialoghead{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.dialoghead h2{font-size:19px;margin:0}.dialoghead button{border:0;font-size:23px;padding:1px 7px}.subtle{font-size:14px;line-height:1.7;color:var(--muted)}#chapters{display:grid;grid-template-columns:1fr 1fr;gap:10px}#chapters button{text-align:left;display:flex;justify-content:space-between;gap:10px}#chapters button.active{background:var(--accentSoft);color:var(--accent);font-weight:650}.setting{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:14px 0}.setting input{accent-color:var(--accent);width:18px;height:18px}.historyRows{max-height:330px;overflow:auto;border-top:1px solid var(--line);margin-top:15px}.historyRow{display:grid;grid-template-columns:1.3fr 1fr .7fr .5fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}.historyRow strong{color:var(--accent)}.historyRow span:last-child{text-align:right}.backupActions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.filelabel{display:inline-block;border:1px solid var(--line);border-radius:9px;padding:9px 14px;cursor:pointer}.filelabel input{display:none}.librarytools{display:flex;gap:10px;margin:15px 0}.librarytools input{flex:1;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px}.tablewrap{max-height:45vh;overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:11px 8px;border-bottom:1px solid var(--line)}th{background:var(--skin-f0f8f2,#f0f8f2);position:sticky;top:0}td button{font-size:12px;padding:6px;margin:2px}td small{color:var(--muted)}details{margin-top:20px}summary{cursor:pointer}textarea{width:100%;min-height:90px;border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0}body.immersive .appHeader,body.immersive .memoryInline,body.immersive #notice,body.immersive footer,body.immersive .roundhead{display:none}body.immersive .progressStrip{position:sticky;top:0;z-index:6;background:#fff;padding:16px 0 12px}body.immersive .stickybar{top:70px}@media(max-width:1150px){.appHeader{grid-template-columns:auto 1fr;gap:5px;height:auto;padding:12px 20px}.chapterButton{justify-content:flex-end}.headerActions{grid-column:1/-1;justify-content:flex-end}.progressLine{grid-template-columns:minmax(0,1fr) auto;gap:9px}.optionGroup,.viewSwitch{grid-row:2}.viewSwitch{justify-self:end}main{padding:0 22px 30px}}@media(max-width:640px){.appHeader{padding:10px 12px}.brand{font-size:16px}.backButton{font-size:13px;padding:5px 9px}.chapterButton{font-size:15px}.headerActions{justify-content:space-between;gap:0}.headerActions button,.modeLabel{font-size:12px;padding:7px 3px}main{padding:0 12px 25px}.progressStrip{padding-top:18px}.progressLine{gap:8px}.progressLine>strong{font-size:15px}.progressTrack{font-size:16px}.optionGroup{gap:10px}.optionGroup label{font-size:13px}.viewSwitch button{font-size:12px;padding:5px 8px}.memoryInline{margin-left:0;flex-wrap:wrap;font-size:12px}.memoryCompare{flex-wrap:wrap}.memoryMetric small{font-size:11px}.roundhead{margin:9px 0}.roundhead h2{font-size:14px}.roundhead p{font-size:12px}.roundstats strong{font-size:14px}.stickybar{gap:6px;flex-wrap:wrap}.stickybar button{font-size:12px;padding:7px}.stickybar span{flex-basis:100%;order:2;font-size:12px}.dictationRow{grid-template-columns:25px minmax(0,1fr);gap:5px;margin-bottom:8px}.rowIndex{font-size:15px}.answerBox{min-height:61px;padding:0 10px}.answerBox input{font-size:17px}.status{flex-basis:22px;width:22px;height:22px;font-size:16px}.wrongItem{grid-template-columns:27px 67px minmax(0,1fr);padding:10px 6px;gap:5px}.wrongItem button{font-size:12px;padding:7px 3px}.historyRow{font-size:11px;gap:3px}.reviewTop h2{font-size:19px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Keep the writing rows close to the progress strip, as in the reference layout. */
.progressStrip{padding-top:22px}
.memoryInline{margin-top:6px}
.notice{margin:7px 0 2px;min-height:0}
.roundhead{margin:6px 0 8px}
.roundhead h2,.roundhead p{display:none}
.stickybar{padding:7px 0 9px;margin-bottom:8px}
@media(max-width:640px){.progressStrip{padding-top:15px}.memoryInline{margin-top:5px}.roundhead{margin:5px 0 7px}}
/* Wrong words are compact, fully clickable cards with only the word and translation. */
.wrongList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.wrongItem{width:100%;min-height:80px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:14px 18px;text-align:left;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 2px 9px var(--skin-29563a0a,#29563a0a);transition:background .15s,border-color .15s,box-shadow .15s}
.wrongItem:hover,.wrongItem.playing{background:var(--skin-f1faf3,#f1faf3);border-color:var(--skin-8dcba0,#8dcba0);box-shadow:0 4px 14px var(--skin-29563a16,#29563a16)}
.wrongWord{font-size:18px;font-weight:650;color:var(--skin-1d5638,#1d5638);line-height:1.3;overflow-wrap:anywhere}
.wrongMeaning{color:var(--muted);font-size:14px;line-height:1.45;overflow-wrap:anywhere}
@media(max-width:640px){.wrongList{grid-template-columns:1fr;gap:9px}.wrongItem{min-height:69px;padding:12px 15px}.wrongWord{font-size:17px}.wrongMeaning{font-size:13px}}

.cloudStatus{white-space:nowrap;border-radius:30px!important;background:var(--skin-eef8f1,#eef8f1)!important;padding:5px 10px!important;color:var(--accent)!important}.cloudStatus[data-state="error"]{background:#fff1ed!important;color:#b35337!important}.cloudStatus[data-state="pending"]{background:var(--skin-f2f5f1,#f2f5f1)!important;color:var(--muted)!important}

.profileButton{border:1px solid var(--skin-c8e4d0,#c8e4d0)!important;border-radius:30px!important;background:var(--skin-f2faf4,#f2faf4)!important;color:var(--skin-246c49,#246c49)!important;font-weight:650;padding:5px 11px!important;white-space:nowrap}.profileDialog{width:min(440px,calc(100% - 24px))}.profileList{display:flex;flex-direction:column;gap:9px;max-height:46vh;overflow:auto}.profileChoice{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 16px;text-align:left;border-radius:10px}.profileChoice.active{background:var(--accentSoft);border-color:var(--skin-8cc7a0,#8cc7a0)}.profileChoice strong{font-size:16px}.profileChoice span{color:var(--muted)}.profileCreate{border-top:1px solid var(--line);margin-top:18px;padding-top:17px}.profileCreate label{display:block;font-size:14px;font-weight:650;margin-bottom:8px}.profileCreate>div{display:flex;gap:8px}.profileCreate input{min-width:0;flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 11px}.profileCreate button{white-space:nowrap}@media(max-width:640px){.profileCreate>div{flex-wrap:wrap}.profileCreate button{width:100%}}

.studyRange{display:flex;align-items:center;gap:10px;margin:5px 0 8px;color:var(--muted);font-size:14px}.studyRange label{white-space:nowrap}.studyRange select{min-width:185px;border-color:var(--skin-c9e5d2,#c9e5d2);background:var(--skin-f5fbf7,#f5fbf7);color:var(--skin-245c3e,#245c3e);padding:7px 11px}@media(max-width:640px){.studyRange{font-size:13px}.studyRange select{min-width:0;max-width:calc(100vw - 110px);font-size:13px}}
