:root{--accent:#477ec7;--soft:#e9f2ff;--ink:#223249;--bg:#f5f8fc;--line:#e2eaf3}*{box-sizing:border-box}body{margin:0;font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink)}body.green{--accent:#3b8c70;--soft:#e6f5ed;--bg:#f5faf7;--line:#e1efe7}body.orange{--accent:#c67b42;--soft:#fff1df;--bg:#fcf8f3;--line:#f2e8d9}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:11px;padding:10px 16px;background:var(--accent);color:white;font-weight:600}button.secondary{background:var(--soft);color:var(--accent)}button.ghost{background:transparent;color:#677991}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:white;color:var(--ink)}label{display:block;margin:12px 0 5px;color:#677991;font-size:13px}.shell{max-width:1100px;margin:auto;padding:24px}.top{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:800;font-size:22px;letter-spacing:2px}.brand span{color:var(--accent)}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav button{background:transparent;color:#76869b}.nav button.active{background:var(--soft);color:var(--accent)}.hero{margin:40px 0 24px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--accent);font-weight:700}.hero h1{font-size:32px;line-height:1.3;margin:10px 0}.muted{color:#8190a2}.grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.card{background:white;border:1px solid var(--line);border-radius:20px;padding:23px;box-shadow:0 10px 40px #3e63800a}.card h2,.card h3{margin:0 0 10px}.task{background:var(--accent);color:white;min-height:220px}.task .muted{color:#ffffffb8}.task button{background:white;color:var(--accent)}.numbers{display:flex;gap:38px;margin:24px 0}.numbers strong{display:block;font-size:28px}.pill{display:inline-block;background:var(--soft);color:var(--accent);border-radius:999px;padding:4px 10px;font-size:12px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stack>*+*{margin-top:14px}.list-item{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.list-item:last-child{border:0}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:min(420px,100%);padding:36px}.login h1{font-size:29px;margin-bottom:0}.login button{width:100%;margin-top:22px}.study{max-width:620px;margin:35px auto}.study-card{text-align:center;min-height:290px;display:flex;flex-direction:column;align-items:center;justify-content:center}.study-card h1{font-size:43px;margin:8px 0}.study-card p{margin:6px}.actions{justify-content:center;margin-top:22px}.toast{position:fixed;right:20px;bottom:20px;background:#25384d;color:white;padding:12px 18px;border-radius:12px;z-index:9;max-width:80%}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}td,th{padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}small{color:#8190a2}pre{white-space:pre-wrap;overflow-wrap:anywhere}.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pair button{min-height:55px}.pair button.selected{outline:3px solid var(--accent)}.pair button.matched{opacity:.35}.login .brand{margin-bottom:40px}@media(max-width:700px){.shell{padding:18px}.top{align-items:flex-start;flex-direction:column}.nav{width:100%;overflow:auto;flex-wrap:nowrap}.nav button{white-space:nowrap;padding:8px 10px}.hero{margin:26px 0 18px}.hero h1{font-size:26px}.grid{grid-template-columns:1fr}.card{padding:19px}.study-card h1{font-size:34px}.numbers{gap:25px}}

[hidden]{display:none!important}
/* Learning workspace */
:root{--accent:#536dcf;--soft:#edf0ff;--ink:#222a40;--bg:#f8f9fc;--line:#e7eaf2}body{background:var(--bg)}.shell{max-width:1160px;padding:26px 30px 64px}.top{padding-bottom:22px;border-bottom:1px solid var(--line)}.brand{font-size:21px;letter-spacing:1px}.brand span{display:inline-grid;place-items:center;background:var(--accent);color:#fff;border-radius:9px;width:29px;height:29px;font-size:19px}.nav button{transition:background .2s,color .2s,transform .2s}.nav button:hover{color:var(--accent);transform:translateY(-1px)}button{transition:transform .18s,box-shadow .18s,background .18s}button:not(:disabled):active{transform:scale(.97)}button:focus-visible{outline:3px solid #a6b7ff;outline-offset:3px}.home-head{display:flex;align-items:center;justify-content:space-between;margin:54px 0 30px}.home-head h1,.game-header h1{font-size:clamp(32px,4vw,48px);letter-spacing:-1.5px;line-height:1.18;margin:12px 0}.home-head p{margin:0}.streak{display:grid;grid-template-columns:auto auto;align-items:center;gap:0 10px}.streak span{grid-row:span 2;font-size:26px;color:#e2a453}.streak strong{font-size:27px;line-height:1}.streak small{font-size:12px}.workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:24px}.focus-panel{position:relative;overflow:hidden;min-height:360px;border-radius:24px;padding:30px 34px;background:#292f4c;color:#fff}.focus-panel:after{content:'✳';position:absolute;right:-20px;top:10px;font-size:190px;line-height:1;color:#ffffff09;pointer-events:none}.focus-top,.progress-line{display:flex;justify-content:space-between;align-items:center}.focus-top .eyebrow{color:#b1bcff}.status-dot{font-size:12px;color:#c6cdea}.status-dot:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#b1efcc;margin-right:7px}.focus-panel h2{font-size:30px;margin:35px 0 3px;letter-spacing:-.5px}.focus-desc{color:#b6bdd4;margin:0 0 30px}.progress-line{font-size:12px;color:#c3c9de}.progress-track,.study-progress,.match-progress,.timer-track{height:5px;border-radius:9px;background:#ffffff25;overflow:hidden;margin-top:9px}.progress-track i,.study-progress i,.match-progress i,.timer-track i{display:block;height:100%;background:#a8b8ff;border-radius:9px;transition:width .45s ease}.focus-stats{display:flex;gap:40px;margin:24px 0}.focus-stats strong{display:block;font-size:25px;line-height:1.2}.focus-stats em{font-style:normal;font-size:14px;color:#a4aec9}.focus-stats small{color:#a4aec9}.focus-panel button:not(.ghost){background:#fff;color:#30395d}.focus-panel .ghost{color:#c7cde1}.task-panel{padding:6px 0 0 10px}.panel-title{display:flex;justify-content:space-between;align-items:center}.panel-title h3{font-size:20px;margin:2px 0}.task-count{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--soft);color:var(--accent);font-weight:700}.task-panel>p{font-size:13px}.task-list{margin:20px 0}.task-row{display:flex;align-items:center;border-bottom:1px solid var(--line)}.task-select{display:flex;flex:1;align-items:center;gap:13px;background:transparent;text-align:left;color:var(--ink);padding:14px 0}.task-select strong,.task-select small{display:block}.task-select small{font-weight:400}.task-orb{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--soft);color:var(--accent);font-size:18px}.is-current .task-orb{background:var(--accent);color:white}.task-close{background:none;color:#a5aebe;font-size:24px;padding:4px 10px}.text-link,.back-link,.edit-previous{padding:0;background:none;color:var(--accent);font-size:13px}.empty-small{padding:22px 0;color:#98a2b2}.history{margin-top:40px;border-top:1px solid var(--line);padding:18px 0}.history summary{font-weight:700;cursor:pointer}.history summary span{font-weight:400;color:#99a3b3;font-size:12px;margin-left:10px}.history-list{max-width:700px}
/* Word learning */
.study{max-width:700px;margin:45px auto}.study-top{display:flex;justify-content:space-between;color:#8d98aa;font-size:13px}.study-progress{background:#e7ebf4;height:5px;margin:20px 0 26px}.study-progress i{background:var(--accent)}.word-stage{position:relative;min-height:350px;border-radius:24px;background:white;border:1px solid var(--line);overflow:hidden;box-shadow:0 18px 60px #3446780a}.word-stage-inner{animation:word-enter .38s ease both;padding:35px 24px}.word-stage h1{font-size:clamp(42px,7vw,64px);letter-spacing:-1.5px;margin:10px 0 0}.phonetic{color:#8d98aa;font-size:16px}.sound-button{background:var(--soft);color:var(--accent);border-radius:50%;width:35px;height:35px;padding:0;margin-left:8px}.recall-hint{margin-top:30px!important;color:#aab2bf;font-size:13px}.word-answer{animation:answer-in .28s ease both;margin-top:25px;max-width:530px}.word-answer strong{font-size:18px}.word-answer p{color:#7b8799;margin-top:14px}.word-answer small{display:block}.study-controls{text-align:center;margin-top:26px}.answer-label{font-size:13px;color:#98a2b2;margin-bottom:13px}.answer-buttons{display:flex;justify-content:center;gap:12px}.answer-btn{width:135px;background:white;color:#59677e;border:1px solid var(--line);padding:13px;display:flex;align-items:center;justify-content:center;gap:9px}.answer-btn b{font-size:19px}.answer-btn.known{background:var(--accent);color:#fff;border-color:var(--accent)}.answer-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 18px #4e60a626}.reveal-button{min-width:220px;padding:14px 20px}.reveal-button span{margin-left:15px}.edit-previous{display:block;margin:22px auto;color:#8d98aa}.effect-layer{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center}.success-ring{display:grid;place-items:center;width:80px;height:80px;border-radius:50%;background:#66cda3;color:white;font-size:40px;animation:pop-success .55s ease both}.effect-layer i{position:absolute;width:8px;height:8px;border-radius:50%;background:#8adfbe;animation:burst .55s ease-out both;--angle:calc(var(--i) * 45deg)}.completion,.game-result{text-align:center;padding:85px 15px}.completion-mark,.result-spark{display:grid;place-items:center;margin:0 auto 22px;width:72px;height:72px;border-radius:25px;background:var(--soft);color:var(--accent);font-size:36px;animation:pop-success .5s both}.completion h1,.game-result h1{font-size:34px;margin:10px 0}
/* Word arcade */
.game-header{margin:54px 0 30px}.game-header h1 span{color:var(--accent)}.game-lobby{display:grid;grid-template-columns:1fr 1fr;gap:20px}.game-tile{text-align:left;padding:0;overflow:hidden;border-radius:22px;color:var(--ink);background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px #40507808}.game-tile:hover{transform:translateY(-5px);box-shadow:0 16px 36px #4050781a}.game-art{height:210px;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden}.match-art{background:#e9edff}.match-art span{display:grid;place-items:center;width:95px;height:112px;background:white;border-radius:17px;font-size:36px;color:#526bd0;box-shadow:0 12px 24px #536dcf1e;transform:rotate(-8deg);animation:float-card 4s ease-in-out infinite}.match-art span:last-child{transform:rotate(8deg);animation-delay:-2s}.match-art i{z-index:1;font-style:normal;color:#6d80d6;font-size:27px;margin:0 -4px}.clock-art{background:#e1f4ec}.clock-face{display:grid;place-content:center;text-align:center;width:150px;height:150px;border:9px solid #fff;border-radius:50%;background:#bde8d7;box-shadow:0 12px 26px #318a6a1c;color:#328266;transform:rotate(-9deg)}.clock-face span{font-size:49px;line-height:1}.clock-face small{color:#4c9d80;font-size:10px;letter-spacing:2px}.clock-art>i{position:absolute;margin-left:170px;margin-top:-110px;color:#56b893;font-size:34px;animation:float-card 3s ease-in-out infinite}.game-tile-copy{padding:23px 26px 26px}.game-tag,.column-label{font-size:10px;letter-spacing:1.6px;color:#9aa6b7}.game-tile-copy h2{margin:8px 0;font-size:23px}.game-tile-copy h2 span{float:right;color:var(--accent)}.game-tile-copy p{margin:0 0 15px;color:#758198;font-weight:400}.game-tile-copy small{font-weight:400}.game-note{display:flex;align-items:center;gap:14px;margin-top:28px;color:#7b8799}.game-note>span{font-size:25px;color:var(--accent)}.game-note p{margin:0;font-size:13px}.game-play-head{margin:42px 0;display:flex;justify-content:space-between;align-items:center}.play-count{font-size:13px;color:#8792a4}.play-title{text-align:center}.play-title h1{font-size:31px;margin:0}.match-progress{background:#e8ebf4;max-width:700px;margin:25px auto}.match-progress i{background:var(--accent)}.match-board{max-width:800px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:18px}.column-label{margin:0 0 10px 5px}.match-col{display:flex;flex-direction:column;gap:9px}.match-option{min-height:62px;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;background:white;border:1px solid var(--line);color:var(--ink);padding:15px 18px}.match-option i,.challenge-options i{font-style:normal;color:#b8c1ce}.match-option.meaning{font-size:13px;font-weight:400}.match-option.selected{border-color:var(--accent);background:var(--soft);color:var(--accent);box-shadow:0 0 0 2px #536dcf15}.match-option.matched{background:#edf8f1;color:#5b9a74;border-color:#d4eddd;opacity:.75}.play-foot{text-align:center;color:#9aa6b7;font-size:12px;margin:25px}.challenge-workspace{display:grid;grid-template-columns:190px 1fr;gap:70px;max-width:850px;margin:70px auto}.challenge-timer{color:var(--accent)}.challenge-timer span{display:block;font-size:70px;line-height:1;font-weight:700;letter-spacing:-3px}.challenge-timer small{font-size:10px;letter-spacing:1.5px}.timer-track{background:#e7eaf2}.timer-track i{background:var(--accent);transition:width 1s linear}.challenge-question h1{font-size:clamp(40px,6vw,64px);letter-spacing:-2px;margin:10px 0}.challenge-options{display:grid;gap:10px;margin-top:25px}.challenge-options button{display:flex;align-items:center;gap:15px;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line);font-weight:500;padding:14px}.challenge-options button>span:nth-child(2){flex:1}.option-key{display:grid;place-items:center;background:var(--soft);color:var(--accent);border-radius:8px;width:32px;height:32px;font-size:12px}.challenge-options button:hover:not(:disabled),.match-option:hover:not(:disabled){border-color:#a7b5ed}.flash-right{background:#ddf5e8!important;color:#278653!important}.flash-wrong{background:#ffebe9!important;color:#bd5b53!important;animation:shake .3s}.result-stats{display:flex;justify-content:center;gap:60px;margin:35px 0}.result-stats strong,.result-stats span{display:block}.result-stats strong{font-size:38px}.result-stats span{color:#97a2b2}.game-result>button{margin:4px}
@keyframes word-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes answer-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pop-success{0%{opacity:0;transform:scale(.5)}55%{opacity:1;transform:scale(1.15)}100%{opacity:1;transform:scale(1)}}@keyframes burst{from{opacity:1;transform:rotate(var(--angle)) translateX(15px)}to{opacity:0;transform:rotate(var(--angle)) translateX(92px)}}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes float-card{0%,100%{translate:0 0}50%{translate:0 -7px}}@media(max-width:700px){.shell{padding:18px 18px 50px}.home-head,.game-header{margin:35px 0 24px}.home-head h1,.game-header h1{font-size:32px}.workspace{grid-template-columns:1fr;gap:22px}.focus-panel{min-height:0;padding:25px}.focus-panel h2{margin-top:28px}.task-panel{padding:0}.game-lobby{grid-template-columns:1fr}.game-art{height:160px}.game-play-head{margin:28px 0}.match-board{gap:9px}.match-option{padding:12px;min-height:62px;overflow-wrap:anywhere}.match-option.meaning{font-size:12px}.challenge-workspace{grid-template-columns:1fr;gap:35px;margin:35px 0}.challenge-timer span{font-size:48px}.word-stage{min-height:310px}.study{margin:30px auto}.answer-buttons{gap:8px}.answer-btn{width:33%;padding:12px 5px;font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.dictation-stage{margin-top:24px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(24px,5vw,48px);box-shadow:0 18px 60px #3446780a;animation:word-enter .35s ease both}.dictation-stage h1{font-size:clamp(24px,4vw,36px);line-height:1.45;letter-spacing:-.4px;margin:22px 0 4px}.dictation-stage .dictation-pos{color:var(--accent);font-size:14px;margin:0}.dictation-audio{background:var(--soft);color:var(--accent);margin:14px 0 10px}.dictation-form{margin-top:22px}.dictation-input-row{display:flex;gap:10px}.dictation-input-row input{font-size:17px;min-width:0;padding:13px 15px}.dictation-input-row button{white-space:nowrap;padding:12px 22px}.dictation-hint{font-size:12px;color:#98a2b2;margin-top:15px}.dictation-feedback{display:flex;gap:12px;align-items:flex-start;border-radius:13px;padding:16px;margin-top:22px;animation:answer-in .3s ease both}.dictation-feedback>span{font-size:22px;line-height:1.2}.dictation-feedback.is-correct{background:#eaf8ef;color:#298252}.dictation-feedback.is-wrong{background:#fff2ee;color:#b05b4c}.dictation-solution{color:var(--ink);font-size:21px;font-weight:700;margin-top:3px}.dictation-next{margin-top:18px}.dictation-link{display:block;margin:20px auto 0;background:transparent;color:var(--accent);padding:7px 10px}.dictation-link:hover{background:var(--soft)}@media(max-width:500px){.dictation-input-row{flex-direction:column}.dictation-input-row button{width:100%}}
.book-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--soft);font-size:25px;margin-bottom:15px}.import-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.import-fields{margin-top:18px;color:#70809b}.import-fields summary{cursor:pointer}.import-preview{margin-top:28px;border-top:1px solid var(--line);padding-top:25px}.preview-list{background:var(--bg);border-radius:12px;padding:15px;margin:14px 0;line-height:2}.anki-import{max-width:800px}@media(max-width:600px){.import-two{grid-template-columns:1fr;gap:0}}
.focus-desc{white-space:pre-line;overflow-wrap:anywhere}.focus-group{color:#c6cdea;font-size:12px;margin:-15px 0 22px}.focus-day{background:#ffffff20!important;color:#fff!important}.book-card h3{margin-top:12px}.book-progress{color:#7e8a9c;margin:14px 0 20px}.book-details-link{background:transparent;color:var(--accent);font-size:13px;padding:9px}.group-overlay{position:fixed;inset:0;background:#17203eb3;z-index:50;display:grid;place-items:center;padding:20px}.group-dialog,.book-detail-dialog{background:#fff;border-radius:22px;width:min(570px,100%);max-height:min(85vh,760px);padding:25px;box-shadow:0 25px 90px #101a3b40;display:flex;flex-direction:column}.book-detail-dialog{max-width:480px}.group-dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.group-dialog-head h2{margin:5px 0;font-size:26px}.group-dialog-head p{margin:0}.group-dialog-close{background:#f3f5f9;color:#64738c;font-size:25px;line-height:1;padding:3px 10px}.group-help{font-size:13px;color:#71809a;line-height:1.7;margin:18px 0}.group-list{overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:2px}.group-option{background:#f7f8fc;border:1px solid #eef0f6;text-align:left;color:var(--ink);display:grid;grid-template-columns:1fr auto;gap:1px 8px;padding:11px 12px}.group-option:hover,.group-option.active{border-color:#94a7eb;background:var(--soft)}.group-number{font-weight:700}.group-meta{grid-column:1;font-weight:400;font-size:11px;color:#8591a2}.group-arrow{grid-column:2;grid-row:1/3;align-self:center;color:var(--accent)}.group-foot{font-size:12px;color:#8490a2;margin:15px 0 0}.book-detail-dialog h2{margin:12px 0 20px}.detail-heading{font-weight:700;font-size:13px;color:#8693a6}.detail-description{white-space:pre-line;overflow-wrap:anywhere;line-height:1.7;max-height:28vh;overflow:auto}.detail-facts{display:flex;gap:30px;padding:20px 0;border-top:1px solid var(--line);margin-top:8px}.detail-facts small,.detail-facts strong{display:block}.detail-facts strong{margin-top:5px}.book-detail-dialog>button{align-self:flex-start}.group-dialog .group-dialog-close:focus-visible{outline:3px solid #a6b7ff}@media(max-width:500px){.group-dialog,.book-detail-dialog{padding:20px}.group-list{grid-template-columns:1fr 1fr}.detail-facts{gap:16px;flex-wrap:wrap}}
.book-detail-dialog>.pill{align-self:flex-start}
/* Keep the current task compact while retaining the full introduction. */
.focus-panel{overflow:visible;isolation:isolate}.focus-panel:after{right:0;overflow:hidden}.focus-description{position:relative;margin:0 0 25px}.focus-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.6;max-height:3.2em;margin:0;white-space:pre-line}.focus-about{position:relative;margin-top:7px;width:max-content;max-width:100%;z-index:5}.focus-about summary{cursor:pointer;list-style:none;font-size:12px;color:#c1ccff;outline-offset:4px}.focus-about summary::-webkit-details-marker{display:none}.focus-about summary span{display:inline-block;transition:transform .2s}.focus-about[open] summary span{transform:rotate(45deg)}.focus-about-popover{display:none;position:absolute;top:calc(100% + 9px);left:0;width:min(480px,calc(100vw - 90px));padding:18px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 45px #11182d35}.focus-about[open] .focus-about-popover{display:block;animation:answer-in .18s ease both}.focus-about-title{font-weight:700;font-size:13px;margin-bottom:8px}.focus-about-copy{white-space:pre-line;overflow-wrap:anywhere;max-height:260px;overflow-y:auto;font-size:13px;line-height:1.8;color:#617087}.focus-group{margin:0 0 20px}.wrong-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.wrong-dictation{background:var(--accent);color:white}.wrong-actions button{white-space:nowrap}@media(hover:hover){.focus-about:hover .focus-about-popover{display:block;animation:answer-in .18s ease both}}@media(max-width:500px){.focus-about-popover{width:min(400px,calc(100vw - 76px));max-width:calc(100vw - 76px)}.wrong-actions{gap:5px}.wrong-actions button{padding:8px 10px;font-size:13px}}
.focus-panel .focus-about-trigger{background:transparent!important;color:#c1ccff!important;cursor:pointer;font-size:12px;font-weight:600;padding:0}.focus-about-trigger span{display:inline-block;transition:transform .2s}.focus-about.is-open .focus-about-trigger span{transform:rotate(45deg)}.focus-about.is-open .focus-about-popover{display:block;animation:answer-in .18s ease both}
@media(max-width:500px){.focus-stats{gap:18px;flex-wrap:wrap}.focus-stats strong{font-size:22px}}
.account-menu{display:flex;align-items:center;gap:9px;min-width:0}.account-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;color:var(--accent);background:var(--soft);font-weight:700}.account-text{min-width:0;display:flex;flex-direction:column;line-height:1.25}.account-text strong{font-size:13px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-text small{font-size:11px}.account-menu .ghost{padding:8px}.settings-account{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);color:#62718a}.settings-account strong{color:var(--ink)}.settings-account small{background:var(--soft);color:var(--accent);border-radius:99px;padding:2px 8px}.muted,small{color:#65748a}@media(max-width:700px){.top{display:grid;grid-template-columns:1fr auto;gap:14px}.top .nav{grid-row:2;grid-column:1/-1}.account-menu{grid-column:2;grid-row:1}.account-text strong{max-width:90px}}

/* Word details are revealed only after the learner recalls the meaning. */
.word-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}.word-tags span{padding:4px 9px;border-radius:99px;background:var(--soft);color:var(--accent);font-size:12px;overflow-wrap:anywhere}.word-meaning{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.word-meaning span{color:var(--accent);font-size:13px;font-weight:700}.word-meaning strong{overflow-wrap:anywhere}.word-answer .word-example{border-left:3px solid var(--accent);padding:2px 0 2px 14px;margin-top:20px}.word-answer .word-example small,.word-note small{color:#66758b;font-size:12px;font-weight:700}.word-answer .word-example p{margin:5px 0 0;color:#34445e;overflow-wrap:anywhere}.word-answer .word-example .example-translation{color:#66758b;font-size:13px}.word-notes{display:grid;gap:8px;margin-top:20px}.word-note{display:flex;gap:10px;padding:11px 13px;background:#f7f9fc;border-radius:12px}.word-note-icon{color:var(--accent)}.word-answer .word-note p{margin:4px 0 0;color:#46556a;font-size:14px;line-height:1.55;overflow-wrap:anywhere}

/* Keep the word centered while aligning all supporting details to one column. */
.word-stage-inner{width:100%;min-width:0}
.word-answer{width:100%;margin:25px auto 0;text-align:left}
.word-tags{align-items:center}
.word-note{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:10px}
.word-note-icon{display:block;width:22px;text-align:center;line-height:1.6}
.word-note>div{min-width:0}
.word-note small,.word-answer .word-note p{text-align:left}
@media(max-width:500px){.word-stage-inner{padding:30px 20px}.word-note{grid-template-columns:20px minmax(0,1fr);gap:8px}.word-note-icon{width:20px}}

/* A quiet study desk: neutral paper and a single coordinated accent per theme. */
:root{--accent:#365f83;--soft:#eaf1f7;--ink:#283544;--bg:#f6f8fa;--line:#dfe7ed;--paper:#fff;--muted:#5e6e7b;--panel:#edf3f8;--panel-line:#d9e5ee;--track:#d3e0e9;--art:#e5eff7;--art-deep:#c9dce9}
body.green{--accent:#396d58;--soft:#eaf3ed;--ink:#2d3b34;--bg:#f7f9f7;--line:#dfe8e1;--paper:#fff;--muted:#5e7065;--panel:#edf5ef;--panel-line:#dce9df;--track:#d3e3d7;--art:#e6f1e9;--art-deep:#cde1d1}
body.orange{--accent:#98592f;--soft:#faf0e9;--ink:#40372f;--bg:#faf8f6;--line:#ece3dc;--paper:#fff;--muted:#76685e;--panel:#faf1ea;--panel-line:#efdfd3;--track:#ead8c9;--art:#f6e9de;--art-deep:#ead1bd}
body{background:var(--bg);color:var(--ink)}
.top,.task-row{border-color:var(--line)}.brand,.home-head h1,.game-header h1,.word-stage h1,.challenge-question h1{color:var(--ink)}.brand span{background:var(--accent);border-radius:10px}
.nav button,.muted,small,.home-head p,.study-top,.answer-label,.phonetic,.recall-hint,.game-tile-copy p,.game-note,.game-tag,.column-label,.play-count,.play-foot{color:var(--muted)}.nav button.active{background:var(--soft);color:var(--accent)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.home-head{margin:48px 0 28px}.home-head h1,.game-header h1{letter-spacing:-1px}.streak{padding:11px 17px;background:var(--paper);border:1px solid var(--line);border-radius:16px}.streak span{color:var(--accent)}.streak small{color:var(--muted)}
.workspace{gap:28px}.focus-panel{background:var(--panel);color:var(--ink);border:1px solid var(--panel-line);box-shadow:0 12px 36px #263b5010}.focus-panel:after{content:'✳';right:20px;top:24px;font-size:86px;color:var(--accent);opacity:.1}.focus-panel>*{position:relative;z-index:1}.focus-top .eyebrow,.status-dot,.progress-line,.focus-desc,.focus-group,.focus-stats em,.focus-stats small,.focus-panel .ghost{color:var(--muted)}.focus-stats strong{color:var(--ink)}.status-dot:before{background:var(--accent)}.focus-panel h2{font-size:clamp(24px,3vw,30px);margin-top:30px}.focus-panel .focus-about-trigger{background:transparent!important;color:var(--accent)!important}.focus-panel .focus-about-popover{color:var(--ink)}.focus-about-copy{color:var(--muted)}
.progress-track,.study-progress,.match-progress,.timer-track{background:var(--track);height:7px}.progress-track i,.study-progress i,.match-progress i,.timer-track i{background:var(--accent)}.focus-panel button:not(.ghost){background:var(--accent);color:#fff}.focus-panel button.focus-day{background:var(--paper)!important;color:var(--accent)!important;border:1px solid var(--panel-line)}
.task-panel{padding:7px 0 0 12px}.task-orb,.book-icon{background:var(--soft);color:var(--accent)}.is-current .task-orb{background:var(--accent);color:white}.task-close,.empty-small{color:var(--muted)}
.card,.word-stage,.dictation-stage,.game-tile,.group-dialog,.book-detail-dialog{background:var(--paper);border-color:var(--line);box-shadow:0 10px 32px #293c4a0d}.book-card{transition:transform .2s,box-shadow .2s}.book-card:hover{transform:translateY(-2px);box-shadow:0 13px 30px #293c4a16}
.word-stage{border-radius:24px}.word-stage-inner{padding:38px 30px}.word-stage h1{overflow-wrap:anywhere}.sound-button{width:44px;height:44px}.word-answer{margin-top:30px}.word-meaning{padding:0 1px}.word-meaning strong{font-size:21px}.word-answer .word-example{background:var(--bg);border-radius:0 12px 12px 0;padding:10px 14px}.word-answer .word-example small,.word-note small,.word-answer .word-example .example-translation{color:var(--muted)}.word-answer .word-example p,.word-answer .word-note p{color:var(--ink)}.word-notes{gap:9px}.word-note{background:var(--bg);border:1px solid var(--line);padding:12px 14px}.answer-btn{min-height:48px;border-radius:14px;background:var(--paper);color:var(--ink)}.answer-btn.known{background:var(--accent);color:white}.reveal-button{min-height:50px}.dictation-link{min-height:44px}.success-ring,.effect-layer i{background:var(--accent)}
.game-header h1 span{color:var(--accent)}.game-tile{border-radius:22px}.game-tile:hover{box-shadow:0 14px 32px #293c4a1a}.match-art,.clock-art{background:var(--art)}.match-art span{background:var(--paper);color:var(--accent);box-shadow:0 12px 24px #293c4a12}.match-art i,.clock-art>i,.clock-face,.clock-face small{color:var(--accent)}.clock-face{background:var(--art-deep);border-color:var(--paper);box-shadow:0 12px 26px #293c4a12}.match-option,.challenge-options button{background:var(--paper);border-color:var(--line);min-height:52px;border-radius:14px}.match-option.selected,.match-option.matched{background:var(--soft);border-color:var(--accent);color:var(--accent)}.challenge-options button:hover:not(:disabled),.match-option:hover:not(:disabled){border-color:var(--accent)}.challenge-timer{background:var(--panel);border:1px solid var(--panel-line);border-radius:20px;padding:20px;align-self:start}.challenge-timer small{color:var(--muted)}.game-result .result-spark,.completion-mark{background:var(--soft);color:var(--accent)}
.group-option{background:var(--bg);border-color:var(--line)}.group-option:hover,.group-option.active{background:var(--soft);border-color:var(--accent)}.toast{background:var(--ink);color:#fff;border-radius:14px;box-shadow:0 10px 25px #25344324}
@media(max-width:700px){.shell{padding:16px 16px 48px}.home-head{gap:14px}.home-head h1,.game-header h1{font-size:30px}.streak{padding:9px 12px}.workspace{gap:25px}.focus-panel{padding:24px}.focus-panel:after{font-size:60px;right:16px}.task-panel{padding:0}.word-stage-inner{padding:30px 20px}.answer-buttons{gap:8px}.answer-btn{min-height:52px;flex:1;max-width:140px}.answer-btn b{font-size:17px}.game-play-head{gap:8px}.challenge-workspace{gap:22px}.challenge-timer{display:flex;align-items:center;gap:12px;padding:12px 16px}.challenge-timer span{font-size:36px}.challenge-timer .timer-track{flex:1;margin:0}.match-option{padding:12px;overflow-wrap:anywhere}.nav button{min-height:44px}}
@media(max-width:380px){.streak{padding:8px}.streak span{font-size:20px}.home-head h1{font-size:27px}.answer-btn{gap:4px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Playful learning interface, inspired by the MotionSites style-guide reference. */
:root{--accent:#287fb7;--accent-shadow:#1c6594;--soft:#e8f6fd;--ink:#3b454b;--bg:#fff;--line:#e5e8e9;--paper:#fff;--muted:#67747a;--panel:#f3faff;--panel-line:#d6edf9;--track:#e5ecef;--art:#e7f6fd;--art-deep:#bde6f9}
body.green{--accent:#348b09;--accent-shadow:#277307;--soft:#eff9e8;--ink:#3e4541;--bg:#fff;--line:#e5e8e5;--paper:#fff;--muted:#67736a;--panel:#f4fbef;--panel-line:#e0f1d6;--track:#e4ebe2;--art:#eff9e6;--art-deep:#d6f0c2}
body.orange{--accent:#ad6200;--accent-shadow:#8c4f00;--soft:#fff5e5;--ink:#484139;--bg:#fff;--line:#ebe7e1;--paper:#fff;--muted:#776d62;--panel:#fff9ef;--panel-line:#f7e8d1;--track:#eee8df;--art:#fff3df;--art-deep:#ffe1ad}
body{font-family:Nunito,"Arial Rounded MT Bold","PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:var(--bg);color:var(--ink)}
.shell{max-width:1160px}.top{border-bottom:2px solid var(--line);padding-bottom:18px}.brand{font-weight:900;font-size:23px}.brand span{width:34px;height:34px;border-radius:12px;font-size:21px}.nav button{font-weight:800;border-radius:12px;color:var(--muted)}.nav button.active{background:var(--soft);color:var(--accent)}
button{font-weight:800;border-radius:14px;transition:transform .16s,box-shadow .16s,background .16s,border-color .16s}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
button:not(.secondary):not(.ghost):not(.back-link):not(.text-link):not(.edit-previous):not(.dictation-link):not(.task-select):not(.task-close):not(.focus-about-trigger):not(.book-details-link):not(.group-dialog-close):not(.sound-button):not(.game-tile):not(.match-option):not(.group-option):not(.wrong-dictation):not(:disabled){box-shadow:0 4px 0 var(--accent-shadow)}
button.secondary,.answer-btn:not(.known),.match-option,.challenge-options button,.group-option{border:2px solid var(--line);box-shadow:0 3px 0 var(--line)}
button:not(:disabled):active{transform:translateY(3px);box-shadow:none!important}.nav button:not(:disabled),.game-tile:not(:disabled){box-shadow:none!important}
.home-head{margin:48px 0 28px}.home-head h1,.game-header h1{font-size:clamp(32px,4vw,45px);font-weight:900;letter-spacing:-1px}.eyebrow{font-weight:900;letter-spacing:1.3px}.streak{background:var(--soft);border:0;border-radius:18px}.streak span{font-size:27px;color:var(--accent)}
.focus-panel{border:2px solid var(--panel-line);background:var(--panel);border-radius:24px;box-shadow:none;padding:30px 34px}.focus-panel:after{font-size:94px;color:var(--accent);opacity:.12}.focus-panel h2{font-weight:900}.focus-top .eyebrow,.status-dot,.progress-line,.focus-desc,.focus-group,.focus-stats em,.focus-stats small,.focus-panel .ghost{color:var(--muted)}.focus-stats strong{font-weight:900;color:var(--ink)}.focus-panel button.focus-day{background:white!important;color:var(--accent)!important;border:2px solid var(--panel-line);box-shadow:0 3px 0 var(--panel-line)!important}.focus-panel .focus-about-trigger{background:none!important;box-shadow:none!important;color:var(--accent)!important}.focus-panel .focus-about-popover{background:white}
.progress-track,.study-progress,.match-progress,.timer-track{height:12px;background:var(--track);border-radius:20px}.progress-track i,.study-progress i,.match-progress i,.timer-track i{background:var(--accent);border-radius:20px}.task-count,.task-orb,.book-icon{border-radius:14px}.task-row{border-bottom:2px solid var(--line)}.task-orb{font-size:20px}.task-close{box-shadow:none!important}
.card,.word-stage,.dictation-stage,.game-tile,.group-dialog,.book-detail-dialog{border:2px solid var(--line);box-shadow:none;border-radius:22px}.book-card:hover,.game-tile:hover{border-color:var(--panel-line);box-shadow:0 8px 0 var(--panel-line)!important;transform:translateY(-3px)}.book-card h3,.panel-title h3{font-weight:900}.pill,.word-tags span{font-weight:800}
.word-stage{border-radius:24px}.word-stage h1{font-weight:900;font-size:clamp(42px,7vw,64px)}.word-stage-inner{padding:38px 30px}.word-meaning strong{font-size:22px;font-weight:900}.word-note{background:#f7f9fa;border:0;border-radius:14px}.word-example{background:#f7f9fa!important}.word-answer .word-note p{line-height:1.6}.answer-btn{min-height:52px}.answer-btn.known{border-color:var(--accent)}.answer-btn:not(.known){background:white;color:var(--muted)}.answer-btn:hover:not(:disabled){transform:translateY(-2px)}.sound-button{box-shadow:none!important}.dictation-link{font-weight:800}
.game-art{height:190px}.match-art,.clock-art{background:var(--art)}.match-art span{border:2px solid var(--panel-line);box-shadow:0 5px 0 var(--panel-line);color:var(--accent)}.match-art i,.clock-art>i{color:var(--accent)}.clock-face{background:var(--art-deep);border:9px solid white;box-shadow:0 5px 0 var(--panel-line);color:var(--accent)}.clock-face small{color:var(--accent)}.game-tile-copy h2,.play-title h1{font-weight:900}.challenge-timer{background:var(--panel);border:2px solid var(--panel-line)}.match-option.selected{background:var(--soft);border-color:var(--accent);color:var(--accent)}.match-option.matched{background:var(--soft);border-color:var(--panel-line);color:var(--accent);opacity:.75}.challenge-options button{box-shadow:0 3px 0 var(--line)!important}.match-option:hover:not(:disabled),.challenge-options button:hover:not(:disabled){border-color:var(--accent)}.game-result .result-spark,.completion-mark{background:var(--soft);color:var(--accent)}
input,select,textarea{border:2px solid var(--line);border-radius:12px}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.group-option.active{background:var(--soft);border-color:var(--accent)}.toast{background:var(--ink);color:#fff}
@media(max-width:700px){.top{padding-bottom:12px}.nav{gap:4px}.nav button{min-height:44px;white-space:nowrap}.home-head{margin-top:32px}.focus-panel{padding:24px}.focus-panel:after{font-size:65px}.word-stage-inner{padding:30px 20px}.game-art{height:150px}.answer-btn{min-height:52px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Keep the introduction above subsequent task content and actions. */
.focus-panel > .focus-description{z-index:10}

/* Trial access and private support */
.book-locked{border-style:dashed}.book-locked .book-icon{filter:grayscale(.35)}.support-layout{display:grid;grid-template-columns:minmax(0,720px);gap:20px}.support-layout.is-admin{grid-template-columns:minmax(200px,260px) minmax(0,1fr)}.support-list h3{margin-bottom:12px}.support-person{width:100%;display:block;text-align:left;background:transparent;color:var(--ink);padding:12px;border-radius:12px;box-shadow:none!important}.support-person.active{background:var(--soft);color:var(--accent)}.support-person strong,.support-person small{display:block}.support-person small{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.support-chat-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px}.support-messages{height:360px;overflow-y:auto;padding:20px 0;display:flex;flex-direction:column;gap:14px}.support-message{max-width:min(80%,520px)}.support-message.mine{align-self:flex-end}.support-message small{display:block;margin:0 4px 4px}.support-message p{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin:0}.support-message.mine p{background:var(--soft);border-color:var(--panel-line)}.support-chat textarea{resize:vertical;min-height:80px}.access-list .list-item{flex-wrap:wrap}@media(max-width:700px){.support-layout,.support-layout.is-admin{grid-template-columns:1fr}.support-list{max-height:210px;overflow-y:auto}.support-messages{height:300px}.support-message{max-width:90%}}

/* Public landing page and always-visible contact entry */
.landing{color:#243c2e;background:#f8fbf5;min-height:100vh}.landing-nav{max-width:1180px;margin:auto;padding:22px 30px;display:flex;justify-content:space-between;align-items:center}.landing-nav-actions,.landing-actions{display:flex;align-items:center;gap:24px}.landing a{color:#4a6655;text-decoration:none;font-weight:700}.landing-nav-actions a{font-size:14px}.landing-hero{max-width:1180px;margin:auto;padding:70px 30px 85px;min-height:560px;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.landing-kicker{color:#47825b;font-size:11px;font-weight:900;letter-spacing:2px}.landing-copy h1{font-size:clamp(48px,6vw,78px);line-height:1.16;letter-spacing:-3px;margin:22px 0}.landing-copy h1 em{font-style:normal;color:#46935b}.landing-copy>p{font-size:18px;color:#617667;line-height:1.9;max-width:410px}.landing-actions{margin:30px 0 18px}.landing-actions button,.landing-end button{min-height:54px;padding:14px 23px}.landing-copy>small{display:block;color:#728678}.landing-art{position:relative;height:420px;display:grid;place-items:center}.art-orbit{position:absolute;border:1px solid #dcebd9;border-radius:50%}.orbit-one{width:355px;height:355px}.orbit-two{width:420px;height:420px}.sprout{width:270px;z-index:1;animation:float-card 5s ease-in-out infinite}.art-word{position:absolute;z-index:2;background:white;border:1px solid #e8f0e5;box-shadow:0 14px 32px #415d3815;border-radius:18px;padding:15px 19px;display:flex;flex-direction:column}.art-word-one{left:0;top:75px;transform:rotate(-6deg)}.art-word-one strong{font-size:27px;color:#398351}.art-word-one small,.art-word-two small{font-size:10px;color:#78907d}.art-word-one span{font-size:12px;color:#607365}.art-word-two{right:0;bottom:46px;transform:rotate(5deg)}.art-word-two span{color:#d9ad55}.art-word-two strong{font-size:14px}.art-spark{position:absolute;color:#9bc994;font-size:28px}.spark-one{right:30px;top:42px}.spark-two{left:30px;bottom:40px}.landing-features{background:white;padding:80px max(30px,calc((100vw - 1120px)/2)) 60px}.features-heading{display:flex;justify-content:space-between;gap:20px;align-items:end}.features-heading h2,.landing-end h2{font-size:30px;line-height:1.35;letter-spacing:-.5px;margin:12px 0}.features-heading>p,.feature-grid p{color:#687d6e}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:45px 0 75px;border-top:1px solid #e6eee3}.feature-grid article{padding:25px 22px 10px 0}.feature-grid article+article{padding-left:22px;border-left:1px solid #e6eee3}.feature-grid article>span{font-size:10px;letter-spacing:1.5px;color:#829a85;font-weight:800}.feature-grid h3{font-size:19px;margin:15px 0 6px}.feature-grid p{font-size:14px;line-height:1.8}.feature-symbol{font-size:26px;color:#4d9861;margin-top:22px}.landing-end{padding:35px;text-align:center;background:#f0f8eb;border-radius:24px}.landing-end button{margin-top:12px}.support-fab{position:fixed;right:24px;bottom:24px;z-index:40;background:var(--accent);color:#fff;border-radius:999px;padding:14px 18px;box-shadow:0 4px 0 var(--accent-shadow),0 12px 25px #273e3029!important}.support-fab span{font-size:13px;margin-left:5px}.support-send-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}.support-attach{margin:0;color:var(--accent);font-weight:700;cursor:pointer}.support-attach input{display:block;width:auto;max-width:230px;font-size:12px;padding:5px}.support-send-row button{margin-left:auto}.support-image{max-width:min(260px,100%);max-height:260px;object-fit:contain;border-radius:12px;margin-top:6px;display:block}.login #login-back{margin:0 0 25px;width:auto}.login .brand{margin-bottom:25px}
@media(max-width:700px){.landing-nav{padding:16px 20px}.landing-nav-actions{gap:15px}.landing-hero{grid-template-columns:1fr;gap:0;padding:48px 22px 50px}.landing-copy h1{font-size:48px}.landing-copy>p{font-size:16px}.landing-art{height:300px;margin-top:24px}.orbit-one{width:245px;height:245px}.orbit-two{width:290px;height:290px}.sprout{width:210px}.art-word-one{top:28px}.art-word-two{bottom:20px}.landing-features{padding:55px 22px}.features-heading{display:block}.features-heading h2,.landing-end h2{font-size:25px}.feature-grid{grid-template-columns:1fr 1fr;margin:30px 0 45px}.feature-grid article{padding:18px 15px 18px 0}.feature-grid article+article{padding-left:15px}.feature-grid article:nth-child(3){border-left:0;padding-left:0}.support-fab{right:15px;bottom:18px}.support-send-row button{margin-left:0}}
@media(prefers-reduced-motion:reduce){.sprout{animation:none}}

/* Paid-book consultation stays secondary to starting a lesson. */
.book-card .consult-button{font-size:13px;padding:7px 11px;min-height:36px;border-radius:10px;box-shadow:0 2px 0 var(--accent-shadow)!important}

/* The contact button stays quiet until a new message arrives. */
.support-fab{background:rgba(255,255,255,.88)!important;color:var(--accent)!important;border:2px solid var(--line)!important;box-shadow:0 5px 16px #283c3417!important;backdrop-filter:blur(8px)}
.support-fab.has-unread{background:#d66a24!important;color:#fff!important;border-color:#b85416!important;box-shadow:0 4px 0 #a84c12,0 10px 24px #82411433!important}
.support-unread{display:inline-grid;place-items:center;margin-left:7px;min-width:21px;height:21px;padding:0 4px;background:white;color:#a8440a;border-radius:99px;font-size:11px}
.feedback-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.feedback-entry{padding:14px 0;border-bottom:1px solid var(--line)}.feedback-entry:last-child{border:0}.feedback-entry p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0}.feedback-history{max-height:560px;overflow-y:auto}@media(max-width:700px){.feedback-layout{grid-template-columns:1fr}}
.support-delete{display:block;margin:5px 0 0 auto;padding:3px 8px;min-height:30px;background:transparent!important;color:#8a6868!important;font-size:12px;box-shadow:none!important}.support-delete:hover{color:#a83e3e!important;background:#fff0f0!important}

/* WordSprout brand-board: deep ink, paper white and a growing green. */
.landing{background:#f6f8f4;color:#2f5d3a;--accent:#397841;--accent-shadow:#2f5d3a;--soft:#eaf3e6;--line:#e0eadf}
.landing-nav{max-width:1200px;padding:19px 32px}.landing-brand{display:inline-flex;align-items:center;flex:none}.landing-brand img{display:block;width:132px;height:59px;object-fit:contain}.landing-nav-actions a{color:#54765d}.landing-nav-actions .secondary{background:transparent;color:#2f5d3a;border:1px solid #c9dbca;box-shadow:none;padding:9px 21px;border-radius:999px}
.landing-hero{max-width:1200px;min-height:560px;padding:50px 32px 80px;gap:50px}.landing-kicker{color:#4e8f52;letter-spacing:.2em}.landing-copy h1{color:#2f5d3a;letter-spacing:-.05em}.landing-copy h1 em{color:#4e8f52}.landing-copy>p{color:#5e7d66}.landing-copy>small{color:#6f8f7b}.landing-actions button,.landing-end button{background:#397841;color:white;border-radius:999px;box-shadow:none!important;padding:15px 25px}.landing-actions button:hover,.landing-end button:hover{background:#2f5d3a;transform:translateY(-2px)}.landing-actions a{color:#4e8f52}.landing-art{height:430px}.art-orbit{border-color:#d6e8d3}.orbit-one{width:350px;height:350px}.orbit-two{width:420px;height:420px}.hero-mark{width:270px;height:270px;display:grid;place-items:center;position:relative;z-index:1;animation:word-enter .7s ease both}.hero-mark img{width:100%;height:100%;object-fit:contain}.art-word{border-color:#e1ebdf;box-shadow:0 14px 35px #2f5d3a10;border-radius:18px}.art-word-one strong{color:#2f5d3a}.art-word-two span,.art-spark{color:#7bc96f}.landing-features{background:#fff}.features-heading h2,.landing-end h2,.feature-grid h3{color:#2f5d3a}.landing-end{background:#f0f6ee}.feature-symbol{color:#4e8f52}.landing .support-fab{--accent:#397841}
@media(max-width:700px){.landing-nav{padding:15px 20px}.landing-brand img{width:112px;height:50px}.landing-nav-actions{gap:12px}.landing-nav-actions a{font-size:12px}.landing-nav-actions .secondary{padding:8px 14px}.landing-hero{grid-template-columns:1fr;padding:48px 22px 50px;gap:0;min-height:0}.landing-copy h1{font-size:clamp(42px,11vw,52px)}.landing-art{height:300px;margin-top:28px}.orbit-one{width:245px;height:245px}.orbit-two{width:min(290px,90%);aspect-ratio:1;height:auto}.hero-mark{width:210px;height:210px}.landing-features{padding:55px 22px}}
@media(prefers-reduced-motion:reduce){.hero-mark{animation:none}}

/* Admin traffic overview */
.analytics-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.analytics-top h3{margin:0}.analytics-top p{margin:4px 0 0;font-size:13px}.analytics-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.analytics-summary>div{background:var(--soft);border-radius:16px;padding:18px}.analytics-summary small,.analytics-summary strong{display:block}.analytics-summary strong{font-size:28px;color:var(--accent);line-height:1.25;margin-top:8px}.analytics-chart{margin-bottom:18px}.analytics-bars{height:180px;display:flex;align-items:stretch;gap:8px;margin:25px 0 4px;overflow-x:auto}.analytics-bar{flex:1;min-width:27px;display:flex;flex-direction:column;text-align:center;gap:5px;font-size:10px;color:var(--muted)}.analytics-bar strong{font-size:11px}.analytics-bar-track{height:100%;display:flex;align-items:flex-end;background:var(--bg);border-radius:7px;overflow:hidden}.analytics-bar-track i{width:100%;background:var(--accent);border-radius:7px 7px 0 0;transition:height .3s}.analytics-bar small{font-size:10px}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.analytics-table{max-height:370px}.analytics-note{font-size:12px;line-height:1.7;color:var(--muted)}@media(max-width:700px){.analytics-summary{grid-template-columns:1fr 1fr}.analytics-grid{grid-template-columns:1fr}.analytics-top{align-items:flex-start}}

/* Personal check-in history */
.checkin-calendar{max-width:620px;margin-top:30px;padding:24px 26px}.calendar-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.calendar-head h3{margin:4px 0 0;font-size:20px}.calendar-head p{margin:3px 0 0;font-size:13px;color:var(--muted)}.calendar-head p strong{color:var(--accent)}.calendar-controls{display:flex;gap:8px;align-items:center;white-space:nowrap}.calendar-controls>strong{min-width:98px;text-align:center;font-size:14px}.calendar-nav{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--paper)!important;color:var(--ink)!important;box-shadow:none!important;font-size:24px;font-weight:400}.calendar-nav:disabled{opacity:.35}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;text-align:center}.calendar-weekday{padding:0 0 6px;color:var(--muted);font-size:12px}.calendar-day,.calendar-empty{position:relative;display:flex;align-items:center;justify-content:center;min-height:42px;border-radius:12px;font-size:14px}.calendar-day{color:var(--ink);background:var(--bg)}.calendar-day.is-checked{background:var(--soft);color:var(--accent);font-weight:800}.calendar-day.is-today{outline:2px solid var(--accent);outline-offset:-2px}.calendar-day i{position:absolute;right:6px;top:3px;font-size:10px;font-style:normal}.calendar-legend{display:flex;gap:20px;margin-top:16px;font-size:12px;color:var(--muted)}.calendar-legend span{display:flex;align-items:center;gap:6px}.legend-checked,.legend-today{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:6px;font-style:normal}.legend-checked{background:var(--soft);color:var(--accent);font-weight:800}.legend-today{border:2px solid var(--accent)}@media(max-width:500px){.checkin-calendar{padding:20px 16px}.calendar-head{align-items:flex-start;flex-direction:column}.calendar-controls{align-self:stretch;justify-content:space-between}.calendar-day,.calendar-empty{min-height:38px}.calendar-grid{gap:4px}}

/* Reading practice is optional and separate from check-ins. */
.reading-list{max-width:700px;margin-top:25px}.reading-list h3{margin:3px 0}.reading-list p{font-size:13px;margin:4px 0 14px}.reading-list-buttons{display:flex;flex-wrap:wrap;gap:9px}.completion-reading{max-width:600px;margin:38px auto 0;padding:24px;border-top:1px solid var(--line)}.completion-reading h3{margin:0}.reading-page{max-width:720px;margin:36px auto}.reading-heading{margin:32px 0 20px}.reading-heading h1{margin:8px 0;font-size:32px}.reading-passage p{white-space:pre-wrap;line-height:1.9;font-size:16px;overflow-wrap:anywhere}.reading-passage summary{cursor:pointer;color:var(--accent);font-weight:700}@media(max-width:500px){.reading-page{margin:25px auto}.reading-heading h1{font-size:26px}}
.reading-passage mark{background:var(--soft);color:var(--accent);font-weight:800;border-radius:5px;padding:1px 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* Learning feedback and accessible study controls */
.study-categories{margin:8px 0 18px;color:var(--muted);font-size:13px;text-align:right;font-weight:700;line-height:1.5}
.word-stage.can-reveal{cursor:pointer}.word-stage.can-reveal:focus-within{outline-offset:3px}
.word-example mark{color:var(--accent);background:var(--soft);border-radius:4px;padding:0 2px;cursor:pointer}
.review-schedule{margin:20px 0 0;color:var(--muted);font-size:13px}
.dictation-pattern{letter-spacing:.08em;overflow-wrap:anywhere;color:var(--muted);font-size:14px}
.hint-toggle{padding:7px 10px!important;min-height:38px;background:transparent!important;color:var(--accent)!important;box-shadow:none!important}
.first-letter{margin-left:6px;font-weight:800;color:var(--accent)}
.dictation-solution del{color:#ae4941;text-decoration:line-through}.dictation-solution ins{color:var(--accent);background:var(--soft);text-decoration:none;border-radius:3px}
.dictation-feedback small{display:block;line-height:1.5;margin-top:5px}
.completion-summary{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px 0}.completion-summary span{background:var(--soft);color:var(--accent);border-radius:99px;padding:8px 12px;font-size:13px;font-weight:700}
.wrong-filters{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 16px}.wrong-filters label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.wrong-filters select{width:auto;min-height:44px;margin:0}
@media(max-width:700px){.dictation-input-row input{scroll-margin-bottom:160px}.wrong-filters label{flex:1}.wrong-filters select{min-width:0;flex:1}}
.week-checkins{display:flex;align-items:center;gap:8px;margin:-8px 0 24px;color:var(--muted);font-size:12px}.week-checkins>span{font-weight:700;margin-right:4px}.week-day{display:flex;align-items:center;gap:4px}.week-day b{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--bg);color:var(--muted);font-size:11px}.week-day.checked b{background:var(--soft);color:var(--accent)}.week-day.today b{outline:1px solid var(--accent)}
@media(max-width:500px){.week-checkins{gap:5px;justify-content:space-between}.week-day{flex-direction:column;gap:3px}.week-day b{width:30px;height:30px}}
.group-number{min-width:0}.group-name{display:block;margin-top:3px;font-size:12px;font-weight:600;color:var(--muted);overflow-wrap:anywhere}.group-name-editor{max-width:850px}.group-name-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin-top:20px}.group-name-fields label{display:flex;flex-direction:column;gap:5px;margin:0}.group-name-fields label span{font-weight:700;font-size:14px}.group-name-fields input{margin:0}.group-name-editor>.row{justify-content:space-between}
@media(max-width:600px){.group-name-fields{grid-template-columns:1fr}.group-name-editor{padding:20px}}
/* Compact check-in calendar in the task sidebar */
.task-panel .checkin-calendar{max-width:none;margin:0 0 24px;padding:16px 18px;border-radius:18px}
.task-panel .calendar-head{display:block;margin-bottom:10px}
.task-panel .calendar-head>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.task-panel .calendar-head .eyebrow{display:none}
.task-panel .calendar-head h3{font-size:15px;margin:0}
.task-panel .calendar-head p{font-size:12px;margin:0}
.task-panel .calendar-controls{display:flex;justify-content:space-between;margin-top:4px}
.task-panel .calendar-controls>strong{font-size:13px}
.task-panel .calendar-nav{width:44px;height:44px}
.task-panel .calendar-grid{gap:4px}
.task-panel .calendar-weekday{padding-bottom:2px;font-size:11px}
.task-panel .calendar-day,.task-panel .calendar-empty{min-height:30px;border-radius:8px;font-size:12px}
.task-panel .calendar-day i{right:3px;top:0;font-size:9px}
.task-panel .calendar-legend{margin-top:9px;gap:14px;font-size:11px}
@media(max-width:700px){.task-panel .checkin-calendar{max-width:440px}.task-panel .calendar-head{display:block}.task-panel .calendar-controls{align-self:auto}}
/* Align the calendar with the start of the learning space. */
.workspace{align-items:start;margin-top:42px}.focus-column{min-width:0}.focus-column .home-head{margin:0 0 28px}.task-panel{padding-top:0}.task-panel .checkin-calendar{margin-top:0}
.book-card .book-icon{position:relative}.book-card .book-access-icon{position:absolute;right:-6px;bottom:-5px;display:grid;place-items:center;width:22px;height:22px;border:2px solid var(--paper);border-radius:50%;font-size:12px;font-weight:900;line-height:1}
.book-unlocked .book-icon{background:#dbf1dc}.book-unlocked .book-access-icon{background:#287d2d;color:#fff}.book-unlocked .book-access-pill{background:#dbf1dc;color:#216527}
.book-locked .book-icon{filter:none;background:#eceeea}.book-locked .book-access-icon{background:#68736d;color:#fff;font-size:10px}.book-locked .book-access-pill{background:#eceeea;color:#46534c}
@media(max-width:700px){.workspace{margin-top:30px}.focus-column .home-head{margin:0 0 24px}.task-panel{padding-top:0}}
/* Keep check-in history available without competing with today's task. */
.task-panel .checkin-calendar{padding:0;margin-bottom:20px;overflow:hidden}
.calendar-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:10px 16px;cursor:pointer;list-style:none}
.calendar-disclosure summary::-webkit-details-marker{display:none}
.calendar-disclosure summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;border-radius:16px}
.calendar-summary-title{font-size:14px;font-weight:800;line-height:1.4}
.calendar-summary-title small{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:500}
.calendar-toggle{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--soft);color:var(--accent);font-size:19px;transition:transform .18s}
.calendar-disclosure[open] .calendar-toggle{transform:rotate(180deg)}
.calendar-expanded{padding:0 16px 14px}.task-panel .calendar-expanded .calendar-controls{margin:0 0 3px}
.book-category-tabs{display:flex;gap:8px;overflow-x:auto;margin:0 0 22px;padding:2px 2px 8px}.book-category-tabs button{flex:none;min-height:44px;padding:9px 16px;background:var(--paper)!important;color:var(--muted)!important;border:1px solid var(--line);box-shadow:none!important;border-radius:12px}.book-category-tabs button.active{background:var(--soft)!important;border-color:var(--accent);color:var(--accent)!important}
.cambridge-levels{margin-top:-12px}
/* Softer actions keep the book title and status in focus. */
.book-card .book-select{min-height:44px;padding:9px 15px;background:var(--soft)!important;color:var(--accent)!important;border:1px solid var(--panel-line);box-shadow:none!important}
.book-card .book-select:hover:not(:disabled){background:var(--panel)!important;border-color:var(--accent)}
.book-card .book-select.is-current{background:var(--paper)!important;color:var(--muted)!important;border-color:var(--line)}
/* A quiet color family for each stage; green remains the action color. */
.stage-primary{--stage-ink:#497c55;--stage-soft:#eaf4e7;--stage-line:#cfe3ca}
.stage-middle{--stage-ink:#32777a;--stage-soft:#e6f3f1;--stage-line:#c8e3df}
.stage-high{--stage-ink:#526da0;--stage-soft:#ebeff8;--stage-line:#d1dcef}
.stage-college{--stage-ink:#755c91;--stage-soft:#f0ebf6;--stage-line:#dfd3ea}
.stage-cambridge{--stage-ink:#a06c40;--stage-soft:#f8efe4;--stage-line:#eddbc6}
.stage-career{--stage-ink:#976054;--stage-soft:#f7ede9;--stage-line:#ebd5ce}
.stage-other{--stage-ink:#66736a;--stage-soft:#eef1ed;--stage-line:#dbe1da}
.book-stage{margin:0 0 30px}.book-stage-heading{display:flex;align-items:center;gap:10px;margin:0 0 13px}.book-stage-heading h2{font-size:17px;line-height:1.3;margin:0;color:var(--ink)}.stage-dot{width:10px;height:10px;border-radius:50%;background:var(--stage-ink)}.stage-count{color:var(--muted);font-size:12px}.book-stage .cards{align-items:stretch}
.book-stage .book-card{position:relative;overflow:hidden;border:1px solid var(--line);border-top:3px solid var(--stage-line);display:flex;flex-direction:column;min-width:0}
.book-stage .book-card:hover{border-color:var(--stage-line);box-shadow:0 6px 18px #293c4a0d!important;transform:translateY(-2px)}
.book-stage .book-card .book-icon{background:var(--stage-soft)}.book-stage-label{color:var(--stage-ink);font-size:12px;font-weight:700;line-height:1.4}.book-stage .book-card h3{margin:5px 0 0;line-height:1.45;overflow-wrap:anywhere}.book-stage .book-progress{margin:12px 0 18px}.book-stage .book-card>.row{margin-top:auto}
.book-empty{padding:18px 0}.book-stage .book-card .book-access-pill{align-self:flex-start}
@media(max-width:500px){.book-stage{margin-bottom:25px}.book-stage-heading{margin-bottom:10px}.book-stage .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.book-stage .book-card{padding:16px 13px}.book-stage .book-card h3{font-size:15px}.book-stage .book-card .row{gap:5px}.book-stage .book-card .book-select{padding:8px 10px}.book-stage .book-card .book-details-link{padding:8px 3px}}
@media(prefers-reduced-motion:reduce){.book-stage .book-card{transition:none!important}}
@media(min-width:501px){.book-stage .cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}
.book-tools{display:flex;gap:14px;align-items:end;margin:0 0 24px}.book-tools label{margin:0;flex:1}.book-tools label:last-child{flex:0 0 140px}.book-tools input,.book-tools select{margin-top:5px;min-height:44px}.publisher-group{margin:16px 0 24px}.publisher-group h3{font-size:14px;margin:0 0 10px}.publisher-group h3 small{font-weight:400;margin-left:5px}.book-card-top{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px}.book-publisher{color:var(--stage-ink);font-weight:700}.book-access-text{font-size:12px}.book-mini-progress{height:5px;background:var(--line);border-radius:5px;margin-bottom:16px}.book-mini-progress i{display:block;height:100%;background:var(--accent);border-radius:5px}.book-actions{flex-wrap:wrap}.sample-dialog h3{font-size:30px;margin:8px 0}.bundle-prices{margin-bottom:20px}.landing-info{padding:30px 0 55px}.landing-info h2{margin:32px 0 12px}.landing-samples,.landing-price-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.landing-samples article,.landing-price-list>div{padding:20px;background:var(--panel);border-radius:14px}.landing-price-list>div{display:flex;justify-content:space-between;gap:10px}.landing-info details{padding:13px 0;border-bottom:1px solid var(--line)}.landing-info summary{cursor:pointer;font-weight:700}@media(max-width:500px){.book-tools{gap:8px}.book-tools label:last-child{flex-basis:120px}.book-actions .book-details-link{font-size:12px}.landing-samples{grid-template-columns:1fr}}
.sample-disclaimer{font-size:12px;color:var(--muted);margin:16px 0 0}.sample-study .study-progress{margin-bottom:12px}
/* 词芽 design system: keep functional state distinct from category decoration. */
:root{
 --brand:#58CC02;--brand-dark:#46A302;--brand-soft:#D7FFB8;
 --info:#1CB0F6;--info-dark:#1899D6;--info-soft:#DDF4FF;
 --danger:#FF4B4B;--danger-dark:#EA2B2B;--danger-soft:#FFDFE0;
 --warning:#FFC800;--purple:#CE82FF;--gold:#FFC800;
 --ink:#3C3C3C;--ink-2:#4B4B4B;--muted:#777777;--line:#E5E5E5;
 --bg:#FFFFFF;--bg-2:#F7F7F7;--locked:#AFAFAF;
 --r-sm:12px;--r-md:16px;--r-lg:20px;--r-pill:999px;
 --bw:2px;--bw-btn:4px;--motion:180ms cubic-bezier(.2,.8,.2,1)
}
body{font-family:"PingFang SC","Noto Sans SC",-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.6}
body.green,body.blue,body.orange{--ink:#3C3C3C;--muted:#666;--bg:#fff;--line:#E5E5E5;--paper:#fff;--accent:#327500;--soft:#eaf7df;--panel:#f4faef;--panel-line:#d8e8ce;--accent-shadow:#c7dfb9;--track:#e5e5e5}
body.blue{--accent:#17658d;--soft:#e5f5fd;--panel:#f1f9fd;--panel-line:#cce8f4;--accent-shadow:#bbdfef}
body.orange{--accent:#8b4d1b;--soft:#fff1df;--panel:#fff8ee;--panel-line:#efdfcc;--accent-shadow:#e7d4bd}
.shell{max-width:1100px}.study{max-width:680px}h1,h2,h3{font-weight:800}small,.muted{color:var(--muted)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--info-dark);outline-offset:3px}
input,select,textarea{border:var(--bw) solid var(--line);border-radius:var(--r-sm);min-height:52px}input:focus,select:focus,textarea:focus{border-color:var(--info-dark)}
.study-check,.reveal-button,.study-feedback button{min-height:52px;border-radius:var(--r-md);background:var(--brand)!important;color:var(--ink)!important;border-bottom:4px solid var(--brand-dark);font-weight:800;transition:filter var(--motion),transform var(--motion)}
.study-check:hover:not(:disabled),.reveal-button:hover:not(:disabled),.study-feedback button:hover:not(:disabled){filter:brightness(1.03)}.study-check:active:not(:disabled),.reveal-button:active:not(:disabled),.study-feedback button:active:not(:disabled){transform:translateY(2px);border-bottom-width:2px}
.study-check:disabled{background:var(--line)!important;color:var(--muted)!important;border-color:var(--locked);opacity:1}
.answer-btn.is-selected{outline:3px solid var(--info-dark);outline-offset:2px}.answer-btn.known{background:var(--brand-soft)!important;color:var(--ink)!important;border-color:var(--brand-dark)}
.study-check{display:block;width:min(100%,420px);margin:18px auto 0}.study-progress{height:16px;border-radius:var(--r-pill);background:var(--line)}.study-progress i{background:var(--brand);box-shadow:inset 0 3px 0 #ffffff66}
.study-feedback{position:fixed;z-index:110;inset:auto 0 0;background:var(--brand-soft);padding:20px;box-shadow:0 -4px 24px #00000018}.study-feedback.is-review{background:var(--danger-soft)}.study-feedback-inner{max-width:680px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.study-feedback strong{font-size:20px;color:var(--ink)}.study-feedback p{margin:3px 0;color:var(--ink-2)}.study-feedback button{min-width:140px}
.toast{position:fixed;left:50%;right:auto;bottom:22px;transform:translateX(-50%);background:var(--ink);color:white;border-radius:var(--r-sm);z-index:120}.mobile-nav{display:none}
@media(max-width:700px){.shell{padding-bottom:110px}.top .nav{display:none}.mobile-nav{position:fixed;z-index:90;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);background:var(--paper);border-top:2px solid var(--line);padding:5px 4px max(5px,env(safe-area-inset-bottom))}.mobile-nav button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;background:transparent!important;color:var(--muted)!important;box-shadow:none!important;padding:2px;min-height:54px}.mobile-nav button span{font-size:23px;line-height:1}.mobile-nav button small{font-size:11px;color:inherit}.mobile-nav button.active{color:var(--accent)!important}.shell .support-fab{bottom:82px}.study-feedback{padding-bottom:max(20px,env(safe-area-inset-bottom))}.study-feedback-inner{display:block}.study-feedback button{width:100%;margin-top:12px}.study{margin-top:24px}.toast{bottom:90px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.reading-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.reading-actions h3{margin:0}.reading-passage>p{font-size:19px;line-height:1.9}.reading-actions button{min-height:44px}
.learning-path{margin:16px 0 24px}.path-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.path-nodes{display:flex;align-items:center;gap:10px;margin-top:12px;overflow-x:auto;padding:3px}.path-node{flex:none;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--bg-2)!important;color:var(--ink)!important;border:2px dashed var(--locked);padding:0;box-shadow:none!important;font-size:14px}.path-node.complete{background:var(--gold)!important;border:2px solid var(--gold)}.path-node.current{background:var(--brand-soft)!important;border:3px solid var(--brand-dark)}
.focus-panel #path-all{background:transparent!important;color:var(--accent)!important;box-shadow:none!important}.settings-mobile-links{display:none}@media(max-width:700px){.settings-mobile-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}}
.brand-home{border:0;background:transparent!important;color:var(--ink)!important;padding:0;box-shadow:none!important;white-space:nowrap}.landing-catalog{background:transparent!important;color:#285f20!important;border:2px solid var(--line);box-shadow:none!important}.landing-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.landing-steps p{padding:14px 0;border-top:2px solid var(--line);font-weight:700}.landing-steps strong{display:block;color:var(--accent);font-size:13px}@media(max-width:500px){.landing-steps{grid-template-columns:1fr;gap:0}.landing-steps p{margin:0}.landing-catalog{width:auto}}
.path-node{width:64px;height:64px}.reading-passage mark{cursor:pointer}.reading-passage mark:focus-visible{outline:3px solid var(--info-dark);outline-offset:2px}.reading-word-overlay{position:fixed;inset:0;z-index:110;background:#0006;display:flex;align-items:flex-end;justify-content:center}.reading-word-sheet{width:min(100%,680px);background:var(--paper);padding:24px;border-radius:var(--r-lg) var(--r-lg) 0 0}.reading-word-sheet strong{font-size:24px}.reading-word-sheet p{margin:6px 0 16px}
.wrong-session{margin:0 0 20px}.wrong-session button{min-height:52px;background:var(--brand);color:var(--ink);border-bottom:4px solid var(--brand-dark);border-radius:var(--r-md)}

.analytics-accounts{margin-top:18px}.analytics-accounts>p{font-size:13px}.analytics-accounts .tablewrap{max-height:400px}
/* Keep the answer controls visible; long explanations scroll within the card. */
body.study-mode .shell{max-width:720px;padding:12px 16px max(12px,env(safe-area-inset-bottom))}
body.study-mode .top,body.study-mode .mobile-nav,body.study-mode .support-fab{display:none}
body.study-mode .study:not(.dictation){height:calc(100vh - 24px);height:calc(100dvh - 24px - env(safe-area-inset-bottom));max-height:1000px;margin:0 auto;display:flex;flex-direction:column;min-height:0}
body.study-mode .study:not(.dictation) .study-top{flex:none;align-items:center;min-height:32px;gap:10px}
body.study-mode .study:not(.dictation) .study-progress{flex:none;margin:8px 0 4px;height:10px}
body.study-mode .study:not(.dictation) .study-categories{flex:none;margin:3px 0 7px}
body.study-mode .study:not(.dictation) .word-stage{flex:1 1 auto;min-height:0;display:block;overflow-y:auto;overscroll-behavior:contain;text-align:center}
body.study-mode .study:not(.dictation) .word-stage-inner{padding:16px 20px;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:safe center}
body.study-mode .study:not(.dictation) .word-answer{text-align:left;width:min(100%,530px);margin:14px auto 0}
body.study-mode .study:not(.dictation) .word-stage h1{font-size:clamp(36px,6vh,56px);margin:4px 0 0}
body.study-mode .study:not(.dictation) .recall-hint{margin:14px 0 0!important}
body.study-mode .study:not(.dictation) .study-controls{flex:none;margin:8px 0 0}
body.study-mode .study:not(.dictation) .answer-label{margin:0 0 6px}
body.study-mode .study:not(.dictation) .answer-btn{min-height:46px;padding:8px 6px}
body.study-mode .study:not(.dictation) .study-check{min-height:46px;margin:8px auto 0}
body.study-mode .study:not(.dictation) .reveal-button{min-height:46px;padding:9px 20px}
body.study-mode .study:not(.dictation) .dictation-link{min-height:38px;padding:5px 10px}
body.study-mode .study:not(.dictation) .edit-previous{margin:4px auto 0;min-height:30px}
body.study-mode .study:not(.dictation) .sample-disclaimer{margin:5px 0 0}
@media(max-height:600px){body.study-mode .study:not(.dictation) .word-stage-inner{justify-content:flex-start}.study-feedback-inner{display:flex;align-items:center}.study-feedback-inner button{width:auto;margin:0}}

/* Optional letter-by-letter copying during check-in. */
.guided-word{color:#292929;overflow-wrap:anywhere;white-space:pre-wrap}
.guided-word span{transition:color 160ms ease}
.guided-word span.is-copied{color:#25803b}
.guided-word span.is-mistyped{color:#b32c2c;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.guided-spelling{width:min(100%,310px);margin:10px auto 0;text-align:left;cursor:auto}
.guided-spelling label{display:flex;justify-content:space-between;margin:0 0 4px;color:#3c3c3c;font-size:13px;font-weight:700}
.guided-spelling label span{color:#666;font-size:12px;font-weight:400}
.guided-spelling input{height:42px;min-height:42px;padding:7px 12px;border:2px solid #d1d1d1;border-radius:12px;background:#fff;color:#292929;font-size:16px;box-shadow:none}
.guided-spelling input:focus-visible{outline:3px solid #1899d6;outline-offset:2px}
.guided-spelling input[aria-invalid="true"]{border-color:#b32c2c}
.guided-spelling small{display:block;color:#555;font-size:12px;line-height:1.35}
.guided-spelling small:not(:empty){margin-top:4px}
@media(prefers-reduced-motion:reduce){.guided-word span{transition:none}}

/* Give the revealed answer more room while keeping controls on screen. */
.guided-spelling[hidden]{display:none}
body.study-mode .study:not(.dictation) .study-word-badge{position:absolute;top:10px;left:16px;font-size:10px;line-height:1.2}
body.study-mode .study:not(.dictation) .study-word-head{display:flex;align-items:center;justify-content:center;gap:10px;max-width:100%;margin-top:12px}
body.study-mode .study:not(.dictation) .study-word-head h1{min-width:0;overflow-wrap:anywhere}
body.study-mode .study:not(.dictation) .study-word-head .sound-button{flex:none;margin:0}
body.study-mode .study:not(.dictation) .is-revealed .word-answer{margin-top:8px}
body.study-mode .study:not(.dictation) .is-revealed .word-tags{margin-bottom:8px}
body.study-mode .study:not(.dictation) .is-revealed .word-example{margin-top:10px;padding-top:7px;padding-bottom:7px}
body.study-mode .study:not(.dictation) .is-revealed .word-example p{margin-top:5px}
body.study-mode .study:not(.dictation) .is-revealed .word-notes{margin-top:10px;gap:7px}
body.study-mode .study:not(.dictation) .is-revealed .word-note{padding:8px 12px}

/* The word card and its controls share the available screen height. */
body.study-mode .study:not(.dictation) .study-workspace{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
@media(min-width:900px){
 body.study-mode .shell{max-width:1060px}
 body.study-mode .study:not(.dictation){max-width:1000px}
 body.study-mode .study:not(.dictation) .study-workspace{flex-direction:row;align-items:stretch;gap:16px}
 body.study-mode .study:not(.dictation) .word-stage{flex:1 1 0;min-width:0}
 body.study-mode .study:not(.dictation) .study-controls{flex:0 0 240px;align-self:stretch;min-height:0;overflow-y:auto;margin:0;padding:24px 16px;text-align:left;background:var(--paper,#fff);border:1px solid var(--line);border-radius:20px;display:flex;flex-direction:column;justify-content:safe center}
 body.study-mode .study:not(.dictation) .answer-label{margin:0 0 14px;font-size:15px;font-weight:700;color:var(--ink)}
 body.study-mode .study:not(.dictation) .answer-label small{display:block;margin-top:3px;font-size:12px;font-weight:400}
 body.study-mode .study:not(.dictation) .answer-buttons{flex-direction:column;gap:8px}
 body.study-mode .study:not(.dictation) .answer-btn{flex:none;max-width:none;width:100%;min-height:48px;justify-content:flex-start;padding:8px 16px;font-size:15px}
 body.study-mode .study:not(.dictation) .study-check,body.study-mode .study:not(.dictation) .reveal-button{width:100%;min-width:0;margin:12px 0 0}
 body.study-mode .study:not(.dictation) .dictation-link,body.study-mode .study:not(.dictation) .edit-previous{width:100%;margin:8px 0 0;text-align:center}
}
@media(min-width:900px){
 body.study-mode .study:not(.dictation) .study-controls .answer-btn.known:not(.is-selected){background:var(--paper,#fff)!important;border-color:var(--line)}
}
.stage-overseas{--stage-ink:#315b83;--stage-soft:#e9f1f8;--stage-line:#ccdeed}

/* Homepage: a concise guide to the vocabulary collection. */
.landing-library{background:#f2f7ed;color:#294b30;padding:78px 32px 84px}
.library-inner{max-width:1136px;margin:0 auto}
.library-intro{display:grid;grid-template-columns:1fr minmax(220px,380px);align-items:end;gap:36px}
.library-intro h2{margin:12px 0 0;color:#294d31;font-size:clamp(30px,3.6vw,46px);line-height:1.25;letter-spacing:-.03em}
.library-intro>p{margin:0 0 4px;color:#526d58;font-size:16px;line-height:1.8}
.library-facts{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:34px 0 14px;padding-top:20px;border-top:1px solid #d6e4d2}
.library-facts strong{color:#2f6038;font-size:18px}.library-facts span{color:#5d7562;font-size:13px}
.library-categories{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #d6e4d2;border-bottom:1px solid #d6e4d2}
.library-categories button{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;min-height:60px;padding:12px 10px;background:transparent!important;color:#34583b!important;border-radius:0;box-shadow:none!important;font-size:14px;text-align:left}
.library-categories button+button{border-left:1px solid #d6e4d2}.library-categories button:hover{background:#e4f1df!important}.library-categories button:focus-visible,.library-feature button:focus-visible{outline:3px solid #226e34;outline-offset:3px}
.library-feature[hidden]{display:none}
.library-feature{display:grid;grid-template-columns:minmax(0,1fr) 38%;min-height:310px;margin-top:38px;overflow:hidden;border:1px solid #d7e5d0;border-radius:22px;background:#fff}
.library-feature-copy{padding:35px 40px}.library-free-label{display:inline-block;padding:4px 10px;border-radius:999px;background:#e4f3dd;color:#236e35;font-size:12px;font-weight:800}
.library-feature h3{margin:13px 0 10px;color:#254b30;font-size:clamp(25px,2.7vw,34px);line-height:1.3}.library-feature-copy>p{max-width:520px;margin:0;color:#536c59;font-size:15px;line-height:1.8}
.library-feature-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:16px;color:#526d58;font-size:13px}.library-feature-meta strong{color:#315b3a}
.library-feature-copy button{min-height:46px;margin-top:20px;padding:10px 17px;background:#367c3e;color:#fff;border-radius:999px;box-shadow:none!important}.library-feature-copy button:hover{background:#295f30}
.library-feature-art{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;position:relative;overflow:hidden;padding:30px 42px;background:#dfeeda;color:#30653a}
.library-feature-art:after{content:'';position:absolute;right:-90px;bottom:-130px;width:270px;height:270px;border:1px solid #94c58a;border-radius:50%;box-shadow:0 0 0 30px #dfeeda,0 0 0 31px #afd1a5}
.library-feature-art>span{font-size:11px;font-weight:800;letter-spacing:.12em}.library-feature-art>strong{font-size:clamp(76px,9vw,126px);line-height:1;font-weight:800;letter-spacing:-.06em}.library-feature-art>small{color:#527a57;font-size:14px;line-height:1.5}
.library-word-sample{z-index:1;margin-top:22px;font-size:23px;font-weight:800}.library-word-sample span{margin-left:8px;color:#526f58;font-size:12px;font-weight:500}
@media(max-width:700px){.landing-nav-actions{gap:10px}.landing-nav-actions a{font-size:12px}.landing-library{padding:56px 20px 60px}.library-intro{grid-template-columns:1fr;gap:12px}.library-intro>p{font-size:15px}.library-facts{align-items:flex-start;flex-direction:column;gap:3px;margin-top:24px}.library-categories{grid-template-columns:repeat(4,minmax(0,1fr))}.library-categories button:nth-child(5){border-left:0}.library-categories button:nth-child(n+5){border-top:1px solid #d6e4d2}.library-feature{grid-template-columns:1fr;margin-top:28px}.library-feature-copy{padding:26px 22px}.library-feature-art{padding:20px 24px;min-height:170px}.library-feature-art>strong{font-size:72px}.library-feature-art>small{font-size:12px}.library-word-sample{position:absolute;right:24px;bottom:30px;font-size:18px}}
@media(max-width:390px){.landing-nav-actions a[href="#features"]{display:none}.library-categories button{font-size:13px;padding-left:6px;padding-right:6px}}
