:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#24342e;background:#f7f8f4;--bg:#f7f8f4;--surface:#fff;--ink:#24342e;--muted:#85958b;--line:#e7ede8;--green:#20856a;--light:#eaf5ed}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:3px solid #8ccfb6;outline-offset:3px}.shell{display:flex;min-height:100vh}.sidebar{width:260px;flex:0 0 260px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:30px 17px 20px;position:sticky;top:0;height:100vh;z-index:20}.brand{display:flex;gap:12px;align-items:center;padding:0 10px;margin:4px 0 49px}.brand-icon{width:44px;height:44px;border-radius:14px;background:#21866d;color:#fff;font:26px "Microsoft YaHei",serif;display:grid;place-items:center;box-shadow:0 8px 18px #29977730}.brand strong{display:block;font-size:22px;letter-spacing:-1px}.brand small{font-size:9px;letter-spacing:1.8px;color:#9baa9e;font-weight:800;display:block;margin-top:4px}.mint{color:#56bfa0}.nav-label{font-size:10px;font-weight:850;letter-spacing:1.6px;color:#acbbb0;margin:0 12px 17px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{min-height:48px;padding:0 13px;border-radius:12px;display:flex;gap:13px;align-items:center;color:#66766c;font-size:13.5px;font-weight:650;transition:.18s}.sidebar nav a:hover,.sidebar nav a.active{background:#eaf5ed;color:#157c60}.sidebar nav a b{font:21px "Segoe UI Symbol","Microsoft YaHei",sans-serif;width:25px;text-align:center}.sidebar nav a i{font-style:normal;margin-left:auto;background:#e0efe5;border-radius:8px;padding:4px 7px;font-size:10px}.side-bottom{margin-top:auto}.streak{display:flex;align-items:center;gap:13px;padding:15px;background:#fdf5e6;border-radius:14px}.streak>span{font-size:28px}.streak strong{display:block;font-size:14px}.streak small{display:block;margin-top:5px;font-size:11px;color:#ac9572}.side-bottom p{font-size:10px;text-align:center;margin:20px 0 0;color:#9ca9a0}.main-col{display:flex;flex-direction:column;flex:1;min-width:0}.topbar{height:88px;padding:0 48px;display:flex;align-items:center;justify-content:space-between;background:#ffffffcb;border-bottom:1px solid var(--line)}.top-left,.top-right{display:flex;align-items:center;gap:18px}.top-left>span{font-size:10px;font-weight:850;color:#a1afa6;letter-spacing:1.5px}.top-left strong{color:#29846b}.top-right>span:first-child{font-size:12px;color:#85958b}.icon-button{border:1px solid var(--line);border-radius:12px;width:38px;height:38px;background:var(--surface);color:var(--ink);font-size:20px}.icon-button:hover{background:var(--light)}.hamburger{display:none}.avatar{width:38px;height:38px;display:grid;place-items:center;background:#e6f1e9;border-radius:11px;color:#27836a;font-weight:850}main{padding:34px 48px 65px;max-width:1510px;width:100%;margin:0 auto;flex:1}footer{text-align:center;font-size:11px;color:#9ca99f;padding:0 10px 29px}footer a{color:#268d6b}.eyebrow{color:#48ad8b;font-weight:850;letter-spacing:2px;font-size:11px}.hero{background:linear-gradient(115deg,#14664d,#298b70 68%,#58b18c);border-radius:25px;padding:39px 46px;color:white;display:grid;grid-template-columns:1.25fr .75fr;overflow:hidden;position:relative;min-height:330px;box-shadow:0 18px 38px #217e6425}.hero:before{content:"语";font:310px "Microsoft YaHei",serif;position:absolute;right:180px;top:-100px;color:#ffffff09}.hero h1{font-size:clamp(30px,3.6vw,51px);letter-spacing:-1.8px;line-height:1.23;margin:16px 0}.hero h1 em{color:#c9f5b9;font-style:normal}.hero p{font-size:14px;line-height:1.85;color:#dcf1e6;max-width:425px}.primary{display:inline-flex;align-items:center;gap:11px;border:0;background:#f8fcf6;color:#21785f;padding:13px 21px;border-radius:12px;font-weight:850;font-size:13px;margin-top:14px}.primary:hover{transform:translateY(-2px)}.hero-art{display:grid;place-items:center;position:relative}.hero-orbit{width:247px;height:247px;display:grid;place-items:center;border-radius:100%;border:1px solid #ffffff55;background:radial-gradient(circle,#ffffff27,transparent 68%);position:relative}.hero-orbit:before{content:"";position:absolute;inset:18px;border-radius:100%;border:1px dashed #ffffff5c}.hero-char{font:140px "KaiTi","Microsoft YaHei",serif;text-shadow:0 10px 20px #08482e70}.hero-sticker{position:absolute;padding:10px 14px;background:#fffcf3;color:#248169;border-radius:12px;font-size:12px;font-weight:800;box-shadow:0 12px 28px #10513845}.hero-sticker.one{top:35px;left:-8px;transform:rotate(-7deg)}.hero-sticker.two{bottom:24px;right:-8px;transform:rotate(7deg)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-top:24px}.stat{display:flex;align-items:center;gap:12px;background:var(--surface);padding:20px;border:1px solid var(--line);border-radius:16px;min-width:0}.stat .emoji{min-width:43px;height:43px;display:grid;place-items:center;background:#e9f5ed;border-radius:13px;font-size:21px}.stat:nth-child(2) .emoji{background:#f0eefa}.stat:nth-child(3) .emoji{background:#fdf2e3}.stat:nth-child(4) .emoji{background:#e9f2fb}.stat strong{display:block;font-size:22px;letter-spacing:-.7px}.stat small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.section-head{display:flex;align-items:end;justify-content:space-between;margin:34px 0 18px;gap:15px}.section-head h2{font-size:21px;letter-spacing:-.6px;margin:0}.section-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.link{font-size:12px;font-weight:800;color:#258d6d}.courses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.course{background:var(--surface);border:1px solid var(--line);padding:21px;border-radius:18px;transition:.2s}.course:hover{transform:translateY(-3px);box-shadow:0 12px 30px #2d6e4815}.course-top{display:flex;justify-content:space-between;align-items:start}.han-icon{width:65px;height:65px;display:grid;place-items:center;border-radius:16px;background:#e5f4e9;color:#31866b;font:35px "Microsoft YaHei",serif}.course:nth-child(6n+2) .han-icon{background:#fff1e3;color:#d59a4f}.course:nth-child(6n+3) .han-icon{background:#efecfb;color:#8071bb}.course:nth-child(6n+4) .han-icon{background:#e6f1fb;color:#538bbc}.course:nth-child(6n+5) .han-icon{background:#fbebf1;color:#bd7693}.course:nth-child(6n+6) .han-icon{background:#fbf2d9;color:#ae9046}.pill{font-size:10px;font-weight:850;color:#718276;background:#f1f6f2;padding:6px 10px;border-radius:20px}.course h3{font-size:17px;margin:20px 0 6px}.course p{color:var(--muted);font-size:12px;min-height:38px;line-height:1.75}.course-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:13px;margin-top:20px;color:#92a096;font-size:11px}.round{border:0;border-radius:9px;background:#e8f5ed;color:#238667;font-weight:900;font-size:20px;width:31px;height:31px}.features{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px}.panel h3{margin:0 0 12px}.panel p{color:var(--muted);font-size:13px;line-height:1.8}.goal{background:#fff8e9;border-color:#f4e8ca}.progress{height:9px;background:#eaf0e9;border-radius:9px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#298d70,#93d18c);border-radius:9px}.progress-caption{display:flex;justify-content:space-between;margin-top:10px;color:var(--muted);font-size:12px}.page-title{font-size:30px;letter-spacing:-1.2px;margin:0 0 8px}.subtitle{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 23px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0}.input,.select{border:1px solid #d9e5dc;background:var(--surface);padding:12px 15px;color:var(--ink);border-radius:11px;min-height:45px;font-size:13px}.input{min-width:210px;flex:1;max-width:420px}.input:focus,.select:focus{outline:2px solid #7ccaa7}.btn{border:0;background:#24876c;color:#fff;border-radius:11px;padding:12px 17px;font-size:13px;font-weight:800}.btn.ghost{background:#e9f5ed;color:#217c60}.btn.outline{border:1px solid #dce8dd;color:var(--ink);background:transparent}.btn:hover{filter:brightness(1.05)}.words{display:grid;grid-template-columns:repeat(auto-fill,minmax(206px,1fr));gap:14px}.word{padding:19px;border:1px solid var(--line);background:var(--surface);border-radius:16px}.word-char{font:38px "Microsoft YaHei",sans-serif;margin:0 0 5px}.pinyin{font-size:14px;color:#279070;font-weight:800;margin:7px 0}.meaning{font-size:13px;color:#73877a}.word-actions{display:flex;justify-content:space-between;gap:9px;margin-top:20px}.mini{font-size:12px;color:#56836b;border:1px solid var(--line);background:transparent;border-radius:9px;padding:8px 12px;font-weight:750}.mini.saved{background:#e0f5e9;color:#167557}.empty{text-align:center;background:var(--surface);padding:42px;border:1px dashed #bdd9c7;border-radius:15px;color:#7b9484}.practice{max-width:770px;margin:17px auto}.center{text-align:center}.flashcard{min-height:335px;background:var(--surface);border:1px solid var(--line);border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:24px;text-align:center;box-shadow:0 16px 45px #244e3210}.flashcard:hover{border-color:#9bceb1}.flashcard .big{font:clamp(65px,9vw,104px) "KaiTi","Microsoft YaHei",serif}.flashcard .hint{color:#98a89d;font-size:12px;margin-top:20px}.flashcard .reveal{font-size:25px;font-weight:850;color:#22876b;margin-top:17px}.flashcard .roman{font-size:18px;color:#718e7b}.actions{display:flex;justify-content:center;flex-wrap:wrap;gap:11px;margin:20px 0}.quiz-box{background:var(--surface);border:1px solid var(--line);padding:30px;border-radius:23px}.quiz-char{text-align:center;font:62px "Microsoft YaHei",serif;margin:15px 0}.quiz-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:19px}.choice{border:1px solid #e1eae3;border-radius:13px;background:#f7faf7;color:var(--ink);padding:14px;min-height:62px;font-size:15px}.choice:hover:not(:disabled){border-color:#2c9a75}.choice.correct{background:#d7f2e1!important;border:2px solid #43a87c}.choice.wrong{background:#ffe8e0!important;border:2px solid #d97868}.feedback{text-align:center;min-height:23px;margin:18px;font-size:14px;font-weight:800}.writing{display:grid;grid-template-columns:1fr 1fr;gap:20px}.writing>section{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px;text-align:center}.sample{font:170px "KaiTi","Microsoft YaHei",serif;line-height:1.3;color:#26836c}.writing canvas{display:block;width:100%;max-width:440px;height:330px;touch-action:none;border:2px solid #cce4d3;border-radius:12px;margin:0 auto 17px;background:#fff;background-image:linear-gradient(90deg,transparent 49.8%,#d7e6da 50%,transparent 50.2%),linear-gradient(transparent 49.8%,#d7e6da 50%,transparent 50.2%)}.sentences{display:grid;gap:13px}.sentence{display:flex;gap:15px;align-items:center;justify-content:space-between;background:var(--surface);padding:19px;border-radius:14px;border:1px solid var(--line)}.sentence .zh{font:23px "Microsoft YaHei",sans-serif}.sentence p{font-size:13px;color:#238d6a;margin:5px 0}.sentence small{color:var(--muted)}.tip{background:#eaf5ee;padding:17px 20px;border-radius:14px;color:#428169;font-size:13px;line-height:1.7}.toast{position:fixed;bottom:26px;right:26px;z-index:60;padding:13px 19px;color:#fff;background:#205843;border-radius:11px;font-size:13px;font-weight:750;box-shadow:0 10px 30px #0003;opacity:0;transform:translateY(14px);pointer-events:none;transition:.22s}.toast.show{opacity:1;transform:none}.dark{--bg:#111d17;--surface:#1d2a22;--ink:#e0eee4;--muted:#adc0b1;--line:#354438;--light:#293f32;background:var(--bg);color:var(--ink)}.dark .sidebar,.dark .topbar{background:#19251d}.dark .sidebar nav a{color:#afbcaf}.dark .sidebar nav a.active{background:#274434;color:#a8e3bb}.dark .goal{background:#362e20}.dark .streak{background:#382d1f}.dark .pill{background:#304536;color:#b0c2b5}.dark .course p,.dark .meaning{color:#afbdaf}.dark .input,.dark .select,.dark .choice{background:#27382d;color:var(--ink);border-color:#405548}.dark .mini{color:#b0d7bf}.dark .tip{background:#284435;color:#a2dcbc}@media(max-width:1180px){.sidebar{width:235px;flex-basis:235px}.topbar{padding:0 27px}main{padding:29px}.stats{gap:10px}.stat{padding:15px}}@media(max-width:950px){.sidebar{position:fixed;left:-270px;transition:left .2s;box-shadow:0 15px 45px #0002}.sidebar.open{left:0}#overlay:not([hidden]){position:fixed;inset:0;background:#041c1470;z-index:10}.hamburger{display:block}.hero{grid-template-columns:1fr}.hero-art{display:none}.courses{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.features{grid-template-columns:1fr}}@media(max-width:620px){.topbar{height:69px;padding:0 16px}.top-right{gap:10px}.top-right>span:first-child{display:none}.top-left>span{font-size:10px}main{padding:19px 16px 38px}.hero{padding:28px 23px;min-height:auto}.hero h1{font-size:33px}.hero p{font-size:12px}.stat .emoji{min-width:35px;width:35px;height:35px}.stat{padding:13px;gap:8px}.stat strong{font-size:19px}.stat small{font-size:10px}.courses,.writing{grid-template-columns:1fr}.section-head{margin-top:28px}.page-title{font-size:26px}.quiz-options{grid-template-columns:1fr}.quiz-box{padding:20px}.sample{font-size:128px}.sentence{padding:15px}.sentence .zh{font-size:19px}}
/* Hán Ngữ Lab v2: reference library and guided stroke-order UI */
.sidebar nav{overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin}
.hsk-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:18px}
.hsk-toolbar label{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px;font-weight:800}
.hsk-toolbar .input{max-width:none;min-width:180px}
.hsk-metrics{display:flex;flex-wrap:wrap;gap:13px;align-items:center;margin-bottom:19px;color:var(--muted);font-weight:700;font-size:12px}
.hsk-metrics>span{background:var(--light);border-radius:10px;padding:10px 12px}
.hsk-metrics>.btn{margin-left:auto}
.word .meaning b{color:#358969;font-size:10px;letter-spacing:1px;margin-right:6px}
.grammar-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.grammar-card summary{display:flex;align-items:center;gap:14px;min-height:66px;list-style:none;cursor:pointer;padding:14px 21px;font-size:14px}
.grammar-card summary::-webkit-details-marker{display:none}
.grammar-card summary:hover{background:var(--light)}
.grammar-card[open] summary{border-bottom:1px solid var(--line)}
.grammar-card>p{padding:0 21px;color:var(--muted);font-size:13px;line-height:1.8}
.grammar-number{color:#38916e;font-size:12px;background:var(--light);padding:9px;border-radius:8px}
.grammar-example{margin:10px 21px 22px;padding:17px;border-radius:12px;background:var(--light)}
.grammar-example .zh{font:23px "Microsoft YaHei",sans-serif;margin-bottom:8px}
.grammar-example .meaning{margin-bottom:14px}
.stroke-target{min-height:220px;display:flex;justify-content:center;align-items:center}
.stroke-target svg{max-width:100%;height:auto}
.pron-result{min-height:64px;padding:18px;border:1px dashed #bad9c6;border-radius:12px;color:var(--muted);font-size:13px;line-height:1.7}
.hsk-toolbar .btn,.hsk-toolbar .select,.hsk-toolbar .input{flex-shrink:0}
@media(max-width:640px){.hsk-toolbar label,.hsk-toolbar .input,.hsk-toolbar .btn{width:100%;max-width:none}.hsk-toolbar label .select{flex:1}.hsk-metrics>.btn{margin-left:0}.grammar-card summary{padding:12px;font-size:12px;gap:9px}.grammar-card>p{padding:0 12px}.grammar-example{margin:8px 12px 15px}}

/* Hán Ngữ Lab 3.0 – Ten-stage curriculum */
.academy-home-action{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(110deg,#ecf8ef,#fffaf0);border:1px solid #dceade;border-radius:18px;padding:19px 22px;margin-top:23px}
.academy-home-action strong{display:block;font-size:17px;letter-spacing:-.4px;margin:6px 0 4px}
.academy-home-action small{display:block;font-size:12px;line-height:1.6;color:#6b8a74}
.academy-home-action .btn{white-space:nowrap}
.academy-hero{background:linear-gradient(116deg,#143c33,#176f53 63%,#369877);color:#fff;border-radius:23px;min-height:265px;padding:34px 42px;display:flex;align-items:center;justify-content:space-between;gap:30px;overflow:hidden;position:relative}
.academy-hero h1{font-size:clamp(31px,4vw,49px);line-height:1.17;letter-spacing:-1.5px;margin:14px 0}
.academy-hero h1 em{color:#d1eebd;font-style:normal}
.academy-hero p{max-width:660px;color:#d6e9dc;font-size:14px;line-height:1.8}
.academy-hero .eyebrow{color:#a6e5b8}
.academy-hero-metrics{display:flex;gap:18px;font-weight:750;font-size:12px;flex-wrap:wrap;margin-top:18px;color:#ddf5df}
.academy-hero-emblem{width:175px;height:175px;border-radius:100%;border:1px solid #ffffff5e;display:grid;place-items:center;font:116px "KaiTi","Microsoft YaHei",serif;color:white;position:relative;flex-shrink:0;box-shadow:0 0 0 20px #ffffff09,0 0 0 42px #ffffff07}
.academy-hero-emblem span{position:absolute;bottom:7px;right:-15px;background:#faf9ed;color:#237b5a;font:900 17px "Segoe UI",sans-serif;border-radius:10px;padding:10px 13px}
.academy-overview{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px;margin-top:22px}
.academy-progress-card{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:20px;min-width:0}
.academy-progress-card h2{margin:8px 0 13px;font-size:33px;letter-spacing:-1px;color:var(--green)}
.academy-progress-card h2 small{font-weight:600;font-size:14px;color:var(--muted)}
.academy-progress-card p{font-size:12px;line-height:1.7;color:var(--muted);margin-bottom:0}
.academy-progress-card.official{background:linear-gradient(140deg,var(--surface),#eaf6ee)}
.academy-progress-card.extra{background:linear-gradient(140deg,var(--surface),#fbf3e5)}
.academy-track,.academy-learning-bar,.academy-stage-track{display:block;overflow:hidden;background:#dfece2;border-radius:20px;height:9px}
.academy-track>span,.academy-learning-bar>span,.academy-stage-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#278f6d,#a6d47a);transition:width .2s}
.academy-stage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}
.academy-stage-card{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:17px 16px;text-align:left;color:var(--ink);min-height:197px;display:flex;flex-direction:column;gap:10px;transition:.2s}
.academy-stage-card:hover{transform:translateY(-3px);border-color:#80c9a7;box-shadow:0 12px 27px #1b785b19}
.academy-stage-card.selected{border:2px solid #269472;box-shadow:0 0 0 3px #a4e0b22b}
.academy-stage-card:last-child{background:linear-gradient(145deg,#163e35,#298666);color:#fff}
.academy-stage-card:last-child .academy-stage-sub,.academy-stage-card:last-child .academy-stage-level{color:#c7e6d2}
.academy-stage-top{display:flex;justify-content:space-between;align-items:center;gap:5px}
.academy-stage-mark{font:32px "KaiTi","Microsoft YaHei",serif;color:#218169;background:var(--light);width:48px;height:48px;display:grid;place-items:center;border-radius:13px}
.academy-stage-card:last-child .academy-stage-mark{background:#ffffff26;color:#fff}
.academy-stage-level{font-size:9px;font-weight:900;letter-spacing:.4px;color:#95a99b}
.academy-stage-card>strong{font-size:13.5px}
.academy-stage-sub{font-size:10.5px;line-height:1.6;color:var(--muted);flex:1}
.academy-stage-status{display:flex;align-items:center;gap:6px;color:#69a687;font-size:11px}
.academy-stage-status .academy-stage-track{flex:1;height:6px}
.academy-learning{border:1px solid var(--line);border-radius:20px;background:var(--surface);padding:27px;margin-top:27px;scroll-margin-top:25px}
.academy-learning-head h2{font-size:24px;letter-spacing:-.5px;margin:13px 0 8px}
.academy-learning-head>p{font-size:13px;color:var(--muted)}
.academy-learning-bar{height:7px;margin-top:18px}
.academy-tag{display:inline-flex;align-items:center;background:#e6f5ea;color:#287e5e;font-size:10px;letter-spacing:.4px;font-weight:800;padding:7px 12px;border-radius:100px}
.academy-tag.special{background:#fff1d7;color:#9a6b17}
.academy-learning-actions{display:flex;gap:10px;margin:19px 0;flex-wrap:wrap}
.academy-columns{display:grid;grid-template-columns:280px minmax(0,1fr);gap:19px}
.academy-lesson-list{display:grid;align-content:start;gap:8px}
.academy-lesson-card{display:flex;align-items:center;gap:10px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:12px;min-height:70px;color:var(--ink)}
.academy-lesson-card.current,.academy-lesson-card:hover{background:var(--light);border-color:#78c29b}
.academy-lesson-number{background:#e6f4ed;color:#278668;border-radius:9px;display:grid;place-items:center;width:32px;height:32px;font-size:12px;font-weight:900;flex-shrink:0}
.academy-lesson-text{display:grid;gap:4px;min-width:0}
.academy-lesson-text strong{font-size:12.5px}
.academy-lesson-text small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.academy-lesson-arrow{margin-left:auto;color:var(--green)}
.academy-learning-body{border:1px solid var(--line);background:var(--bg);border-radius:15px;padding:22px;min-height:320px}
.academy-empty{text-align:center;padding:34px 14px}
.academy-empty span{font-size:53px}
.academy-empty h3{margin-bottom:7px}
.academy-empty p{font-size:13px;line-height:1.8;color:var(--muted);max-width:450px;margin:0 auto 17px}
.academy-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.academy-lesson-detail h3{font-size:20px;margin:17px 0}
.academy-chinese{font:clamp(25px,2.6vw,36px) "Microsoft YaHei",sans-serif;line-height:1.7;word-break:break-word}
.academy-pinyin{font-size:15px;font-weight:750;color:#299276;margin:6px 0}
.academy-translation{color:var(--ink);font-size:13px;background:var(--surface);border-radius:10px;border:1px solid var(--line);padding:13px;margin:14px 0;line-height:1.6}
.academy-translation.muted{color:var(--muted)}
.academy-tools{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}
.academy-tools .btn{font-size:11px;padding:9px 13px}
.academy-check{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}
.academy-check p{font-size:12px;color:var(--muted);line-height:1.6}
.academy-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0}
.academy-choice{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);text-align:left;font-size:12px;line-height:1.5}
.academy-choice:hover:not(:disabled){border-color:#269676;background:var(--light)}
.academy-choice.correct{border-color:#3ba87b;background:#dff3e4;color:#14452e}
.academy-choice.incorrect{border-color:#cc795e;background:#ffece6;color:#7a2823}
.academy-feedback{font-weight:750}
.academy-disclaimer{margin-top:20px;border-left:3px solid #c7b27d;padding:15px;background:var(--surface);font-size:12px;line-height:1.8;color:var(--muted);border-radius:8px}
.hsk-source-tag{padding:11px 15px;border:1px solid #deeadf;background:var(--light);color:var(--ink);border-radius:11px;margin-bottom:16px;font-size:12px;line-height:1.7}
.dark .academy-home-action,.dark .academy-progress-card.official,.dark .academy-progress-card.extra{background:var(--surface)}
.dark .academy-home-action small,.dark .academy-stage-card .academy-stage-sub{color:var(--muted)}
.dark .academy-stage-card:last-child{background:linear-gradient(130deg,#1a483b,#296247)}
.dark .academy-stage-card:last-child .academy-stage-sub{color:#c7e6d2}
.dark .academy-choice.correct{color:#184631}
.dark .academy-choice.incorrect{color:#7d3024}
@media(max-width:1260px){.academy-stage-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.academy-columns{grid-template-columns:245px minmax(0,1fr)}}
@media(max-width:1000px){.academy-stage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.academy-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-progress-card:first-child{grid-column:span 2}.academy-hero-emblem{width:130px;height:130px;font-size:85px}}
@media(max-width:700px){.academy-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.academy-stage-card{min-height:180px;padding:12px}.academy-columns{grid-template-columns:1fr}.academy-learning{padding:15px}.academy-learning-body{padding:15px}.academy-hero{padding:24px}.academy-hero-emblem{display:none}.academy-overview{gap:9px}.academy-progress-card{padding:15px}.academy-choices{grid-template-columns:1fr}.academy-home-action{flex-direction:column;align-items:stretch}.academy-home-action .btn{text-align:center}}

/* Hán Ngữ Lab 4.0 – Daily Chinese practice */
.daily-home{display:flex;align-items:center;gap:16px;background:var(--surface);padding:20px;border:1px solid var(--line);border-radius:18px;margin-top:23px}
.daily-home>span{display:grid;place-items:center;background:#e6f4eb;width:50px;height:50px;border-radius:14px;font-size:25px;flex-shrink:0}
.daily-home>div{flex:1;min-width:0}
.daily-home strong{display:block;font-size:16px;margin-bottom:5px}
.daily-home small{display:block;font-size:12px;color:var(--muted);line-height:1.6}
.daily-home .btn{white-space:nowrap}
.daily-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:20px 0}
.daily-stats>div{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:20px}
.daily-stats span{font-size:21px;display:block;margin-bottom:12px}
.daily-stats strong{font-size:25px;display:block;line-height:1.2}
.daily-stats small{font-size:11px;color:var(--muted);margin-top:6px;display:block}
.daily-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,.9fr);gap:17px;align-items:start}
.daily-main{min-height:470px}
.daily-question{text-align:center;padding-top:28px}
.daily-word{font:clamp(54px,7vw,82px) "KaiTi","Microsoft YaHei",serif;color:var(--green);line-height:1.5;margin:14px 0}
.daily-question-hint{font-size:13px;line-height:1.8;color:var(--muted);max-width:500px;margin:auto}
.daily-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:22px}
.daily-option{background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:17px 12px;text-align:center;border-radius:12px;line-height:1.6;font-size:13px}
.daily-option:hover{background:var(--light);border-color:#269476}
.daily-pinyin-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;max-width:520px;margin:20px auto}
.daily-pinyin-form label{grid-column:1/-1;color:var(--muted);font-size:12px;text-align:left}
.daily-pinyin-form .input{width:100%;max-width:none}
.daily-feedback{background:#e8f7ed;color:#1c6047;border:1px solid #b5ddc0;border-radius:12px;padding:13px;display:grid;gap:6px;margin-top:20px;font-size:13px}
.daily-feedback span{font-size:12px;line-height:1.6}
.daily-complete{text-align:center;padding:35px 5px}
.daily-complete p{font-size:13px;color:var(--muted);line-height:1.7}
.daily-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.daily-week-cell{display:grid;gap:6px;text-align:center}
.daily-week-cell b{font-size:10px;color:var(--muted)}
.daily-week-cell span{height:41px;border-radius:8px;display:grid;place-items:center;background:var(--light);font-weight:850;color:#82a996;font-size:13px}
.daily-week-cell.has-activity span{color:white;background:#278b6e}
.daily-week-cell small{font-size:10px;color:var(--muted)}
.daily-mistakes{display:grid;gap:10px}
.daily-mistake-item{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);padding-bottom:9px}
.daily-mistake-item>span:first-child{font:24px "Microsoft YaHei",sans-serif;min-width:39px}
.daily-mistake-item>div{display:grid;gap:4px;flex:1;min-width:0}
.daily-mistake-item b{color:var(--green);font-size:12px}
.daily-mistake-item small{color:var(--muted);font-size:11px}
.daily-mistake-item .academy-tag{font-size:9px;white-space:nowrap}
.daily-mistake-item .mini{font-size:10px;padding:7px}
.dark .daily-home>span{background:var(--light)}
.dark .daily-feedback{background:#1f4732;color:#c5e6ce;border-color:#3b6b50}
@media(max-width:1000px){.daily-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-grid{grid-template-columns:1fr}}
@media(max-width:600px){.daily-stats{gap:8px}.daily-stats>div{padding:13px}.daily-stats strong{font-size:22px}.daily-options,.daily-pinyin-form{grid-template-columns:1fr}.daily-home{align-items:flex-start;flex-wrap:wrap}.daily-home .btn{margin-left:65px}.daily-mistake-item .academy-tag{display:none}}
