@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap');

:root{--ink:#26332d;--muted:#7c847f;--line:#e7e9e4;--paper:#f6f7f3;--white:#fff;--purple:#7568d8;--purple-dark:#5e51c2;--purple-soft:#efedff;--yellow:#f2cb58;--yellow-soft:#fff8df;--green:#4e7b63;--green-soft:#eaf3ec;--red:#d96354;--shadow:0 12px 40px rgba(42,52,45,.07);--serif:'Noto Serif SC','Songti SC',serif;--sans:'DM Sans','PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button{cursor:pointer}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(117,104,216,.22);outline-offset:3px}button{color:inherit}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.app-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#fcfcfa;border-right:1px solid var(--line);padding:30px 20px 22px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);padding:0 9px;margin-bottom:47px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--purple);color:#fff;transform:rotate(-3deg);box-shadow:0 5px 12px rgba(117,104,216,.23)}.brand-mark svg{width:25px;height:25px;stroke-width:1.6}.brand strong{display:block;font-size:23px;letter-spacing:3px;line-height:1.2}.brand small{display:block;font-size:10px;color:#92988f;letter-spacing:2px;margin-top:5px}.nav-label{margin:0 12px 13px;font-size:10px;letter-spacing:2px;color:#a1a69f}.side-nav{display:flex;flex-direction:column;gap:7px}.nav-item{height:46px;width:100%;display:flex;align-items:center;gap:12px;border:0;background:transparent;border-radius:11px;padding:0 13px;color:#777f79;text-align:left;transition:.2s}.nav-item:hover{background:#f2f3ef;color:var(--ink)}.nav-item.active{background:var(--purple-soft);color:var(--purple-dark);font-weight:600}.nav-item svg{width:19px;height:19px}.nav-item span{flex:1}.nav-item b{font-size:11px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;background:#eff0ec;border-radius:6px;color:#8a918b}.nav-item.active b{background:#ddd8fa}.nav-dot{width:5px;height:5px;border-radius:50%;background:var(--purple)}.sidebar-bottom{margin-top:auto}.daily-card{background:#f2f0fb;border:1px solid #e6e1f8;border-radius:16px;padding:17px 15px 15px;position:relative;overflow:hidden;margin-bottom:23px}.daily-card:after{content:'✦';position:absolute;right:10px;top:4px;font-size:54px;color:rgba(117,104,216,.07);transform:rotate(14deg)}.daily-icon{width:29px;height:29px;border-radius:9px;background:#fff;display:grid;place-items:center;color:var(--purple);margin-bottom:12px}.daily-icon svg{width:17px}.daily-card p{font-size:11px;color:#8d84ae;margin:0 0 5px}.daily-card strong{font-size:13px}.goal-row{display:flex;align-items:center;gap:9px;margin:13px 0 8px}.goal-track{height:5px;background:#dfdaef;border-radius:5px;flex:1;overflow:hidden}.goal-track span{display:block;height:100%;width:33.33%;background:var(--purple);border-radius:5px;transition:width .4s}.goal-row b{font-size:10px;color:var(--purple)}.daily-card small{font-size:9px;color:#9c95b1}.profile{display:flex;align-items:center;gap:10px;padding:0 5px}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#f7e9c5;color:#a67522;font-family:var(--serif);font-size:15px}.profile div{flex:1}.profile strong,.profile small{display:block}.profile strong{font-size:12px}.profile small{font-size:9px;color:#999f99;margin-top:4px}.online-dot{width:7px;height:7px;border-radius:50%;background:#6dac7c;box-shadow:0 0 0 3px #e8f3eb}.main-area{min-width:0}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.1%;background:rgba(252,252,250,.8);backdrop-filter:blur(12px)}.topbar-left{display:flex;align-items:center;gap:9px;font-size:12px;color:#929891}.topbar-left strong{color:#535d56;font-weight:500}.tiny-chevron{width:13px;height:13px;color:#b3b8b2}.topbar-right{display:flex;align-items:center;gap:23px}.streak{display:flex;align-items:center;gap:4px;color:#8d8b81;font-size:11px}.streak svg{width:17px;height:17px;color:#e99d45;fill:#fff0d8;margin-right:2px}.streak b{color:#d88834}.guide-button{display:flex;align-items:center;gap:6px;background:transparent;border:0;font-size:11px;color:#737d75}.guide-button svg{width:16px;height:16px}.content-wrap{max-width:1240px;margin:0 auto;padding:39px 4.2% 24px}.hero{display:flex;align-items:center;justify-content:space-between;margin-bottom:27px;position:relative}.eyebrow{font-size:9px;letter-spacing:2.1px;color:#92998f;display:flex;align-items:center;gap:8px;font-weight:600}.eyebrow i{display:inline-block;width:15px;height:2px;background:var(--yellow)}.hero h1{font-size:31px;letter-spacing:-1px;margin:10px 0 9px;line-height:1.35;font-weight:700}.hero h1 span{color:var(--purple);position:relative;margin-left:4px}.hero h1 span:after{content:'';position:absolute;left:1px;right:1px;bottom:-2px;height:5px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='6' viewBox='0 0 140 6'%3E%3Cpath d='M1 4C39 0 98 1 139 3' stroke='%23e4c856' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}.hero p{color:#858d86;margin:0;font-size:12px;line-height:1.8}.hero-doodle{width:168px;height:74px;position:relative;color:#a39acb;margin-right:17px}.doodle-star{position:absolute;left:9px;top:4px;font-size:24px;color:#e8c450;transform:rotate(15deg)}.doodle-loop{position:absolute;width:88px;height:40px;border:1.5px solid #c9c3e6;border-radius:50%;left:38px;top:19px;transform:rotate(-8deg)}.doodle-loop:after{content:'';position:absolute;width:32px;height:20px;border-top:1.5px solid #c9c3e6;border-radius:50%;right:-28px;top:15px;transform:rotate(25deg)}.doodle-note{position:absolute;right:0;top:1px;font-size:10px;line-height:1.6;transform:rotate(8deg);color:#a19baf}.search-card{background:#fff;border:1px solid #e4e6e0;border-radius:17px;padding:10px 11px 0;box-shadow:0 9px 28px rgba(39,49,42,.05);margin-bottom:37px}.search-main{display:flex;align-items:center;gap:12px}.search-icon{color:#8b938c;width:21px;height:21px;margin-left:6px;flex:none}.search-main input{border:0;outline:0;background:transparent;height:47px;min-width:0;flex:1;color:var(--ink);font-size:13px}.search-main input::placeholder{color:#a5aba5}.detect-chip{display:flex;align-items:center;gap:6px;background:#f4f5f2;color:#8a918b;font-size:10px;white-space:nowrap;padding:6px 9px;border-radius:7px}.detect-chip i{width:5px;height:5px;border-radius:50%;background:#a5aaa4}.detect-chip.chinese{background:#fff6dc;color:#9b7422}.detect-chip.chinese i{background:#d6a530}.detect-chip.english{background:#efedff;color:#6b5fc4}.detect-chip.english i{background:var(--purple)}.detect-chip.math{background:#eaf3ec;color:#4b755f}.detect-chip.math i{background:#5f9477}.start-button{height:43px;border:0;border-radius:11px;padding:0 19px;background:var(--ink);color:white;font-size:12px;font-weight:600;display:flex;align-items:center;gap:17px;transition:.2s;white-space:nowrap}.start-button:hover{background:var(--purple);transform:translateY(-1px)}.start-button svg{width:17px;height:17px}.quick-row{height:41px;border-top:1px solid #f0f1ed;display:flex;align-items:center;gap:8px;margin:8px 3px 0;overflow-x:auto;scrollbar-width:none}.quick-row>span{font-size:10px;color:#a0a69f;margin-right:4px;white-space:nowrap}.quick-row button{border:0;background:transparent;color:#777f78;font-size:10px;display:flex;align-items:center;gap:5px;padding:4px 7px;border-radius:5px;white-space:nowrap}.quick-row button:hover{background:#f4f5f1;color:var(--ink)}.subject-dot{width:5px;height:5px;border-radius:50%}.subject-dot.chinese{background:#e7b946}.subject-dot.english{background:#8b7ce0}.subject-dot.math{background:#6d9f82}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px}.section-kicker{display:block;font-size:9px;color:#969d96;letter-spacing:1.5px;margin-bottom:5px}.section-heading h2{font-size:18px;margin:0;letter-spacing:-.3px}.lesson-actions{display:flex;gap:7px}.soft-button{display:flex;align-items:center;gap:6px;border:1px solid #e0e3dc;background:#fff;border-radius:8px;padding:7px 10px;color:#7f8780;font-size:10px}.soft-button svg{width:14px;height:14px}.soft-button:hover,.soft-button.active{border-color:#cfc8f2;color:var(--purple);background:var(--purple-soft)}.soft-button.active svg{fill:currentColor}.topic-banner{border-radius:18px;padding:25px 27px;display:flex;align-items:center;position:relative;overflow:hidden;min-height:142px}.topic-banner.chinese{background:#fff5d9;border:1px solid #f0e2b7}.topic-banner.english{background:#eeebff;border:1px solid #ded8fa}.topic-banner.math{background:#eaf2ed;border:1px solid #d5e5da}.topic-info{position:relative;z-index:2;flex:1}.topic-label{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:4px 7px;font-size:9px;font-weight:600;margin-bottom:10px}.chinese .topic-label{background:#f1d982;color:#735815}.english .topic-label{background:#d9d2fa;color:#5d50b5}.math .topic-label{background:#cee2d5;color:#3f6b51}.topic-title-row{display:flex;align-items:baseline;gap:13px}.topic-title-row h3{margin:0;font-size:31px;line-height:1.25;letter-spacing:-1px}.chinese .topic-title-row h3{font-family:var(--serif);letter-spacing:3px}.topic-title-row span{font-size:11px;color:#9c8956;letter-spacing:1px}.english .topic-title-row span{color:#8a80bb}.math .topic-title-row span{color:#6c8876}.topic-info p{font-size:11px;line-height:1.8;margin:9px 0 0;color:#81745a}.english .topic-info p{color:#766e96}.math .topic-info p{color:#667b6d}.topic-art{width:190px;align-self:stretch;position:relative;flex:none}.mood-face{position:absolute;right:22px;top:4px;width:86px;height:86px;background:#f0ca56;border-radius:24px;transform:rotate(7deg);box-shadow:inset 0 -5px 0 rgba(164,120,22,.08),0 8px 0 rgba(181,139,32,.07)}.mood-face:before{content:'';position:absolute;left:22px;top:25px;width:7px;height:9px;background:#6b5425;border-radius:50%;box-shadow:34px 0 #6b5425}.mood-face:after{content:'';position:absolute;left:28px;top:43px;width:29px;height:15px;border-bottom:4px solid #6b5425;border-radius:0 0 30px 30px}.mood-tag{position:absolute;right:97px;bottom:8px;background:#fff;padding:6px 10px;border-radius:7px;transform:rotate(-7deg);font-size:10px;color:#a08032;box-shadow:0 3px 8px rgba(107,84,37,.07)}.art-spark{position:absolute;right:118px;top:2px;color:#d4a92c;font-size:22px}.english-art{display:flex;align-items:center;justify-content:center;gap:8px;height:100%;font-weight:700}.english-art b{display:grid;place-items:center;width:53px;height:53px;background:#fff;border-radius:16px;color:#685abe;font-size:20px;box-shadow:0 5px 0 rgba(94,81,194,.08);transform:rotate(-5deg)}.english-art b:nth-child(2){transform:translateY(-12px) rotate(4deg);background:#7869d4;color:#fff}.english-art b:nth-child(3){transform:rotate(7deg)}.math-art{display:grid;place-items:center;height:100%;font-family:Georgia,serif;font-size:54px;font-style:italic;color:#52775f;transform:rotate(-6deg)}.math-art span{position:relative}.math-art span:after{content:'';position:absolute;width:85px;height:40px;border:2px solid #9bb7a4;border-radius:50%;left:-15px;top:8px;transform:rotate(8deg)}.lesson-body{margin-top:16px}.content-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 23px}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.card-title{display:flex;align-items:center;gap:9px}.card-title>span.number{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#f4f2e8;color:#9a7b34;font-size:10px;font-weight:700}.card-title h4{font-size:14px;margin:0}.card-title small{font-size:10px;color:#a0a69f;margin-left:4px}.text-button{border:0;background:transparent;color:#8b928c;font-size:10px;display:flex;align-items:center;gap:4px}.text-button svg{width:12px;height:12px}.filter-pills{display:flex;gap:6px}.filter-pills button{border:1px solid #e8e9e4;background:#fff;border-radius:20px;padding:5px 10px;color:#929890;font-size:9px}.filter-pills button.active{background:#f4ecd1;border-color:#ead8a1;color:#8b6c23}.idiom-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.idiom-card{position:relative;border:1px solid #e9e9e3;background:#fdfdfb;border-radius:12px;padding:16px 13px 13px;text-align:left;transition:.2s;min-width:0}.idiom-card:hover{border-color:#dfcd92;transform:translateY(-2px);box-shadow:0 6px 14px rgba(87,68,25,.05)}.idiom-card.active{background:#fff9e9;border-color:#e4cc83}.idiom-card .idiom-tag{font-size:8px;color:#a4997e;background:#f3f1e9;padding:3px 5px;border-radius:4px}.idiom-card h5{font-family:var(--serif);font-size:18px;letter-spacing:1px;margin:11px 0 5px}.idiom-card .pinyin{font-size:8px;color:#aaa18d;letter-spacing:.2px;white-space:nowrap}.idiom-card p{font-size:9px;color:#90958d;line-height:1.6;margin:9px 0 11px;height:29px;overflow:hidden}.intensity{display:flex;align-items:center;gap:3px}.intensity i{width:12px;height:3px;border-radius:2px;background:#eceae2}.intensity i.on{background:#e5bd4e}.intensity span{font-size:8px;color:#aaa493;margin-left:4px}.idiom-detail{display:flex;align-items:center;gap:14px;background:#f8f7f2;border-radius:10px;padding:12px 15px;margin-top:12px;animation:fadeIn .25s}.detail-quote{font-family:var(--serif);color:#c6b683;font-size:24px;line-height:1}.idiom-detail div{flex:1}.idiom-detail strong{font-size:11px;font-weight:500;line-height:1.7}.idiom-detail p{font-size:9px;color:#92968f;margin:4px 0 0;line-height:1.6}.audio-button{width:30px;height:30px;border-radius:50%;border:1px solid #e4e1d6;background:#fff;color:#a18c56;display:grid;place-items:center;flex:none}.audio-button svg{width:14px;height:14px}.two-column{display:grid;grid-template-columns:1.45fr 1fr;gap:16px;margin-top:16px}.poem-list{display:flex;flex-direction:column;gap:14px}.poem-item{position:relative;padding-left:18px;border-left:2px solid #eee5c8}.poem-item blockquote{font-family:var(--serif);font-size:15px;line-height:1.8;margin:0 0 7px;letter-spacing:.5px}.poem-item footer{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#9a9c94}.poem-item footer span:last-child{color:#b39750;background:#fbf6e7;padding:3px 6px;border-radius:4px}.practice-card{background:#f0eee6;border-color:#e4e0d5;position:relative;overflow:hidden}.practice-card:after{content:'写';position:absolute;right:-5px;bottom:-40px;font-family:var(--serif);font-size:130px;color:rgba(112,100,65,.035);pointer-events:none}.practice-card .card-title>span.number{background:#e5dfd0;color:#887957}.practice-card>p{font-size:10px;color:#8d8a80;line-height:1.7;margin:-5px 0 13px}.word-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:11px}.word-chips button{border:1px solid #ddd6c4;background:rgba(255,255,255,.55);border-radius:5px;padding:4px 7px;font-size:9px;color:#8a7952}.word-chips button.active{background:#fff7de;border-color:#d9bd6e;color:#8d6a1b}.practice-input{width:100%;height:83px;resize:none;border:1px solid #ddd9ce;background:#fff;border-radius:9px;padding:10px 11px;font-size:11px;line-height:1.7;color:var(--ink);outline:none}.practice-input::placeholder{color:#b0aca2}.practice-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;position:relative;z-index:1}.practice-footer small{font-size:8px;color:#a29e94}.primary-small{border:0;border-radius:8px;background:var(--ink);color:#fff;padding:8px 13px;font-size:10px;display:flex;align-items:center;gap:6px}.primary-small:hover{background:var(--purple)}.primary-small svg{width:13px;height:13px}.practice-feedback{font-size:10px;line-height:1.7;padding:9px 11px;border-radius:8px;margin-top:10px;display:none}.practice-feedback.show{display:block;animation:fadeIn .2s}.practice-feedback.good{background:#e4efe4;color:#527053}.practice-feedback.hint{background:#fff6de;color:#917631}
/* English */
.mnemonic{margin-top:16px;background:#332e4a;color:#fff;border-radius:13px;padding:15px 20px;display:flex;align-items:center;gap:15px}.mnemonic-label{background:#f2cb58;color:#4e411b;font-weight:700;font-size:10px;padding:6px 8px;border-radius:6px;transform:rotate(-2deg);white-space:nowrap}.mnemonic p{font-size:12px;margin:0;line-height:1.8;letter-spacing:.5px}.mnemonic p b{color:#e6dfff}.mnemonic small{margin-left:auto;color:#a9a1c3;font-size:9px;white-space:nowrap}.grammar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grammar-card{border:1px solid #e7e5ef;border-radius:12px;padding:17px 16px;background:#fdfcff;position:relative;overflow:hidden}.grammar-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#c9c0f2}.grammar-card.do:before{background:#edcc73}.grammar-card.go:before{background:#88b19a}.grammar-head{display:flex;align-items:center;gap:10px;margin-bottom:13px}.grammar-word{font-size:26px;font-weight:700;color:#6658b9;line-height:1}.do .grammar-word{color:#b18323}.go .grammar-word{color:#4f8062}.grammar-head span{font-size:10px;font-weight:600}.grammar-head small{display:block;font-size:8px;color:#9a96a5;font-weight:400;margin-top:4px}.scene-icon{margin-left:auto;width:42px;height:42px;border-radius:12px;background:#efebff;display:grid;place-items:center;color:#7769c8}.do .scene-icon{background:#fff4d9;color:#c09333}.go .scene-icon{background:#e9f3ec;color:#629174}.scene-icon svg{width:23px;height:23px}.grammar-card>p{font-size:9px;color:#8d8996;line-height:1.7;min-height:31px}.example-list{display:flex;flex-direction:column;gap:7px;margin-top:12px}.example-item{background:#f4f2fa;border-radius:7px;padding:8px 9px;display:flex;align-items:center;justify-content:space-between}.do .example-item{background:#faf6eb}.go .example-item{background:#eff5f0}.example-item strong{font-size:10px;font-weight:500}.example-item span{font-size:8px;color:#9b96a6}.grammar-tip{font-size:8px;color:#9a91b0;margin-top:10px;display:flex;gap:5px;line-height:1.5}.grammar-tip svg{width:11px;height:11px;flex:none}.quiz-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:25px;align-items:center}.quiz-question .question-label{font-size:9px;color:#9389bc;letter-spacing:1px}.quiz-question h4{font-size:17px;line-height:1.6;margin:8px 0 7px}.quiz-question h4 span{font-family:var(--sans);color:var(--purple);background:#f0edff;padding:2px 6px;border-radius:5px}.quiz-question p{font-size:9px;color:#9995a1;margin:0}.choice-row{display:flex;gap:8px}.choice-button{flex:1;border:1px solid #e2deed;background:#fff;border-radius:10px;padding:12px 8px;font-size:16px;font-weight:600;transition:.2s}.choice-button small{display:block;font-size:8px;color:#aaa3b6;font-weight:400;margin-top:4px}.choice-button:hover{border-color:#a99bdb;background:#f7f5ff;transform:translateY(-1px)}.choice-button.correct{background:#eaf4ec;border-color:#81ad91;color:#4e7d5d}.choice-button.wrong{background:#fff0ed;border-color:#dc9d91;color:#b76556}.quiz-feedback{min-height:34px;margin-top:12px;font-size:9px;line-height:1.6;color:#8e8999}.quiz-feedback strong{color:#5d8569}.quiz-meta{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.quiz-dots{display:flex;gap:4px}.quiz-dots i{width:16px;height:3px;background:#e9e5f0;border-radius:3px}.quiz-dots i.active{background:var(--purple)}.quiz-dots i.done{background:#8daf99}.difference-strip{margin-top:16px;border:1px dashed #d9d3ed;border-radius:12px;padding:13px 18px;display:flex;align-items:center;gap:12px;background:#faf9fd}.difference-strip>svg{color:#8d7ed2;flex:none}.difference-strip p{margin:0;font-size:10px;line-height:1.8;color:#7e788d;flex:1}.difference-strip p strong{color:#5f537e}.difference-strip button{border:0;background:transparent;color:var(--purple);font-size:9px;white-space:nowrap}
/* Math */
.thinking-tabs{display:flex;background:#eff0eb;border-radius:11px;padding:4px;gap:4px}.thinking-tab{flex:1;border:0;background:transparent;border-radius:8px;padding:10px 12px;display:flex;align-items:center;justify-content:center;gap:8px;color:#838b84;font-size:11px;transition:.2s}.thinking-tab svg{width:16px;height:16px}.thinking-tab span small{display:block;font-size:8px;font-weight:400;margin-top:2px;opacity:.7}.thinking-tab.active{background:#fff;color:#3e684f;box-shadow:0 3px 10px rgba(43,62,49,.06);font-weight:600}.thinking-tab[data-level="1"].active{color:#776127}.thinking-tab[data-level="2"].active{color:#6653b5}.math-content{display:grid;grid-template-columns:1.4fr .8fr;gap:16px;margin-top:16px}.solution-intro{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px}.persona-badge{width:36px;height:36px;border-radius:11px;background:#e8f1eb;color:#52765f;display:grid;place-items:center;flex:none}.persona-badge.scholar{background:#f8efcf;color:#a17f26}.persona-badge.top{background:#eee9fb;color:#7660ba}.solution-intro h4{font-size:13px;margin:0 0 5px}.solution-intro p{font-size:9px;color:#8e968f;line-height:1.6;margin:0}.steps{display:flex;flex-direction:column;gap:0}.step{display:grid;grid-template-columns:25px 1fr;gap:12px;position:relative;padding-bottom:19px}.step:last-child{padding-bottom:0}.step:not(:last-child):before{content:'';position:absolute;left:12px;top:26px;bottom:0;border-left:1px dashed #d8ded8}.step-index{width:25px;height:25px;border-radius:50%;background:#f0f3ef;border:1px solid #dfe5df;display:grid;place-items:center;font-size:9px;color:#6f8274;z-index:1}.step.done .step-index{background:#568069;border-color:#568069;color:#fff}.step h5{font-size:11px;margin:4px 0 7px}.step p{font-size:10px;line-height:1.8;color:#808a82;margin:0}.math-formula{display:inline-block;font-family:Georgia,'Times New Roman',serif;font-size:16px;color:#385d48;background:#f1f6f2;border-radius:7px;padding:7px 10px;margin-top:8px;letter-spacing:.5px}.step-locked{padding:12px;border:1px dashed #dfe3dd;border-radius:9px;text-align:center;color:#a0a69f;font-size:9px}.solution-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eff0ec;padding-top:14px;margin-top:18px}.solution-footer small{font-size:9px;color:#9aa099}.next-step{border:0;border-radius:8px;background:#3f654f;color:#fff;font-size:10px;padding:8px 12px;display:flex;align-items:center;gap:5px}.next-step svg{width:12px;height:12px}.next-step:disabled{background:#e3e7e2;color:#a0a79f;cursor:default}.insight-card{background:#f3eee2;border-color:#e7dfd0;display:flex;flex-direction:column}.insight-card .card-title>span.number{background:#e5dcc9;color:#907749}.insight-card blockquote{font-family:var(--serif);font-size:16px;line-height:1.9;margin:5px 0 12px;color:#615641}.insight-card>p{font-size:10px;color:#8b8170;line-height:1.9;margin:0 0 16px}.compare-box{margin-top:auto;background:rgba(255,255,255,.65);border:1px solid #e0d7c6;border-radius:10px;padding:12px}.compare-box span{font-size:8px;color:#9e917a;display:block;margin-bottom:8px}.compare-row{display:flex;align-items:center;gap:7px;font-size:9px;color:#7c725f;margin:6px 0}.compare-row i{width:6px;height:6px;border-radius:50%;background:#a8b5a8}.compare-row.current{font-weight:600;color:#5b4f37}.compare-row.current i{background:#c19e45}.challenge-card{margin-top:16px;background:#303b34;color:#fff;border-radius:13px;padding:15px 19px;display:flex;align-items:center;gap:14px}.challenge-icon{width:34px;height:34px;border-radius:10px;background:#47544c;display:grid;place-items:center;color:#e4cb77;flex:none}.challenge-card div{flex:1}.challenge-card h5{font-size:11px;margin:0 0 5px}.challenge-card p{font-size:9px;color:#b4bdb6;margin:0;line-height:1.6}.challenge-answer{border:1px solid #657168;background:transparent;color:#e3e8e4;border-radius:8px;padding:7px 12px;font-size:9px}.challenge-result{font-size:11px;color:#f0d987;min-width:120px;text-align:right;display:none}.page-footer{display:flex;align-items:center;justify-content:space-between;margin-top:30px;padding-top:17px;border-top:1px solid #e5e7e1;color:#9da39c}.page-footer>span{display:flex;align-items:center;gap:6px;font-size:9px}.page-footer svg{width:12px;height:12px}.page-footer small{font-size:8px;letter-spacing:1px}.icp-beian{flex-basis:100%;margin:8px 0 0;text-align:center;font-size:12px;color:#888;text-decoration:none;letter-spacing:0}.icp-beian:hover{color:#666;text-decoration:underline}
/* AI loading and dynamic lessons */
.button-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.start-button:disabled{cursor:wait;opacity:.85}.ai-loading{min-height:320px;background:#fff;border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:38px 20px;box-shadow:var(--shadow)}.thinking-orbit{width:64px;height:64px;border-radius:22px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;position:relative;margin-bottom:20px}.thinking-orbit:before{content:'';position:absolute;inset:-7px;border:1px dashed #bcb3e8;border-radius:26px;animation:spin 8s linear infinite}.thinking-orbit svg{width:29px;height:29px}.ai-loading h3{font-size:17px;margin:0 0 9px}.ai-loading p{font-size:11px;color:#8b938c;max-width:520px;line-height:1.8;margin:0}.loading-steps{display:flex;align-items:center;gap:12px;margin:28px 0 17px}.loading-steps span{display:flex;align-items:center;gap:6px;color:#a0a69f;font-size:10px;white-space:nowrap}.loading-steps span i{width:7px;height:7px;border-radius:50%;background:#d9ddd7}.loading-steps span.active{color:var(--purple)}.loading-steps span.active i{background:var(--purple);box-shadow:0 0 0 4px #efedff}.loading-steps b{width:36px;height:1px;background:#e3e6e0}.ai-loading>small{font-size:9px;color:#adb2ac}.ai-disclaimer{text-align:center;color:#9a9f98;font-size:9px;line-height:1.7;margin:12px 0 0}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:650px){.loading-steps{gap:7px}.loading-steps b{width:12px}.loading-steps span{font-size:8px}.ai-loading{min-height:290px}.ai-loading p{font-size:10px}.topic-info{min-width:0}.topic-title-row h3{overflow-wrap:anywhere}.dynamic-lesson{min-width:0}}
/* AI follow-up */
.ai-followup{margin-top:16px;background:#fbfaff;border-color:#e6e1f5}.ai-followup .card-title>span.number{background:#eeeafa;color:#7567c9}.ai-followup>p{font-size:10px;color:#8b8698;line-height:1.7;margin:-4px 0 13px}.followup-form{display:flex;gap:10px;align-items:flex-start}.followup-form textarea{flex:1;height:64px;resize:none;border:1px solid #ded9ee;background:#fff;border-radius:10px;padding:10px 11px;font-size:11px;line-height:1.7;color:var(--ink);outline:none}.followup-form textarea::placeholder{color:#b0abc0}.followup-form .primary-small{height:38px}.followup-answer{margin-top:13px}.followup-answer>strong{display:block;font-size:12px;line-height:1.9;font-weight:500;color:#4d4468}.followup-point{display:flex;gap:9px;background:#f3f0fb;border-radius:9px;padding:10px 11px;margin-top:8px}.followup-point b{font-size:10px;color:#7567c9;white-space:nowrap}.followup-point span{font-size:10px;color:#7c7590;line-height:1.7}.followup-error{background:#fff0ed;border:1px solid #e5b8ae;color:#b76556;border-radius:9px;padding:10px 12px;font-size:10px;line-height:1.7}.suggestion-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.suggestion-chips button{border:1px solid #ded9ee;background:#fff;border-radius:16px;padding:6px 10px;color:#7567c9;font-size:9px}.suggestion-chips button:hover{background:#f5f2fc}
@media(max-width:650px){.followup-form{flex-direction:column}.followup-form .primary-small{width:100%;justify-content:center}.ai-followup{padding:18px 16px}}
/* Modal and toast */
.modal-backdrop{position:fixed;inset:0;background:rgba(31,39,34,.32);backdrop-filter:blur(5px);z-index:100;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.modal{background:#fcfcf9;width:min(590px,100%);max-height:80vh;border-radius:20px;box-shadow:0 24px 70px rgba(28,35,30,.2);overflow:hidden;animation:modalIn .22s}.modal>header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px 17px;border-bottom:1px solid var(--line)}.modal h2{margin:0;font-size:20px}.icon-button{border:0;background:transparent;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:#899089}.icon-button:hover{background:#f0f1ed}.modal-body{padding:20px 24px;max-height:60vh;overflow-y:auto}.saved-list{display:flex;flex-direction:column;gap:10px}.saved-item{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 15px;display:flex;align-items:center;gap:12px}.saved-icon{width:37px;height:37px;border-radius:10px;display:grid;place-items:center}.saved-icon.chinese{background:#fff3d3;color:#ad862d}.saved-icon.english{background:#eeebff;color:#7767ce}.saved-icon.math{background:#eaf3ec;color:#5c876c}.saved-item div{flex:1}.saved-item strong{display:block;font-size:12px}.saved-item small{display:block;font-size:9px;color:#9a9f99;margin-top:5px}.saved-item button{border:0;background:transparent;color:#7b6bcc;font-size:10px}.saved-item .delete-saved{color:#a2a69f;padding:6px}.empty-state{text-align:center;padding:35px 20px}.empty-state .empty-icon{width:60px;height:60px;border-radius:20px;background:#f0eef9;color:#9589cf;display:grid;place-items:center;margin:0 auto 16px;transform:rotate(-4deg)}.empty-state .empty-icon svg{width:28px;height:28px}.empty-state h3{font-size:15px;margin:0 0 8px}.empty-state p{font-size:11px;color:#959c95;line-height:1.8;margin:0 0 18px}.guide-list{display:flex;flex-direction:column;gap:19px}.guide-item{display:flex;gap:13px}.guide-number{width:28px;height:28px;border-radius:9px;background:#efedfa;color:#7567c9;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}.guide-item h3{font-size:12px;margin:2px 0 6px}.guide-item p{font-size:10px;color:#8b938c;line-height:1.8;margin:0}.guide-examples{margin-top:20px;padding:14px;background:#f5f3eb;border-radius:10px;font-size:10px;color:#8c8679;line-height:1.9}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#2f3b33;color:#fff;border-radius:10px;padding:11px 17px;display:flex;align-items:center;gap:8px;font-size:11px;box-shadow:0 10px 30px rgba(30,40,33,.18);opacity:0;pointer-events:none;transition:.25s;z-index:200}.toast.show{opacity:1;transform:translate(-50%,0)}.toast svg{width:15px;height:15px;color:#efd277}.sidebar-mask{display:none}.mobile-menu{display:none}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(min-width:1500px){.content-wrap{padding-top:50px}.hero{margin-bottom:33px}.hero h1{font-size:36px}.topic-banner{padding:29px 32px}.content-card{padding:25px 27px}}
@media(max-width:1100px){.app-shell{grid-template-columns:194px minmax(0,1fr)}.sidebar{padding-left:14px;padding-right:14px}.content-wrap{padding-left:3%;padding-right:3%}.topic-art{width:155px}.idiom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.idiom-card p{height:auto}.grammar-grid{gap:8px}.grammar-card{padding:14px 12px}.scene-icon{display:none}.two-column{grid-template-columns:1.25fr 1fr}.math-content{grid-template-columns:1.25fr .8fr}.mnemonic small{display:none}}
@media(max-width:850px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:224px;transform:translateX(-105%);transition:transform .25s;box-shadow:15px 0 40px rgba(28,38,31,.1)}.sidebar.open{transform:translateX(0)}.sidebar-mask{position:fixed;inset:0;background:rgba(27,36,30,.25);z-index:25}.sidebar-mask.show{display:block}.mobile-menu{display:grid;margin-left:-8px}.topbar{height:65px;padding:0 4%}.topbar-left>span,.topbar-left>.tiny-chevron{display:none}.content-wrap{padding:29px 4% 22px}.hero-doodle{display:none}.hero h1{font-size:29px}.math-content{grid-template-columns:1fr}.insight-card{min-height:260px}.compare-box{margin-top:5px}}
@media(max-width:650px){.topbar-right{gap:10px}.streak{font-size:9px}.guide-button{font-size:0}.guide-button svg{width:19px;height:19px}.hero{margin-bottom:21px}.hero h1{font-size:27px}.hero p{font-size:11px;max-width:330px}.search-card{padding:9px 9px 0}.search-main{flex-wrap:wrap;gap:8px}.search-main input{font-size:12px;width:calc(100% - 40px);flex:auto}.detect-chip{margin-left:34px;margin-bottom:9px}.start-button{margin-left:auto;margin-bottom:9px;height:36px}.quick-row{margin-top:0}.quick-row>span{display:none}.section-heading{align-items:center}.section-heading h2{font-size:16px}.soft-button span{display:none}.soft-button{padding:8px}.topic-banner{padding:21px;min-height:135px}.topic-art{width:100px}.topic-title-row{display:block}.topic-title-row h3{font-size:25px}.topic-title-row span{display:block;margin-top:5px;font-size:9px}.topic-info p{font-size:10px;max-width:240px}.mood-face{right:3px;width:65px;height:65px;border-radius:18px}.mood-face:before{left:16px;top:19px;box-shadow:26px 0 #6b5425}.mood-face:after{left:21px;top:32px;width:23px}.mood-tag{display:none}.art-spark{right:64px}.english-art{gap:4px}.english-art b{width:33px;height:43px;font-size:14px;border-radius:10px}.math-art{font-size:36px}.content-card{padding:18px 16px}.card-heading{align-items:flex-start;gap:10px}.card-title small{display:block;margin:4px 0 0}.filter-pills{flex-wrap:wrap;justify-content:flex-end}.idiom-grid{gap:8px}.idiom-card{padding:13px 11px}.idiom-card h5{font-size:16px}.two-column{grid-template-columns:1fr}.poem-item blockquote{font-size:14px}.mnemonic{padding:13px 14px;align-items:flex-start}.mnemonic p{font-size:10px}.grammar-grid{grid-template-columns:1fr}.grammar-card{padding:16px}.scene-icon{display:grid}.grammar-card>p{min-height:0}.quiz-layout{grid-template-columns:1fr;gap:18px}.difference-strip{align-items:flex-start;flex-wrap:wrap}.difference-strip p{font-size:9px}.thinking-tab{padding:9px 5px;font-size:10px}.thinking-tab svg{display:none}.math-formula{font-size:14px}.challenge-card{flex-wrap:wrap}.challenge-result{text-align:left}.page-footer small{display:none}.modal-body{padding:17px}.modal>header{padding:19px}.hero-doodle{display:none}}
@media(max-width:390px){.content-wrap{padding-left:14px;padding-right:14px}.hero h1{font-size:25px}.topic-art{width:75px}.english-art b:nth-child(3){display:none}.idiom-grid{grid-template-columns:1fr 1fr}.filter-pills button:not(.active){display:none}.choice-button{font-size:14px}}
/* Persistent cache UI */
.cache-badge{display:inline-flex;align-items:center;margin-top:7px;padding:3px 9px;border-radius:999px;background:#eaf3ec;border:1px solid #cfe4d6;color:#40795a;font-size:9px;font-weight:600;letter-spacing:.5px}
.cache-badge[hidden],.model-badge[hidden],.soft-button[hidden]{display:none!important}
.model-badge{display:inline-flex;align-items:center;margin:7px 0 0 8px;padding:3px 9px;border-radius:999px;background:#f0edff;border:1px solid #ddd6f7;color:#6554b8;font-size:9px;font-weight:600;letter-spacing:.3px}
.soft-button#refresh-button{color:#6d5fc4;border-color:#ded9ee;background:#fbfaff}
.soft-button#refresh-button:hover{background:#efedff}
.followup-cache-hint{display:block;margin-top:4px;font-size:9px;color:#8b8698}

/* User-selectable generation model + self-test metrics */
.model-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px dashed #e8e3f0}
.model-row-label{font-size:10px;font-weight:600;letter-spacing:.5px;color:#8b8698}
.model-switch{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid #e5e0f2;border-radius:999px;background:#f6f4fc}
.model-switch button{border:0;background:transparent;color:#7a748c;font:inherit;font-size:10px;font-weight:600;padding:5px 11px;border-radius:999px;cursor:pointer;transition:background .18s,color .18s;white-space:nowrap}
.model-switch button small{font-size:9px;font-weight:500;opacity:.75;margin-left:3px}
.model-switch button:hover{color:#6554b8}
.model-switch button.active{background:#fff;color:#6554b8;box-shadow:0 1px 4px rgba(84,70,150,.12)}
.model-switch button[data-unconfigured="true"]{opacity:.5}
.strict-toggle{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#7a748c;cursor:pointer;white-space:nowrap}
.strict-toggle input{accent-color:#7a68d4;width:12px;height:12px;margin:0}
.model-metrics{flex:1 1 100%;font-size:9px;color:#918ba3;line-height:1.5}
@media(max-width:650px){.model-row{gap:7px}.model-switch button{padding:5px 8px;font-size:9px}.model-switch button small{display:none}.strict-toggle{font-size:9px}}
/* Generation pipeline：首页底部两阶段进度与各自响应时间 */
.timing-badge{display:inline-flex;align-items:center;margin:7px 0 0 8px;padding:3px 9px;border-radius:999px;background:#fff8e8;border:1px solid #f0e1bd;color:#95732a;font-size:9px;font-weight:600;letter-spacing:.3px;font-variant-numeric:tabular-nums}
.timing-badge[hidden]{display:none!important}
.pipeline-panel{margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 22px 18px;box-shadow:var(--shadow)}
.pipeline-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:15px}
.pipeline-head h3{font-family:var(--serif);font-size:15px;margin:0}
.pipeline-head h3 small{font-family:var(--sans);font-size:9px;font-weight:400;color:#a0a69f;margin-left:8px;letter-spacing:.3px}
.pipeline-total{text-align:right;white-space:nowrap}
.pipeline-total span{display:block;font-size:9px;color:#9da39c}
.pipeline-total b{display:block;font-size:18px;color:var(--ink);margin-top:3px;font-variant-numeric:tabular-nums}
.pipeline-stages{display:grid;gap:11px}
.pipeline-stage{background:#fafbf8;border:1px solid #eef0ea;border-radius:13px;padding:11px 14px;transition:background .2s,border-color .2s}
.pipeline-stage[data-status="running"]{background:#f7f5ff;border-color:#e3ddf8}
.pipeline-stage[data-status="done"]{background:#f6faf7;border-color:#e2ece5}
.pipeline-stage[data-status="error"]{background:#fff5f2;border-color:#f0d9d2}
.pipeline-stage-top{display:flex;align-items:center;gap:10px}
.pipeline-index{width:22px;height:22px;border-radius:7px;background:#ece9fa;color:#7568d8;display:grid;place-items:center;font-size:9px;font-weight:700;flex:none}
.pipeline-stage.lesson .pipeline-index{background:#e6f1e9;color:#4e7b63}
.pipeline-stage-name{flex:0 0 44%;min-width:0}
.pipeline-stage-name strong{display:block;font-size:12px}
.pipeline-stage-name small{display:block;font-size:9px;color:#9ba29b;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pipeline-status{font-size:9px;color:#9da39c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}
.pipeline-stage[data-status="running"] .pipeline-status{color:var(--purple)}
.pipeline-stage[data-status="done"] .pipeline-status{color:#4e7b63}
.pipeline-stage[data-status="error"] .pipeline-status{color:#c05b4c}
.pipeline-stage-bottom{display:flex;align-items:center;gap:10px;margin-top:9px}
.pipeline-time{font-size:15px;font-variant-numeric:tabular-nums;min-width:66px;text-align:left;color:#26332d}
.pipeline-stage[data-status="idle"] .pipeline-time,.pipeline-stage[data-status="waiting"] .pipeline-time{color:#c3c8c1}
.pipeline-track{flex:1;height:5px;border-radius:5px;background:#e9ece6;overflow:hidden}
.pipeline-track>span{display:block;height:100%;width:0;border-radius:5px;background:var(--purple);transition:width .45s ease}
.pipeline-stage.lesson .pipeline-track>span{background:#5b9273}
.pipeline-stage[data-status="running"] .pipeline-track>span{background-image:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);background-size:60px 100%;animation:pipelineFlow 1.1s linear infinite}
@keyframes pipelineFlow{from{background-position:-60px 0}to{background-position:120px 0}}
.pipeline-note{margin:12px 0 0;font-size:9px;color:#a2a8a1;line-height:1.7}
.loading-steps span small{font-size:8px;color:#a9afa8;font-variant-numeric:tabular-nums;margin-left:2px}
.loading-steps span.active small{color:var(--purple)}
@media(max-width:650px){.pipeline-panel{padding:16px 13px 14px;margin-top:22px}.pipeline-head h3 small{display:none}.pipeline-total b{font-size:15px}.pipeline-stage{padding:10px 11px}.pipeline-stage-top{gap:7px}.pipeline-stage-name{flex:1 1 auto}.pipeline-stage-name strong{font-size:11px}.pipeline-note{padding-right:105px}.pipeline-time{min-width:56px;font-size:13px}.pipeline-stage-bottom{gap:8px}.pipeline-status{max-width:78px;font-size:8px}}

/* 你来判一判：题干与选项必须完整可见（情景题、长句、多字段别名都适用） */
.quiz-layout{
  grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);
  align-items:start;
  gap:22px;
}
.quiz-question{
  min-width:0;
  overflow:visible;
}
.quiz-question h4{
  font-size:17px;
  line-height:1.65;
  margin:8px 0 8px;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
  overflow:visible;
  max-width:100%;
}
.quiz-question p{
  font-size:13px;
  line-height:1.6;
  color:#6f6a7a;
  margin:0;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
}
.choice-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:stretch;
  min-width:0;
}
.choice-button{
  flex:1 1 148px;
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.45;
  text-align:center;
}
@media(max-width:650px){
  .quiz-layout{grid-template-columns:1fr;gap:16px}
}

/* 搜索栏识别位：Jev 判断中的脉冲，判断完成后弹出反馈 */
.detect-chip.is-pending{background:#f3f1ea;color:#7a7568}
.detect-chip.is-pending i{
  background:#c4b89a;
  animation:chip-pulse 1s ease-in-out infinite;
}
.detect-chip.is-generating i,
.detect-chip.is-confirmed i{box-shadow:0 0 0 3px rgba(139,111,224,.15)}
.detect-chip.is-pop{animation:chip-pop .45s ease}
@keyframes chip-pulse{
  0%,100%{transform:scale(1);opacity:.55}
  50%{transform:scale(1.7);opacity:1}
}
@keyframes chip-pop{
  0%{transform:scale(.92);opacity:.65}
  60%{transform:scale(1.06)}
  100%{transform:scale(1);opacity:1}
}

/* 判断完成后加载区随学科变色 */
.ai-loading.is-routed{transition:background .4s ease,border-color .4s ease}
.ai-loading.is-chinese{background:#fffaf0}
.ai-loading.is-english{background:#f7f5ff}
.ai-loading.is-math{background:#f3f8f4}

/* 第一部分预览卡片：点击后渐变展开完整讲解 */
.lesson-preview-cta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  width:100%;
  margin-top:18px;
  padding:16px 18px;
  border:1px dashed #d8d2ea;
  border-radius:14px;
  background:linear-gradient(180deg,#fbfaff 0%,#f3f0fb 100%);
  color:inherit;
  cursor:pointer;
  text-align:left;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease, opacity .25s ease, max-height .3s ease, margin .3s ease, padding .3s ease;
}
.lesson-preview-cta:hover{
  border-color:#8b6fe0;
  border-style:solid;
  box-shadow:0 8px 24px rgba(91,63,168,.1);
  transform:translateY(-1px);
}
.lesson-preview-kicker{
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#9a92b5;
}
.lesson-preview-cta strong{
  font-size:16px;
  font-weight:650;
  color:#5b3fa8;
}
.lesson-preview-cta small{
  font-size:12px;
  color:#7a7192;
}
.lesson-reveal-more{
  display:grid;
  grid-template-rows:0fr;
  opacity:0;
  transform:translateY(16px);
  pointer-events:none;
  transition:grid-template-rows .55s ease, opacity .45s ease .05s, transform .5s ease;
}
.lesson-reveal-more-inner{overflow:hidden;min-height:0}
.lesson-reveal-frame[data-view="full"] .lesson-reveal-more{
  grid-template-rows:1fr;
  opacity:1;
  transform:none;
  pointer-events:auto;
}
.lesson-reveal-frame[data-view="full"] .lesson-preview-cta{
  opacity:0;
  max-height:0;
  margin-top:0;
  margin-bottom:0;
  padding-top:0;
  padding-bottom:0;
  border-width:0;
  overflow:hidden;
  pointer-events:none;
}
.lesson-reveal-frame[data-view="preview"] .content-card:first-child{
  box-shadow:0 10px 28px rgba(43,39,64,.06);
}

.lesson-preview-cta.is-waiting{
  cursor:default;
  opacity:.95;
  border-style:dashed;
}
.lesson-preview-cta.is-waiting:hover{
  transform:none;
  box-shadow:none;
  border-style:dashed;
}
.lesson-preview-cta.is-ready{
  border-style:solid;
  border-color:#8b6fe0;
  animation:chip-pop .45s ease, preview-ready-glow 1.6s ease 2;
}
@keyframes preview-ready-glow{
  0%,100%{box-shadow:0 0 0 0 rgba(139,111,224,0)}
  50%{box-shadow:0 8px 24px rgba(91,63,168,.16)}
}
.lesson-reveal-frame.is-fading{
  opacity:0;
  transform:translateY(8px);
  transition:opacity .18s ease, transform .18s ease;
}
.lesson-detail-enter{
  opacity:0;
  transform:translateY(14px);
}
.lesson-detail-enter.is-in{
  opacity:1;
  transform:none;
  transition:opacity .45s ease, transform .5s ease;
}

/* knowledge-card speech guide */
.card-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.grammar-head .head-actions{display:flex;align-items:center;gap:8px}
.content-card.is-speaking,
.mnemonic.is-speaking,
.challenge-card.is-speaking,
.insight-card.is-speaking,
.grammar-card.is-speaking,
.idiom-card.is-speaking,
.step.is-speaking{
  box-shadow:0 0 0 2px rgba(117,104,216,.32);
  transition:box-shadow .25s ease;
}
.audio-button.is-speaking,
.speech-play.is-speaking{
  background:var(--purple-soft);
  color:var(--purple-dark);
  animation:speech-pulse 1.15s ease-in-out infinite;
}
@keyframes speech-pulse{
  50%{transform:scale(1.08)}
}
.mnemonic .audio-button,
.challenge-card .audio-button{
  background:rgba(255,255,255,.14);
  color:#fff;
  border-color:rgba(255,255,255,.22);
  margin-left:auto;
  flex:none;
}
.challenge-card .audio-button.is-speaking,
.mnemonic .audio-button.is-speaking{
  background:#f2cb58;
  color:#4e411b;
}
.step[data-speech-item]{cursor:pointer}
.grammar-card[data-speech-item]{cursor:pointer}

/* 互动讲解区域的朗读按钮：放在横幅右上角，不挡住标题 */
.topic-banner .audio-button{
  position:absolute;
  top:14px;
  right:14px;
  z-index:3;
}
.topic-banner .audio-button.is-speaking{
  box-shadow:0 0 0 3px rgba(124,92,252,.28);
}
