@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap');
:root{--green:#15815c;--ink:#273f37;--muted:#7a8882;--line:#e5ece8;--bg:#f9fbfa;--mint:#edf7f1;--yellow:#f4cd63;--red:#d95160;font-family:Nunito,'PingFang SC','Microsoft YaHei',sans-serif;color:var(--ink);font-size:16px;letter-spacing:0}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e4b43c;outline-offset:4px}button{color:var(--ink)}svg{width:21px;height:21px;stroke-width:1.8;flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.45}h2{font-size:21px}h3{font-size:18px}p{line-height:1.8}.muted{color:var(--muted)}.small{font-size:14px}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#fff;border-right:1px solid var(--line);padding:34px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;font-size:24px;font-weight:900;white-space:nowrap}.brand small{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-top:3px}.brand-symbol{width:43px;height:48px;display:grid;place-items:center;color:#fff;background:var(--green);border-radius:12px 12px 19px 19px;transform:rotate(-5deg)}.brand-symbol svg{width:27px;height:27px}.book-label{font-size:12px;color:var(--muted);margin:30px 0 29px}.book-label span{display:block;margin-top:7px;font-size:11px;background:#f1f4f2;width:max-content;padding:3px 8px;border-radius:4px}.sidebar nav{display:grid;gap:9px}.sidebar nav a{display:flex;align-items:center;gap:13px;padding:15px 13px;border-radius:8px;font-size:15px;font-weight:700;color:#6b7b72}.sidebar nav a:hover{background:#f6f9f7}.sidebar nav a.active{background:var(--mint);color:var(--green)}.nav-pill{font-size:12px;margin-left:auto}.sidebar-bottom{margin-top:auto}.sidebar-bottom>a{display:flex;align-items:center;gap:12px;padding:21px 12px 0;font-size:14px;color:var(--muted)}.daily-note{background:#f8faf1;border-radius:8px;padding:18px 14px}.daily-note svg{color:#ceaa49;margin-bottom:10px;display:block}.daily-note b{font-size:14px}.daily-note p{font-size:12px;margin:7px 0;color:#74816a}.daily-note span{font-size:11px;color:#96a087}.workspace{margin-left:238px}.topbar{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;background:#fff}.breadcrumb{font-size:13px;color:#839088;display:flex;gap:15px;align-items:center}.breadcrumb b{font-weight:600;color:#4c6255}.top-actions{display:flex;gap:23px;align-items:center}.stars{display:flex;align-items:center;gap:7px;font-size:13px}.stars svg{color:#d6ad36;fill:#f9e8a7;width:18px}.icon-button{width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f8e4cb;color:#917043;font-weight:700;font-size:14px}main{max-width:1240px;margin:auto;padding:32px 44px 0}footer{max-width:1240px;margin:30px auto 0;border-top:1px solid var(--line);padding:20px 44px 28px;color:#a1ada5;font-size:11px}footer span{float:right}.intro{display:grid;grid-template-columns:1.1fr 1fr;min-height:268px;align-items:center;position:relative;padding-bottom:25px;border-bottom:1px solid var(--line)}.eyebrow{color:var(--green);font-size:13px;font-weight:800;display:flex;align-items:center;gap:7px;margin-bottom:13px}.eyebrow svg{width:17px}.intro h1 em{font-style:normal;color:var(--green)}.intro p{font-size:14px;color:#7d8a82;margin:12px 0 22px}.primary,.secondary{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:7px;padding:10px 21px;font-size:14px;font-weight:800;border:1px solid var(--green);background:var(--green);color:white}.primary:hover{background:#116d4e}.secondary{background:#fff;color:var(--green);border-color:#d7e6dc}.primary svg,.secondary svg{width:17px;height:17px}.intro .primary{box-shadow:0 4px 0 #0d6345}.intro-img{width:100%;max-height:275px;object-fit:contain;mix-blend-mode:multiply}.intro-visual{position:relative;text-align:center}.intro-visual>span{font-size:11px;color:#788e80;display:block}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:30px;margin-top:29px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title h2{font-size:18px}.section-title>span,.section-title>a{font-size:12px;color:var(--muted)}.trail-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--green);margin:0 0 13px}.trail-label:before{content:'';width:5px;height:5px;background:var(--green);border-radius:50%}.foundation{display:flex;align-items:center;gap:15px;border:1px dashed #a7cbb4;background:#f1f8f3;padding:16px 18px;border-radius:8px;margin-bottom:17px}.foundation .unit-icon{width:46px;height:46px}.foundation b{font-size:15px;display:block}.foundation p{font-size:12px;color:var(--muted);margin-top:4px}.foundation .icon-button{margin-left:auto;color:var(--green)}.unit-list{display:grid;gap:11px}.unit-row{display:flex;align-items:center;gap:15px;padding:16px 17px;background:#fff;border:1px solid var(--line);border-radius:8px;width:100%;text-align:left;transition:transform .2s,border-color .2s}.unit-row:hover{transform:translateY(-2px);border-color:#a9c5b2}.unit-icon{width:53px;height:53px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:#e6f4ea;color:#429670}.unit-icon svg{width:28px;height:28px}.peach .unit-icon,.unit-icon.peach{background:#fff0e6;color:#ce906c}.blue .unit-icon,.unit-icon.blue{background:#eaf3fd;color:#6296ba}.pink .unit-icon,.unit-icon.pink{background:#fceef4;color:#c77d9f}.yellow .unit-icon,.unit-icon.yellow{background:#fff7dc;color:#b99e48}.unit-text{min-width:0;flex:1}.unit-text small{color:var(--muted);font-size:10px;display:block;margin-bottom:4px}.unit-text b{font-size:15px}.unit-text b span{font-weight:600;font-size:12px;margin-left:8px;color:#819087}.unit-text p{font-size:11px;color:var(--muted);margin-top:5px}.unit-status{font-size:11px;color:#8f9c94;white-space:nowrap;display:flex;gap:8px;align-items:center}.unit-status svg{width:17px}.unit-status.done{color:var(--green)}.right-rail{border-left:1px solid var(--line);padding-left:25px}.today-head{display:flex;align-items:center;justify-content:space-between;font-size:15px;margin-bottom:17px}.today-head span{font-size:11px;background:#f5f0dd;color:#9a843e;padding:4px 7px;border-radius:4px}.today-steps{display:grid;gap:18px;list-style:none;margin:0;padding:0}.today-steps li{display:flex;align-items:center;gap:12px}.step-num{width:27px;height:27px;background:#f0f4f1;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#7e9186;flex-shrink:0}.today-steps b{font-size:13px;display:block}.today-steps p{font-size:11px;color:var(--muted);margin-top:3px}.rail-band{border-top:1px solid var(--line);padding-top:23px;margin-top:24px}.word-today{border:1px solid var(--line);border-radius:8px;background:#fff;text-align:center;padding:20px 12px;margin-top:12px;position:relative}.word-today .word-icon{color:#559471;background:#f0f8f2;width:59px;height:59px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center}.word-today .word-icon svg{width:32px;height:32px}.word-today h3{font-size:26px}.word-today .ipa{font-size:12px;color:var(--muted);margin:3px 0}.word-today p{font-size:13px}.word-today .icon-button{margin-top:12px;color:var(--green)}.week{display:flex;justify-content:space-between;margin-top:15px}.day{text-align:center;font-size:10px;color:#9ba69f}.day span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;border:1px solid var(--line);margin-top:8px}.day.today span{border-color:var(--green);color:var(--green)}.day.learned span{background:var(--green);color:white}.page-heading{margin-bottom:25px;display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.page-heading h1{font-size:28px}.page-heading p{font-size:14px;color:var(--muted);margin-top:7px}.tabs{display:flex;gap:5px;flex-wrap:wrap;background:#edf2ee;border-radius:8px;padding:5px;width:max-content;max-width:100%;margin-bottom:24px}.tabs button{border:0;background:transparent;border-radius:5px;font-size:14px;padding:9px 16px}.tabs button.active{background:white;color:var(--green);box-shadow:0 1px 4px #233b3010;font-weight:800}.word-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.word-card{border:1px solid var(--line);background:white;border-radius:8px;padding:18px;position:relative;min-height:153px}.word-card h3{font-size:21px;margin:15px 0 3px;overflow-wrap:anywhere}.word-card .ipa{font-size:12px;color:var(--muted)}.word-card p{font-size:13px;margin:4px 0 12px}.word-card .word-tools{display:flex;justify-content:space-between;align-items:center}.word-card .icon-button{width:31px;height:31px;border:0;background:#edf7f1;color:var(--green)}.word-card small{color:var(--muted);font-size:11px}.word-card .bookmark{position:absolute;right:12px;top:12px;background:none;border:0;color:#a0aea5;padding:5px}.word-card .bookmark.active{color:#c2a02a}.word-card .bookmark.active svg{fill:#f8e9ae}.filters{display:flex;gap:12px;margin:20px 0;flex-wrap:wrap}.searchbox{display:flex;gap:8px;align-items:center;border:1px solid var(--line);padding:10px 12px;background:#fff;border-radius:7px;flex:1;min-width:180px}.searchbox svg{color:var(--muted);width:17px}.searchbox input{width:100%;border:0;outline:0;background:none;font-size:14px}.filters select{background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 12px;font-size:14px;max-width:100%}.empty{padding:50px 20px;text-align:center;color:var(--muted)}.letter-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:13px}.letter-tile{border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px 8px;text-align:center;min-height:111px}.letter-tile:hover,.letter-tile.active{border-color:var(--green);background:#eff8f2}.letter-tile b{font-size:32px;display:block}.letter-tile span{font-size:12px;color:var(--muted)}.letter-work{display:grid;grid-template-columns:1fr 1fr;gap:27px;padding:25px 0;margin-bottom:24px;border-bottom:1px solid var(--line)}.letter-focus{display:flex;gap:25px;align-items:center}.big-letter{font-size:88px;font-weight:900;color:var(--green)}.letter-focus h2{font-size:25px}.letter-focus p{font-size:14px;color:var(--muted);margin-top:8px}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.writing-area{position:relative}.writing-area canvas{width:100%;height:140px;display:block;background:white;border:1px solid var(--line);border-radius:8px;touch-action:none}.writing-label{font-size:12px;color:var(--muted);margin-top:9px;display:flex;justify-content:space-between}.writing-label button{border:0;background:transparent;color:var(--green)}.blend-stage{text-align:center;padding:28px 0}.blend-stage h2{font-size:42px;color:var(--green)}.sound-parts{display:flex;justify-content:center;gap:13px;margin:25px 0}.sound-part{background:#fff;border:1px solid var(--line);border-radius:8px;min-width:75px;padding:14px}.sound-part b{display:block;font-size:32px}.sound-part span{font-size:14px;color:#839386}.sound-part.vowel{background:#fff4da;border-color:#edddae}.sound-part.lit{background:#e1f1e6;border-color:var(--green);transform:translateY(-4px)}.sound-parts .plus{align-self:center;color:#9aac9f}.blend-picker{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.blend-picker button{padding:8px 16px;border:1px solid var(--line);border-radius:5px;background:#fff}.blend-picker button.active{border-color:var(--green);color:var(--green)}.game-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.game-card{background:white;border:1px solid var(--line);border-radius:8px;padding:25px;display:flex;gap:19px;align-items:center;text-align:left}.game-card h3{margin-bottom:7px}.game-card p{font-size:13px;color:var(--muted)}.game-card .unit-icon{width:64px;height:64px}.back-link{background:none;border:0;display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);padding:0;margin-bottom:20px}.quiz-shell{max-width:670px;margin:auto;padding:18px 0 30px}.quiz-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:13px;color:var(--muted)}.progress-track{background:#e5ece6;height:6px;border-radius:5px;overflow:hidden}.progress-track>span{display:block;height:100%;background:var(--green);transition:width .3s}.quiz-question{text-align:center;padding:34px 0 23px}.quiz-question h2{font-size:25px;margin:10px 0}.quiz-question .listen-big{width:80px;height:80px;border-radius:50%;border:0;background:var(--mint);color:var(--green);margin-bottom:12px}.listen-big svg{width:32px;height:32px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{padding:19px 12px;border:2px solid var(--line);background:white;border-radius:8px;font-size:19px;min-height:66px}.choice.correct{border-color:var(--green);background:#eff8f1}.choice.wrong{border-color:#d97d83;background:#fff1f1}.feedback{min-height:55px;margin:16px 0;font-size:14px;color:var(--green);text-align:center;line-height:1.8}.feedback.error{color:var(--red)}.quiz-bottom{text-align:center}.spelling-slots{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:17px 0}.spelling-slots button{min-width:44px;height:49px;font-size:23px;border:1px solid #a7c6b1;border-radius:5px;background:#edf7f0}.spelling-tiles{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:20px 0}.spelling-tiles button{min-width:43px;padding:10px;font-size:21px;border:1px solid var(--line);background:#fff;border-radius:5px;box-shadow:0 3px 0 #dfe7e1}.sentence-list{display:grid;gap:12px}.sentence-row{border-bottom:1px solid var(--line);padding:18px 0;display:flex;align-items:center;gap:18px}.sentence-row b{font-size:19px}.sentence-row p{font-size:14px;color:var(--muted);margin-top:4px}.sentence-row .icon-button{margin-left:auto;color:var(--green);flex-shrink:0}.knowledge{display:grid;grid-template-columns:1fr 1fr;gap:26px}.knowledge section{padding:22px 0;border-bottom:1px solid var(--line)}.knowledge h3{margin-bottom:13px}.knowledge p{font-size:15px;color:#62766a}.knowledge ul{padding-left:20px;line-height:2.3;font-size:15px}.story-lines{margin:24px 0}.story-lines p{font-size:22px;margin:18px 0 4px}.story-lines small{font-size:14px;color:var(--muted)}.project-options{display:flex;gap:13px;flex-wrap:wrap;margin:24px 0}.project-options label{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:16px;cursor:pointer}.project-options input{accent-color:var(--green);width:18px;height:18px}.project-options .swatch{width:24px;height:24px;border:1px solid #d6dfd8;border-radius:50%}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:20px 0 32px;border-bottom:1px solid var(--line)}.stat-grid strong{font-size:35px;color:var(--green);display:block}.stat-grid p{font-size:13px;color:var(--muted)}.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:23px}.badge{border:1px solid var(--line);border-radius:8px;background:white;padding:22px 12px;text-align:center}.badge svg{width:38px;height:38px;color:#a8b1aa;margin-bottom:12px}.badge.earned svg{color:#c8a344;fill:#fdf0bd}.badge p{font-size:14px;font-weight:700}.badge small{font-size:12px;color:var(--muted);display:block;margin-top:7px}.parent-section{padding:25px 0;border-bottom:1px solid var(--line)}.parent-section h2{font-size:19px;margin-bottom:15px}.parent-section p{font-size:14px;color:#697d6e}.settings-row{display:flex;gap:20px;align-items:center;justify-content:space-between;margin:18px 0}.settings-row select,.settings-row input{padding:9px;border:1px solid var(--line);border-radius:5px;background:white;font-size:14px;max-width:200px}.source-links{display:flex;gap:13px;flex-wrap:wrap;margin-top:16px}.source-links a{font-size:13px;color:var(--green);text-decoration:underline}.coverage-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:16px}.coverage-table th,.coverage-table td{text-align:left;padding:12px 7px;border-bottom:1px solid var(--line)}dialog{border:0;padding:0;border-radius:12px;max-width:720px;width:calc(100% - 32px);max-height:90dvh;color:var(--ink);box-shadow:0 25px 90px #183c3333}dialog::backdrop{background:#193e355c;backdrop-filter:blur(3px)}.dialog-head{padding:22px 28px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-head h2{font-size:18px}.dialog-head p{font-size:12px;color:var(--muted);margin-top:5px}.dialog-body{padding:25px 30px 30px}.flash-card{text-align:center;padding:20px 0}.flash-card h2{font-size:45px;color:var(--green);margin:10px 0}.flash-card .ipa{font-size:17px;color:var(--muted)}.flash-card p{font-size:23px;margin-top:13px}.lesson-tools{display:flex;justify-content:center;gap:12px;margin-top:25px}.lesson-next{display:flex;justify-content:space-between;align-items:center;margin-top:20px;gap:12px}.lesson-next small{font-size:12px;color:var(--muted)}.finish{text-align:center;padding:25px 0}.finish>svg{width:70px;height:70px;color:#d6b34d;fill:#fdf1be}.finish h2{font-size:26px;margin:20px 0 12px}.finish p{font-size:15px;color:var(--muted);margin-bottom:24px}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);background:#224e3b;color:white;font-size:14px;border-radius:7px;padding:12px 20px;opacity:0;pointer-events:none;transition:.2s;z-index:100;max-width:90vw}#toast.visible{opacity:1;transform:translate(-50%,0)}.mobile-nav{display:none}.danger{color:var(--red);border-color:#e8c6c9}.checkline{display:flex;align-items:center;gap:10px;font-size:14px;margin:16px 0}.checkline input{accent-color:var(--green)}.break-word{overflow-wrap:anywhere}.sentence-pieces{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.sentence-pieces button{padding:12px 16px;border:1px solid var(--line);background:#fff;border-radius:6px;font-size:17px}.sentence-pieces.selected{min-height:70px;background:#edf7f1;margin-bottom:22px;padding:10px;border-radius:7px}.revision-band{border-top:1px solid var(--line);padding:22px 0;margin-top:23px;display:flex;justify-content:space-between;gap:15px;align-items:center}.revision-band p{font-size:12px;color:var(--muted);margin-top:7px}
@media(min-width:1500px){main{padding-top:45px}.intro{min-height:315px}.intro-img{max-height:300px}.content-grid{gap:42px;grid-template-columns:minmax(0,1fr) 300px}.unit-row{padding:19px}}
@media(max-width:1100px){.sidebar{width:210px;padding:28px 17px}.brand{font-size:22px}.workspace{margin-left:210px}main{padding:27px 27px 0}.topbar{padding:0 27px}.content-grid{grid-template-columns:minmax(0,1fr) 235px;gap:23px}.right-rail{padding-left:20px}.unit-text b span{display:block;margin:3px 0 0}.word-grid{grid-template-columns:repeat(3,1fr)}.letter-grid{grid-template-columns:repeat(6,1fr)}.intro h1{font-size:26px}}
@media(max-width:850px){.sidebar{width:185px;padding:26px 14px}.brand{font-size:20px;gap:7px}.brand-symbol{width:35px;height:39px}.brand small{font-size:9px}.sidebar nav a{font-size:14px;padding:14px 10px;gap:10px}.workspace{margin-left:185px}.content-grid{display:block}.right-rail{border-left:0;padding:25px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:25px}.rail-band{margin:0;padding:0;border:0}.right-rail .rail-band:last-child{display:none}.intro{min-height:235px}.intro h1{font-size:24px}.word-grid{grid-template-columns:repeat(2,1fr)}.game-card{padding:20px 15px;gap:12px}.game-card .unit-icon{width:45px;height:45px}.letter-work{grid-template-columns:1fr}.letter-grid{grid-template-columns:repeat(5,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.badge-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.sidebar{display:none}.workspace{margin:0}.topbar{height:68px;padding:0 20px}.breadcrumb{font-size:12px;gap:8px}.breadcrumb>span{display:none}.breadcrumb{color:var(--green);font-weight:800}.breadcrumb b{display:none}.top-actions{gap:13px}.stars{font-size:12px}main{padding:24px 20px 0}.intro{grid-template-columns:1fr;min-height:0;padding-bottom:25px;gap:10px}.intro h1{font-size:28px}.intro p{font-size:13px;margin:9px 0 18px}.intro-visual{position:absolute;right:0;top:24px;width:42%;pointer-events:none;opacity:1}.intro-img{height:140px;object-fit:contain}.intro-visual>span{display:none}.intro-text{position:relative;z-index:1}.intro h1{max-width:58%;font-size:25px}.intro p{max-width:58%;font-size:12px}.eyebrow{font-size:11px}.intro .primary{font-size:13px;padding:10px 15px;min-height:42px}.content-grid{margin-top:24px}.unit-row{padding:14px 12px;gap:12px}.unit-icon{width:47px;height:47px}.unit-text b{font-size:14px}.unit-text b span{font-size:11px;display:block;margin:4px 0 0}.unit-text p{font-size:10px}.unit-status{font-size:10px}.foundation{padding:14px 12px;gap:12px}.foundation p{font-size:11px}.right-rail{gap:18px}.word-today{padding:15px 8px}.page-heading h1{font-size:24px}.page-heading p{font-size:13px}.page-heading{flex-wrap:wrap}.tabs{width:100%;gap:1px}.tabs button{font-size:13px;padding:9px 10px;flex:1}.word-grid{gap:10px}.word-card{padding:15px 12px}.word-card h3{font-size:20px}.letter-grid{grid-template-columns:repeat(4,1fr);gap:9px}.letter-tile{min-height:93px;padding:12px 5px}.letter-tile b{font-size:28px}.big-letter{font-size:75px}.letter-focus{gap:16px}.letter-focus h2{font-size:22px}.letter-focus p{font-size:13px}.game-grid{grid-template-columns:1fr;gap:13px}.game-card{padding:20px;gap:20px}.game-card .unit-icon{width:55px;height:55px}.knowledge{grid-template-columns:1fr;gap:0}.sentence-row b{font-size:17px}.sentence-row p{font-size:13px}.story-lines p{font-size:19px}.quiz-question h2{font-size:23px}.choices{gap:10px}.choice{font-size:17px}.sound-parts{gap:8px}.sound-part{min-width:58px;padding:12px}.sound-parts .plus{font-size:13px}.sound-part b{font-size:28px}.dialog-head{padding:20px}.dialog-body{padding:20px}.lesson-next{flex-wrap:wrap}.flash-card h2{font-size:39px}.flash-card p{font-size:19px}.coverage-table{font-size:11px}.coverage-table th,.coverage-table td{padding:10px 4px}.settings-row{align-items:flex-start;gap:10px}.settings-row select{max-width:140px}.source-links{flex-direction:column}.mobile-nav{position:fixed;inset:auto 0 0 0;padding:10px 8px calc(10px + env(safe-area-inset-bottom));background:#ffffffef;backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;justify-content:space-around;z-index:30}.mobile-nav a{display:flex;flex-direction:column;gap:4px;align-items:center;font-size:10px;color:#809087;min-width:48px}.mobile-nav a.active{color:var(--green);font-weight:800}.mobile-nav svg{width:21px;height:21px}footer{margin-top:27px;padding:20px 20px 95px;font-size:10px}footer span{float:none;display:block;margin-top:4px}#toast{bottom:90px}.revision-band{align-items:flex-start}.revision-band h3{font-size:15px}.revision-band .secondary{font-size:12px;padding:9px 12px;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* Learning aids added for the progressive study flow. */
.word-card{min-height:184px}.word-picture{width:44px;height:44px;object-fit:contain;display:block;margin-top:8px}.word-card h3{margin-top:9px}
.word-color-swatch{display:block;width:44px;height:44px;border-radius:50%;border:1px solid #d7e1db;margin-top:8px}
.writing-actions{display:flex;gap:10px}.writing-actions button{border:0;background:transparent;color:var(--green);padding:0;font-size:12px}.writing-feedback{font-size:12px;color:var(--muted);margin-top:7px}.writing-feedback.good{color:var(--green);font-weight:700}
.review-card{display:flex;align-items:center;gap:14px;background:#fffaf0;border:1px solid #efe0b4;border-radius:8px;padding:13px 15px;margin:0 0 17px}.review-card .unit-icon{width:42px;height:42px;background:#fff2c7;color:#b18c37}.review-card b{font-size:14px}.review-card p{font-size:11px;color:var(--muted);margin-top:3px}.review-card .secondary{margin-left:auto;min-height:36px;padding:8px 13px;font-size:12px;white-space:nowrap}
.later-units{border:1px solid var(--line);border-radius:8px;background:#fff;margin-top:14px}.later-units summary{cursor:pointer;padding:15px 17px;color:var(--green);font-size:13px;font-weight:800}.later-units .unit-list{padding:0 12px 12px}
.unit-picture-strip{display:flex;gap:12px;margin:0 0 22px}.unit-picture{display:flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#6b7f73;font-size:12px}.unit-picture img{width:38px;height:38px;object-fit:contain}.rail-picture{width:52px;height:52px;object-fit:contain;display:block;margin:0 auto 8px}.writing-area canvas{background-color:#fffdf7}
@media(max-width:600px){.word-card{min-height:175px;padding:14px 12px}.word-picture{width:38px;height:38px}.review-card{align-items:flex-start;flex-wrap:wrap}.review-card .secondary{margin-left:56px}.unit-picture-strip{overflow-x:auto;padding-bottom:4px}.unit-picture{min-width:max-content}.later-units .unit-row{margin-bottom:8px}}
/* Xinqing English: one useful activity at a time. */
:root{--ink:#193d35;--green:#16815c;--muted:#627d75}body{font-size:16px}.page-heading{margin:0 0 28px}.page-heading h1{font-size:clamp(28px,3vw,38px);line-height:1.35}.page-heading p{margin-top:10px;color:var(--muted);font-size:17px;line-height:1.8}.course-controls{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:24px;padding:16px;background:#edf5f1;border-radius:16px}.course-controls label,.letter-selector label,.full-label,.word-search,.scene-filter{display:flex;gap:9px;align-items:center;font-size:15px;color:var(--muted)}.course-controls select,.letter-selector select,.carousel-controls select,.scene-controls select,.scene-filter select,.full-label select,.word-search input{font:inherit;background:white;color:var(--ink);border:1px solid #d8e7df;border-radius:10px;padding:11px;min-height:44px;max-width:100%}.course-controls .unit-choice{flex:1}.unit-choice select{flex:1;min-width:120px}.daily-surface{background:#e4f3ed;border-radius:28px;display:grid;grid-template-columns:1.4fr 1fr;overflow:hidden;border:1px solid #d5e9de;margin-bottom:28px}.daily-main{padding:34px}.daily-main h2{font-size:30px;margin:16px 0}.daily-route{display:grid;gap:12px;font-size:17px;color:#3b6255;margin-bottom:24px}.daily-island{width:100%;height:100%;max-height:335px;object-fit:contain;align-self:center;padding:15px;mix-blend-mode:multiply}.quiet-note{font-size:15px;color:var(--muted);margin-top:18px}.review-count{font-size:14px;color:var(--muted);max-width:200px;line-height:1.7}.below-daily{display:grid;grid-template-columns:1.35fr 1fr;gap:24px}.next-unit,.gentle-reminder{padding:25px;background:white;border:1px solid #dfeae4;border-radius:20px}.next-unit h2,.gentle-reminder h2{font-size:22px;margin:10px 0}.next-unit p,.gentle-reminder p{line-height:1.8;color:var(--muted);font-size:16px}.section-kicker{font-size:14px;color:var(--green)}.mastery-line{margin:16px 0;font-size:14px;display:grid;gap:8px}.edition-note{margin-top:18px;font-size:14px}.edition-note summary,.learning-map summary,.scene-transcript summary{cursor:pointer;color:var(--green);padding:10px 0}.learning-map{margin-top:25px;background:#fff;border-radius:16px;padding:12px 20px}.learning-map summary{display:flex;gap:10px;align-items:center}.text-link{display:inline-block;margin-top:10px;color:var(--green)}.unit-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}.unit-tabs{overflow-x:auto;max-width:100%;white-space:nowrap}.unit-tabs button{flex-shrink:0}.one-at-a-time{max-width:750px;margin:0 auto;text-align:center}.focus-card{background:#fff;border:1px solid #deebe3;border-radius:24px;text-align:center;padding:32px 24px;max-width:750px;margin:0 auto;box-shadow:0 8px 32px #194c3520}.focus-card h2{font-size:clamp(30px,4vw,46px);line-height:1.5;margin:12px 0 6px;overflow-wrap:anywhere}.focus-card.compact h2{font-size:28px}.focus-card p{font-size:18px;line-height:1.8}.focus-card .button-row{justify-content:center;margin-top:20px}.memory-picture{display:block;width:115px;height:115px;object-fit:contain;margin:0 auto}.memory-emoji{display:block;font-size:90px;line-height:1.3;margin:0 auto}.memory-example{font-size:28px;background:#eff6f2;border-radius:14px;padding:15px;display:inline-block;color:#365e4d}.memory-color{height:100px;width:100px;background:var(--swatch);border-radius:20px;border:2px solid #cfd8d3;margin:0 auto}.number-memory{display:flex;align-items:center;gap:24px;justify-content:center}.number-memory b{font-size:65px;color:var(--green)}.number-memory span{font-size:23px;color:#efa03a;max-width:170px}.word-meaning{font-size:20px!important;color:var(--muted)}.concealed{visibility:hidden}.word-stage{display:block;margin-top:18px;color:var(--muted);font-size:14px}.carousel-controls{display:flex;gap:16px;justify-content:center;align-items:center;margin:20px 0;flex-wrap:wrap}.carousel-controls label{font-size:14px;display:grid;gap:6px}.item-position{font-size:15px;color:var(--muted);margin:16px 0;text-align:center}.knowledge-card{padding:30px;border:1px solid #dce9e1;border-radius:20px;background:white;max-width:950px}.knowledge-card h2{font-size:25px;margin-bottom:15px}.knowledge-card h3{font-size:20px;margin:26px 0 12px}.knowledge-card p,.knowledge-card li{font-size:17px;line-height:1.9;color:var(--muted)}.knowledge-card ul{padding-left:24px}.knowledge-card audio{display:block;width:100%;margin:24px 0}.full-label{align-items:stretch;flex-direction:column}.full-label select{width:100%}.project-options{display:grid;gap:14px;margin:22px 0}.letter-selector{display:flex;gap:14px;flex-wrap:wrap;margin:20px 0}.letter-learning{display:grid;grid-template-columns:1fr 1.4fr;gap:26px}.letter-focus,.writing-section{background:#fff;border:1px solid #dce9e1;border-radius:22px;padding:28px}.big-letter{font-size:90px;letter-spacing:8px;color:var(--green)}.letter-focus p{font-size:17px;line-height:1.8}.letter-focus .primary{margin-top:15px}.letter-example{margin:20px 0;padding:18px;background:#eef5f1;border-radius:16px}.letter-example span{font-size:50px;vertical-align:middle;margin-right:16px}.letter-example b{font-size:25px}.letter-example p{margin:10px 0}.writing-section h2{font-size:22px;margin-bottom:12px}.writing-area{position:relative;aspect-ratio:540/250;width:100%;border:1px solid #dae5de;border-radius:12px;overflow:hidden}.writing-guide{position:absolute;width:100%;height:100%;inset:0}.writing-area canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.grid-label{font-family:sans-serif;fill:#76919e;font-size:12px}.writing-hint{font-size:16px;line-height:1.8;margin:16px 0;color:var(--muted)}.writing-section .small{line-height:1.8;margin-top:15px}.animate-strokes .letter-path{stroke-dasharray:1;stroke-dashoffset:1;animation:trace-letter 1.1s ease forwards;animation-delay:calc(var(--order)*1.2s)}@keyframes trace-letter{to{stroke-dashoffset:0}}.sound-train{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:28px 0}.sound-train span{font-size:36px;padding:14px 20px;background:#e2f2e9;border-radius:14px;color:var(--green)}.sound-train small{display:block;font-size:19px}.lesson-page{max-width:900px;margin:0 auto;text-align:center}.lesson-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;color:var(--muted);font-size:15px}.lesson-phases{display:flex;list-style:none;padding:0;gap:10px;margin:0 0 25px}.lesson-phases li{flex:1;background:#ecf2ef;border-radius:12px;padding:12px 8px;font-size:14px;color:var(--muted);line-height:1.5}.lesson-phases li span{display:block;font-size:18px;margin-bottom:6px}.lesson-phases .current{background:#167c5b;color:white}.lesson-phases .passed{background:#d6ecdf;color:#167c5b}.lesson-page h1{font-size:28px;margin:22px 0}.lesson-page>.primary{margin-top:24px}.centered{text-align:center;margin-top:20px}.recall-card .choices,.scene-question .choices{grid-template-columns:1fr;margin-top:24px}.recall-card h2{font-size:28px}.choices .choice{min-height:55px;font-size:18px;white-space:normal;overflow-wrap:anywhere}.scene-player{text-align:left;background:#fff;border:1px solid #dce9e1;border-radius:24px;padding:28px;max-width:900px;margin:auto}.scene-heading h2{font-size:28px;margin:10px 0}.scene-heading p{color:var(--muted);font-size:15px}.scene-level{font-size:14px;background:#e5f3ec;border-radius:8px;padding:6px 10px;color:var(--green)}.scene-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:24px 0}.scene-controls label{font-size:14px;display:flex;gap:8px;align-items:center}.speech-bubble{padding:25px;border-radius:20px 20px 20px 5px;background:#eaf5ef;min-height:190px;display:flex;flex-direction:column;justify-content:center}.speaker-name{font-size:14px;color:#55766b}.english-line{font-size:clamp(24px,3vw,32px);line-height:1.65;font-weight:700;color:var(--ink);margin:12px 0;overflow-wrap:anywhere}.translation{font-size:17px;color:var(--muted);line-height:1.7}.scene-sentence-tools{margin-top:20px}.scene-transcript{margin:15px 0;font-size:15px}.transcript-row{margin:15px 0;padding:12px 0;border-bottom:1px solid #e1ebe5}.transcript-row p{font-size:18px;line-height:1.8}.transcript-row small{font-size:15px;color:var(--muted)}.scene-question{border-top:1px solid #e1ebe5;margin-top:24px;padding-top:24px}.scene-question h3{font-size:21px}.scene-question .choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.scene-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:25px}.scene-tile{background:#fff;border:1px solid #dce9e1;border-radius:20px;padding:25px;color:var(--ink)}.scene-tile span{display:inline-flex;background:#def0e5;padding:13px;border-radius:12px;color:var(--green)}.scene-tile h2{font-size:22px;margin:18px 0 10px}.scene-tile p,.scene-tile small{font-size:15px;line-height:1.8;color:var(--muted)}.scene-tile[hidden]{display:none}.word-search{margin:20px 0}.word-search input{width:260px}.game-card h2{font-size:23px;margin-top:20px}.game-card p{font-size:17px;line-height:1.8}.game-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.tile-answer{border:2px dashed #c6ded0;min-height:70px;border-radius:14px;margin:22px 0;padding:12px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.tile-pool{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:24px}.tile-answer button,.tile-pool button{background:#e7f3ed;border:1px solid #bdd6c7;border-radius:10px;padding:12px 16px;font-size:23px;min-width:45px;color:var(--ink)}.tile-pool button:disabled{opacity:.35}.finish .button-row{justify-content:center}.finish h1{font-size:30px;margin:20px}.finish p{font-size:18px;line-height:1.9}.table-scroll{overflow:auto}.coverage-table{font-size:15px}.coverage-table th,.coverage-table td{white-space:normal;min-width:110px}.parent-section p{font-size:17px;line-height:1.9}.parent-section .small{font-size:14px}.source-links a{font-size:15px}.settings-row input[type=time]{border:1px solid #d3e4da;border-radius:10px;font:inherit;padding:10px}.sidebar .daily-note span{font-size:14px}.sidebar nav a{font-size:16px}.book-label{font-size:14px}#sync-status{font-size:14px;color:var(--green)}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #edba48;outline-offset:3px}button[hidden]{display:none!important}.primary,.secondary{min-height:44px;font-size:16px}.topbar{min-height:75px}.small{font-size:14px}.muted{line-height:1.8}
@media(max-width:1100px){.daily-main{padding:25px}.daily-main h2{font-size:25px}.daily-surface{grid-template-columns:1.6fr 1fr}.letter-learning{grid-template-columns:1fr}.scene-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.page-heading h1{font-size:28px}.page-heading p{font-size:16px}.course-controls{gap:10px;padding:12px}.course-controls label{font-size:14px}.course-controls .unit-choice{flex-basis:100%}.daily-surface{grid-template-columns:1fr}.daily-island{display:none}.daily-main{padding:24px}.daily-main h2{font-size:26px}.below-daily{grid-template-columns:1fr}.daily-route{font-size:16px}.focus-card{padding:25px 18px}.focus-card h2{font-size:31px}.knowledge-card{padding:22px}.scene-player{padding:20px}.scene-controls{gap:10px}.scene-question .choices{grid-template-columns:1fr}.scene-grid,.game-grid{grid-template-columns:1fr}.letter-focus,.writing-section{padding:22px}.lesson-phases li{font-size:12px;padding:10px 4px}.lesson-phases{gap:6px}.lesson-heading{align-items:flex-start;font-size:14px}.speech-bubble{min-height:180px;padding:20px}.english-line{font-size:24px}.topbar .breadcrumb{font-size:13px}.scene-sentence-tools .secondary{font-size:14px;padding:10px 12px}.writing-area{min-height:180px;aspect-ratio:auto}.carousel-controls label{width:100%}.letter-selector{gap:10px}.memory-emoji{font-size:75px}.word-search{flex-wrap:wrap}.word-search input{width:100%}.unit-actions{gap:10px}.unit-actions .primary,.unit-actions .secondary{font-size:15px}.mobile-nav span{font-size:12px}main{padding-bottom:35px!important}}
@media(prefers-reduced-motion:reduce){.animate-strokes .letter-path{animation:none;stroke-dashoffset:0}}
.letter-focus{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:14px;text-align:center}.letter-focus h2.big-letter{font-size:clamp(80px,9vw,112px);line-height:1.1;margin:0;color:var(--green);letter-spacing:2px}.letter-focus>.primary{white-space:nowrap;min-width:145px}.letter-focus>p{max-width:420px;font-size:17px}.letter-example{width:100%;max-width:280px;display:block;text-align:center}.letter-example>span{display:block;margin:0 0 10px;font-size:48px}.letter-example>b{display:block;font-size:28px}.letter-example .secondary{white-space:nowrap}
.writing-area canvas{background:transparent;border:0;border-radius:0}
.article-a-note{width:100%;max-width:420px;text-align:left;padding:16px 18px;background:#f0f7f2;border:1px solid #dce9e1;border-radius:16px}.article-a-note b{color:var(--green)}.article-a-note p{margin:7px 0 12px;line-height:1.7}

.footer-settings{display:inline-block;font-size:14px;color:var(--green);line-height:1.6}footer span{font-size:12px}

.companion-launch{position:fixed;right:24px;bottom:24px;z-index:45;display:flex;align-items:center;gap:9px;background:#116a4d;color:#fff;border:2px solid #fff;border-radius:28px;padding:14px 21px;font-size:16px;font-weight:700;box-shadow:0 6px 22px #194b3326;cursor:pointer}.companion-launch svg{width:21px;height:21px}.companion-launch:focus-visible,.companion-panel button:focus-visible{outline:3px solid #f1af23;outline-offset:3px}
.companion-panel{position:fixed;right:24px;bottom:88px;z-index:46;width:min(410px,calc(100vw - 32px));max-height:calc(100dvh - 112px);overflow:auto;border:1px solid #d7e4de;border-radius:22px;background:#fff;padding:20px;box-shadow:0 16px 55px #103c342e;color:#233f35}.companion-panel[hidden]{display:none}.companion-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.companion-header h2{font-size:23px;margin:3px 0 0;line-height:1.3}.companion-kicker{color:#587468;font-size:14px}.companion-focus{font-size:14px;font-weight:700;color:#137953;background:#eff8f2;padding:9px 12px;border-radius:9px;margin:14px 0}.companion-message{padding:14px 16px;border-radius:14px;background:#f6faf8;border:1px solid #e4eee8}.companion-message p{margin:0;line-height:1.85;font-size:17px;white-space:pre-line;overflow-wrap:anywhere}.companion-message .companion-child{font-size:14px;color:#547367;border-bottom:1px solid #dce8e1;margin-bottom:10px;padding-bottom:10px}.companion-message .companion-translation{font-size:14px;color:#587468;margin-top:8px}.companion-audio-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}.companion-audio-controls .secondary{padding:9px 10px;min-height:40px;font-size:14px}.companion-audio-controls svg{width:16px;height:16px}.companion-voice-label{display:flex;align-items:center;gap:6px;color:#587468;font-size:14px}.companion-voice-label select{padding:8px;width:80px;border-radius:9px;background:#fff;border:1px solid #dce8e1;color:#233f35;font-size:14px}.companion-status{font-size:14px;line-height:1.6;color:#547367;margin:12px 0;min-height:23px}.companion-mic{width:100%;justify-content:center;min-height:48px;font-size:17px}.companion-mic.recording{background:#b94045;border-color:#b94045}.companion-input-label{display:block;font-size:14px;color:#547367;margin:16px 0 6px}.companion-input-row{display:flex;gap:8px}.companion-input-row input{min-width:0;flex:1;font-size:16px;padding:11px;border:1px solid #cbded3;border-radius:10px}.companion-input-row button{padding:10px 15px}.companion-privacy{font-size:12px;color:#6c7f74;line-height:1.6;margin:12px 0 0}.companion-panel button:disabled{opacity:.55;cursor:default}#companion-retry{margin-top:10px}#companion-retry[hidden]{display:none}
@media(max-width:800px){.companion-launch{right:15px;bottom:calc(80px + env(safe-area-inset-bottom));padding:11px 16px}.companion-panel{right:16px;bottom:calc(138px + env(safe-area-inset-bottom));max-height:calc(100dvh - 160px - env(safe-area-inset-bottom));padding:16px;border-radius:18px}}
@media(prefers-reduced-motion:reduce){.companion-panel,.companion-launch{scroll-behavior:auto}}
/* A focused sentence practice overlay; details appear only after recording. */
.reading-dialog{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #dae8e1;border-radius:24px;padding:28px;color:#24433a;background:#fffdfa;box-shadow:0 24px 100px #163a3030}
.reading-dialog::backdrop{background:#183a335c;backdrop-filter:blur(3px)}
.reading-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.reading-header h2{font-size:25px;margin:4px 0}.reading-header .icon-button{font-size:21px;flex:none}
.reading-english{font-size:30px;line-height:1.45;font-weight:700;overflow-wrap:anywhere;margin:24px 0 8px}.reading-status{background:#edf5ef;padding:14px 16px;border-radius:14px;line-height:1.7;margin:22px 0 16px;min-height:56px}.reading-dialog button{min-height:46px}.reading-dialog button.recording{background:#a84242}
.reading-result{margin-top:22px;padding-top:22px;border-top:1px solid #dce8e0}.reading-score{display:flex;align-items:center;gap:14px}.reading-score strong{font-size:46px;color:#148665}.reading-score small{font-size:17px;font-weight:400;margin-left:3px}.reading-score span{font-size:17px}.reading-metrics{display:flex;gap:14px;margin:18px 0}.reading-metrics span{background:#f1f6f2;padding:9px 12px;border-radius:10px}.reading-metrics b{margin-left:8px}.reading-words{display:flex;flex-wrap:wrap;gap:7px}.reading-words>span{padding:6px 9px;border-radius:8px;font-size:18px}.reading-words small{font-size:12px}.reading-word-clear{color:#167255;background:#edf7f0}.reading-word-practice{color:#805727;background:#fff0cf}.reading-tip{margin-top:20px}.reading-privacy,.reading-footnote{font-size:12px;line-height:1.7;color:#718078;margin-top:20px}.reading-footnote{margin-top:8px}
@media(max-width:600px){.reading-dialog{padding:20px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:20px}.reading-english{font-size:25px}.reading-dialog .button-row{gap:8px}.reading-dialog button{min-height:48px}.reading-metrics{gap:8px;font-size:14px}.reading-dialog .section-kicker{font-size:12px}.sentence-row>.button-row{flex-wrap:wrap}}

/* One course setting, with a separate learning space for each child. */
.course-button,.profile-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line,#dce8e1);background:#fff;border-radius:14px;padding:9px 12px;color:var(--ink,#233d34);font-size:14px;cursor:pointer;min-height:44px;white-space:nowrap}
.course-button svg,.profile-button svg{width:17px;height:17px;flex-shrink:0}.course-button:hover,.profile-button:hover{background:#edf7f1;border-color:#16845f}.profile-avatar,.profile-initial{display:grid;place-items:center;flex-shrink:0;color:#fff;background:#16845f;border-radius:50%;font-weight:700}.profile-avatar{width:28px;height:28px}.profile-button-name{max-width:110px;overflow:hidden;text-overflow:ellipsis}.course-scope{display:flex;align-items:center;gap:9px;color:#44765f;font-size:14px;margin:0 0 24px;padding:12px 16px;background:#edf5ef;border-radius:12px}.course-scope svg{width:18px;height:18px;flex-shrink:0}.profile-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);box-sizing:border-box;overflow:auto;padding:30px;border:0;border-radius:24px;background:#fcfdfa;color:#233d34;box-shadow:0 24px 90px #102e3840}.profile-dialog::backdrop{background:#18352c70;backdrop-filter:blur(5px)}.profile-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.profile-heading h2{margin:8px 0 0;font-size:26px}.profile-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px;max-height:240px;overflow:auto}.profile-choice{display:flex;align-items:center;gap:12px;background:white;border:1px solid #dce8e1;border-radius:16px;text-align:left;padding:15px;color:#233d34;cursor:pointer;min-width:0}.profile-choice.selected{background:#ebf6ee;border-color:#16845f}.profile-choice>span:last-child{min-width:0}.profile-choice b{display:block;overflow-wrap:anywhere}.profile-choice small{display:block;margin-top:4px;color:#7a8d82}.profile-initial{width:40px;height:40px;font-size:20px}.profile-dialog label{display:block;font-weight:600;margin-bottom:10px}.profile-input-row{display:flex;gap:10px}.profile-input-row input{width:100%;min-width:0;border:1px solid #dce8e1;border-radius:12px;padding:12px;background:white;color:#233d34;font-size:16px}.profile-input-row button{flex-shrink:0}.profile-dialog input:focus,.profile-dialog select:focus{outline:3px solid #bedecd;outline-offset:2px}.profile-dialog #profile-message{min-height:24px;margin:16px 0}.profile-dialog #profile-rename{padding-top:20px;border-top:1px solid #dce8e1}.profile-dialog .course-controls{margin:0 0 16px}.foundation-review{margin-top:24px;background:white;border:1px solid #dce8e1;border-radius:16px;padding:20px}.foundation-review>summary{cursor:pointer;font-weight:600}.foundation-review .page-heading{margin-top:24px}.topbar{flex-wrap:wrap;row-gap:10px}.top-actions{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1100px){.breadcrumb{display:none}.top-actions{width:100%;justify-content:flex-end}}
@media(max-width:640px){.topbar{padding:12px 16px}.top-actions{gap:8px;justify-content:space-between}.course-button{order:5;width:100%;justify-content:space-between}.profile-button{padding:6px 10px;max-width:65%}.profile-button-name{max-width:140px}.profile-dialog{padding:22px}.profile-heading h2{font-size:23px}.profile-list{grid-template-columns:1fr}.profile-input-row{flex-wrap:wrap}.profile-input-row input{flex-basis:100%}.profile-input-row button{width:100%}.profile-dialog .course-controls{display:flex;flex-wrap:wrap}.profile-dialog .course-controls label{flex:1 1 40%}.profile-dialog .course-controls .unit-choice{flex-basis:100%}.profile-dialog select{width:100%}.course-scope{font-size:13px}.foundation-review{padding:14px}}

/* Conversation stays in chronological order; the composer remains below it. */
.companion-panel{display:flex;flex-direction:column;height:min(760px,calc(100dvh - 112px));width:min(440px,calc(100vw - 32px));gap:0}
.companion-panel>*{flex-shrink:0}
.companion-message{display:flex;flex-direction:column;gap:14px;flex:1;min-height:110px;overflow-y:auto;overscroll-behavior:contain;padding:14px 10px;background:#f2f6f3;scrollbar-width:thin}
.companion-bubble{max-width:92%;padding:10px 13px;border-radius:12px;background:#fff;border:1px solid #e2eae5;align-self:flex-start}
.companion-bubble.is-child{align-self:flex-end;background:#def2d9;border-color:#cfe5c9}
.companion-speaker{display:block;color:#698174;font-size:12px;margin-bottom:4px}
.companion-bubble p{margin:0;font-size:16px;line-height:1.7;white-space:pre-line;overflow-wrap:anywhere}
.companion-bubble .companion-translation{font-size:13px;color:#587468;margin-top:6px}
@media(max-width:800px){.companion-panel{height:min(760px,calc(100dvh - 160px - env(safe-area-inset-bottom)))}}

/* 小爱的学习联盟：一次一个任务，先看故事，再展开证据。 */
[hidden]{display:none!important}
.partner-welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:8px 0 28px}
.partner-welcome h1{font-size:30px}.partner-welcome p{margin-top:8px;color:#637c70;font-size:16px}
.quiet-link{color:#62786e;font-size:14px;white-space:nowrap;border-bottom:1px solid #bbccc1;padding-bottom:4px}
.mission-envelope{display:grid;grid-template-columns:1.6fr 1fr;gap:32px;align-items:center;min-height:340px;padding:36px 38px;border-radius:28px;background:#f8f3e7;border:1px solid #e6ddc6;position:relative;overflow:hidden}
.mission-envelope:before{content:'';position:absolute;inset:0 0 auto;height:8px;background:repeating-linear-gradient(130deg,#e7ae91 0 18px,#f8f3e7 18px 36px,#93b8a4 36px 54px,#f8f3e7 54px 72px)}
.mission-stamp{display:inline-block;font-size:14px;letter-spacing:1px;font-weight:800;color:#846a44;background:#fff9e8;border:1px dashed #cdbb91;border-radius:7px;padding:7px 11px;margin-bottom:18px}
.mission-copy h2{font-size:32px;line-height:1.4}.mission-copy>p{margin-top:13px;font-size:17px;max-width:470px}.mission-copy .mission-scope{color:#786e56;font-size:14px;margin-top:10px}.mission-copy .button-row{margin-top:23px;justify-content:flex-start}
.mission-copy .primary{border-radius:13px;min-height:52px;box-shadow:0 4px 0 #0e6448;padding-inline:23px}.mission-copy .secondary{background:#fffaf0;border-radius:13px;border-color:#d8ceb4}
.mission-partner{text-align:center;align-self:center}.xiaoai-avatar{width:86px;height:100px;object-fit:contain;flex-shrink:0}.xiaoai-avatar.large{width:100%;max-width:270px;height:245px;filter:drop-shadow(0 8px 7px #3e684b16)}
.partner-saying{font-size:15px;color:#58715e;padding:10px 12px;border-radius:13px;background:#fffaf0;width:max-content;max-width:100%;margin:0 auto}
.adventure-choice{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.adventure-choice button{border:1px solid #dacfb6;background:#fffaf0;border-radius:20px;padding:8px 12px;font-size:13px;color:#6e715b;min-height:40px}.adventure-choice button.selected{border-color:#15815c;background:#edf7ee;color:#11694c;font-weight:800}
.journey-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:25px 0 32px}.journey-preview>div{display:grid;grid-template-columns:30px 1fr;gap:6px 10px;padding:14px 8px;border-bottom:2px solid #e1eae3}.journey-preview span{grid-row:span 2;color:#9bae9e;font-size:20px;font-weight:800}.journey-preview b{font-size:15px}.journey-preview small{color:#718477;font-size:12px;line-height:1.5}
.partner-notebook{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:25px 28px;background:#fff;border:1px solid #dfe9e2;border-radius:22px}.partner-notebook h2{font-size:21px}.partner-notebook p{font-size:15px;color:#6b8073;margin-top:8px}.partner-notebook .secondary{flex-shrink:0}
.partner-about,.course-explorer{margin:24px 0;color:#718477;font-size:14px;line-height:1.8}.partner-about summary,.course-explorer summary{cursor:pointer;width:max-content;max-width:100%;font-weight:700}.partner-about p{margin:12px 0;max-width:780px}.partner-unit-links{display:flex;flex-wrap:wrap;gap:10px;padding-top:18px}
.partner-guide{display:flex;align-items:flex-start;gap:22px;background:#ecf5ee;border:1px solid #d7e7db;border-radius:22px;padding:20px 25px;margin:24px 0}.partner-guide>div{flex:1;min-width:0}.partner-guide>div>span{font-size:12px;color:#638070}.partner-guide h2{font-size:21px;margin:5px 0 6px}.partner-guide p{font-size:16px}.partner-guide .button-row{justify-content:flex-start;margin-top:14px;gap:9px}.partner-guide button{min-height:40px;padding:7px 12px;font-size:14px;background:#fff;border-radius:10px}
.mission-phase-title{font-size:24px;text-align:center;margin:18px 0 24px}.time-reminder{background:#fff5d9;color:#796025;border-radius:12px;padding:12px 18px;margin-bottom:20px}
.teach-partner{padding:23px 26px;border:1px solid #e2e7df;border-radius:20px;background:#fff;margin:20px 0}.teach-partner h2{font-size:21px}.teach-partner>p{font-size:14px;color:#748578;margin:8px 0 18px}.teach-partner>.primary{margin-top:18px}
.teacher-letter{border:1px solid #e4dac2;background:#fffaf0;padding:36px;border-radius:25px;margin:25px 0}.teacher-letter h1{font-size:28px}.letter-body{display:flex;align-items:center;gap:24px;margin:24px 0}.letter-body p{font-size:18px;line-height:1.95}.letter-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px 0;border-block:1px dashed #d7cdae}.letter-facts span{text-align:center;font-size:14px;color:#718170}.letter-facts b{display:block;font-size:29px;color:#23644c;margin-bottom:4px}.teacher-note{background:#eff6ed;border-radius:12px;padding:15px 18px;margin:20px 0;color:#4d6b54;line-height:1.8}.teacher-letter .button-row{justify-content:flex-start;margin-top:24px}
.evidence-dashboard{border:1px solid #dce7df;border-radius:24px;background:#fff;padding:28px;margin-bottom:26px}.partner-report-heading h2{font-size:25px}.partner-report-heading>p{font-size:15px;color:#6c8073;margin-top:9px}.evidence-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:25px 0 18px}.evidence-stats>div{background:#f2f7f1;border-radius:16px;padding:20px 12px;text-align:center}.evidence-stats b{display:block;color:#217152;font-size:27px;line-height:1.4}.evidence-stats span{display:block;margin-top:7px;font-size:13px;color:#667e6e}.evidence-caption{font-size:13px;color:#718074;line-height:1.85;margin:16px 0}.knowledge-trail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:23px 0}.knowledge-trail>div{padding:14px 16px;border:1px solid #e0e9e0;border-radius:12px}.knowledge-trail b,.knowledge-trail span{display:block;overflow-wrap:anywhere}.knowledge-trail b{font-size:18px}.knowledge-trail span{font-size:13px;color:#7a897b;margin:5px 0}.knowledge-status{display:inline-block;background:#f3f5ec;color:#668064;border-radius:7px;padding:4px 7px;font-size:12px;margin-top:8px}.evidence-detail summary,.saved-letter summary{cursor:pointer;font-size:15px;font-weight:700;color:#3c7759;padding:12px 0}.evidence-detail table{width:100%;font-size:14px}.evidence-detail th,.evidence-detail td{text-align:left;padding:12px 8px;border-bottom:1px solid #e4ece6}.evidence-detail>p{font-size:14px;color:#758879;margin-top:12px}.saved-letter p{font-size:15px;padding:10px 0}.subject-roadmap{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.subject-roadmap span{background:#f1f5ee;padding:9px 13px;border-radius:9px;font-size:14px}
#companion-task-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;max-height:105px;overflow:auto}#companion-task-actions button{min-height:36px;font-size:13px;padding:6px 10px;border-radius:9px}.companion-focus{margin:10px 0}.companion-panel .companion-privacy{font-size:11px}
@media(max-width:1050px){.mission-envelope{grid-template-columns:1.6fr 1fr;padding:30px 25px;gap:12px}.mission-copy h2{font-size:28px}.xiaoai-avatar.large{height:210px}.partner-welcome{align-items:flex-start}.quiet-link{white-space:normal;max-width:130px}.journey-preview{gap:8px}.knowledge-trail{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.partner-welcome{display:block;margin-top:3px}.partner-welcome h1{font-size:27px}.partner-welcome .quiet-link{display:inline-block;margin-top:12px;max-width:none;font-size:12px}.mission-envelope{display:flex;flex-direction:column-reverse;gap:18px;padding:28px 21px}.mission-partner{display:flex;align-items:center;justify-content:center;gap:12px;width:100%}.xiaoai-avatar.large{width:115px;height:132px}.partner-saying{font-size:13px;margin:0;width:auto;max-width:180px;line-height:1.8}.mission-copy{width:100%}.mission-copy h2{font-size:26px}.mission-stamp{font-size:12px;margin-bottom:13px}.mission-copy>p{font-size:16px}.mission-copy .button-row{gap:12px}.mission-copy .primary{width:100%}.mission-copy .secondary{width:100%;min-height:44px}.journey-preview{grid-template-columns:repeat(2,1fr);margin:15px 0 23px}.journey-preview>div{padding:14px 0}.partner-notebook{display:block;padding:22px}.partner-notebook .secondary{margin-top:15px;width:100%}.partner-notebook h2{font-size:20px}.partner-guide{padding:17px 16px;gap:12px}.partner-guide .xiaoai-avatar{width:54px;height:68px}.partner-guide h2{font-size:19px}.partner-guide p{font-size:15px}.partner-guide .button-row{gap:8px}.partner-guide button{font-size:12px;padding:8px;min-height:40px}.teach-partner{padding:21px 18px}.teach-partner h2{font-size:19px}.evidence-dashboard{padding:22px 17px}.partner-report-heading h2{font-size:22px}.evidence-stats{grid-template-columns:repeat(2,1fr);gap:10px}.evidence-stats b{font-size:24px}.evidence-stats>div{padding:17px 8px}.knowledge-trail>div{padding:12px}.teacher-letter{padding:25px 20px}.teacher-letter h1{font-size:25px}.letter-body{align-items:flex-start;gap:14px}.letter-body .xiaoai-avatar{width:55px;height:75px}.letter-body p{font-size:16px}.letter-facts{gap:9px}.letter-facts b{font-size:25px}.letter-facts span{font-size:12px}.companion-header h2{font-size:21px}#companion-task-actions{max-height:82px}}
@media(max-width:640px){.topbar{height:auto;min-height:86px}.top-actions{row-gap:10px}}
/* Reference tools are independent of the selected course. */
.reference-tabs{display:flex;gap:8px;margin:20px 0;flex-wrap:wrap}.reference-tabs a{padding:12px 18px;border-radius:14px;background:#fff;border:1px solid #dce8e1;color:var(--ink);font-weight:700}.reference-tabs a[aria-current]{background:#15815c;color:#fff;border-color:#15815c}.reference-body{margin:24px 0}.reference-intro,.reference-count{color:var(--muted);line-height:1.7}.alphabet-table{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.alphabet-table a{display:flex;flex-direction:column;align-items:center;padding:20px 8px;border-radius:18px;background:#fff;border:1px solid #dce8e1;gap:8px}.alphabet-table b{font-size:34px;color:var(--ink)}.alphabet-table small{color:var(--muted)}.blend-table{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.blend-table a{display:flex;flex-direction:column;gap:7px;background:#fff;padding:20px;border:1px solid #dce8e1;border-radius:16px}.blend-table b{font-size:24px;color:var(--ink)}.blend-table span,.blend-table small{color:var(--muted)}.reference-search{display:flex;gap:16px;flex-wrap:wrap}.reference-search label{display:flex;flex-direction:column;gap:8px;font-size:15px}.reference-search input,.reference-search select{background:#fff;border:1px solid #cfdfd4;border-radius:12px;padding:12px;font-size:16px;min-height:46px;max-width:100%}.reference-word-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.reference-word-list a{display:flex;flex-direction:column;gap:8px;border:1px solid #dce8e1;background:#fff;border-radius:14px;padding:17px;color:var(--ink);overflow-wrap:anywhere}.reference-word-list b{font-size:21px}.reference-word-list span{color:var(--muted);font-size:14px;line-height:1.5}.reference-pagination{display:flex;justify-content:center;gap:18px;margin:24px}.reference-locations{margin:20px 0;color:var(--muted)}.reference-body .letter-learning{margin-top:22px}.writing-section>summary{font-weight:700;font-size:21px;cursor:pointer;min-height:44px;line-height:1.8}.writing-case{display:flex;gap:10px;margin:18px 0}.writing-case [aria-pressed=true]{background:#e4f3eb;border-color:#15815c}.writing-area{margin-top:15px;min-height:150px}.writing-guide .pen-tip{stroke:#fff;stroke-width:2}.writing-section #writing-step{line-height:1.8;min-height:56px;color:#28634c;font-size:15px}.writing-section .button-row{gap:8px}.reference-body .letter-focus .big-letter{font-size:70px;margin:18px 0}.sidebar-bottom>[data-nav=reference]{padding:12px 0;margin:8px 0}.sidebar-bottom .daily-note{display:none}
/* A single invitation, with optional controls revealed when wanted. */
.mission-copy .mission-options{margin-top:24px;font-size:14px;color:#647c6d}.mission-options summary{cursor:pointer;min-height:44px;line-height:44px}.mission-options .secondary{margin-top:12px}.compact-notebook{margin:24px 0;padding:20px 25px}.compact-notebook h2{font-size:20px}.compact-notebook .text-link{font-size:15px}.xiaoai-greeting{display:flex;flex-direction:column;align-items:center;background:none;border:0;cursor:pointer;color:#6e607f;padding:0 12px 12px;border-radius:24px}.xiaoai-greeting span{font-size:14px;background:#fff6db;padding:7px 12px;border-radius:20px}.mission-partner{display:flex;flex-direction:column;align-items:center}.mission-partner .partner-saying{max-width:240px;font-size:15px;line-height:1.7}.xiaoai-wave{animation:xiaoai-wave .65s ease}.partner-guide{position:relative;align-items:center}.partner-guide>div{flex:1}.partner-guide p{margin:0}.mission-tools{align-self:flex-start}.mission-tools summary{cursor:pointer;font-size:24px;width:44px;height:44px;text-align:center;list-style:none}.mission-tools summary::-webkit-details-marker{display:none}.mission-tools[open]{background:#fff;padding:8px;border:1px solid #dce8e1;border-radius:14px}.mission-tools button{display:block;min-height:44px;width:100%;margin:8px 0;white-space:nowrap}.lesson-phases{margin-bottom:16px}.lesson-phases li{font-size:13px}.mission-phase-title{font-size:24px}.companion-avatar{width:48px;height:54px;object-fit:contain;margin-right:8px}.companion-header>div{flex:1}.companion-kicker{font-size:12px}.companion-header h2{font-size:20px}.companion-quick{display:flex;gap:6px;justify-content:space-between;margin:10px 0 0}.companion-quick-button{background:#f2f6f3;border:1px solid #dae6dd;border-radius:14px;font:inherit;font-size:13px;color:#4c6f5d;min-height:44px;flex:1;padding:5px 6px}.companion-audio-controls{margin-top:8px;gap:10px}.companion-audio-controls .secondary{border:0;background:none;padding:6px;min-height:44px}.companion-typing{margin-top:10px}.companion-typing summary{font-size:14px;color:#577568;cursor:pointer;min-height:44px;line-height:44px}.companion-typing .companion-input-label{margin-top:4px}.companion-panel .companion-privacy{margin-top:6px}.companion-panel .companion-message{min-height:100px}.companion-launch{padding:10px 17px;font-size:15px}.companion-avatar[data-mood=thinking]{animation:xiaoai-think 2s ease-in-out infinite}.companion-avatar[data-mood=listening]{filter:drop-shadow(0 0 5px #eeb161)}
@keyframes xiaoai-wave{0%,100%{transform:rotate(0)}25%{transform:rotate(-7deg)}65%{transform:rotate(7deg)}}@keyframes xiaoai-think{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@media(max-width:1050px){.alphabet-table{grid-template-columns:repeat(5,minmax(0,1fr))}.reference-word-list{grid-template-columns:repeat(2,minmax(0,1fr))}.blend-table{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.alphabet-table{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.alphabet-table a{padding:15px 5px}.alphabet-table b{font-size:29px}.alphabet-table small{font-size:12px}.blend-table{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reference-tabs{gap:6px}.reference-tabs a{padding:10px 12px;font-size:14px}.reference-search{display:block}.reference-search label{margin:14px 0}.reference-word-list{gap:8px}.reference-word-list a{padding:14px}.reference-word-list b{font-size:18px}.mission-partner{flex-direction:row}.xiaoai-greeting{padding:0 0 7px}.xiaoai-greeting span{font-size:12px}.mission-envelope{gap:12px}.mission-copy h2{font-size:25px}.mission-copy .mission-options{margin-top:15px}.compact-notebook{padding:18px}.compact-notebook h2{font-size:18px;margin-top:8px}.compact-notebook .text-link{display:inline-block;margin-top:10px}.mission-tools[open]{position:absolute;right:8px;top:8px;z-index:2}.partner-guide>div{padding-right:10px}.lesson-phases{gap:6px}.lesson-phases li{font-size:11px}.companion-panel{bottom:calc(86px + env(safe-area-inset-bottom));height:min(700px,calc(100dvh - 105px));max-height:calc(100dvh - 105px)}.companion-launch{bottom:calc(80px + env(safe-area-inset-bottom))}.writing-section .button-row button{font-size:14px;padding:8px}.writing-case button{font-size:14px}}
@media(prefers-reduced-motion:reduce){.xiaoai-wave,.companion-avatar[data-mood=thinking]{animation:none}}
.companion-panel[data-offline=true]{height:auto;min-height:0}.companion-unavailable{font-size:17px;line-height:1.9;padding:18px;border-radius:14px;background:#f0f7f2;color:#375c4a}.companion-panel [hidden]{display:none!important}#device-storage-note{font-size:13px;color:#597c6c}#profile-storage-note{font-size:14px;line-height:1.8}
