:root{--bg:#f5f7fb;--card:#fff;--ink:#1d2433;--muted:#768099;--line:#e7eaf1;--primary:#625df5;--primary2:#7c78ff;--good:#24b47e;--bad:#f05d68;--dark:#0f1420;--dark2:#151c2b;--typing:#f4f7ff;--shadow:0 14px 40px rgba(31,40,75,.08)}
.resource-editor-link{position:fixed;right:18px;bottom:18px;z-index:30;padding:10px 14px;border-radius:12px;background:#171e2d;color:#fff;text-decoration:none;font-size:14px;box-shadow:0 10px 25px rgba(0,0,0,.24)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--bg)}button,input{font:inherit}.app-shell{max-width:1320px;margin:auto;padding:28px}.topbar,.page-head,.toolbar,.exercise-top,.audio-row,.nav-row,.typing-tools{display:flex;align-items:center;gap:12px}.topbar,.toolbar,.exercise-top{justify-content:space-between}.brand{font-size:24px;font-weight:800}.sub,.muted{color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.hero{display:grid;grid-template-columns:130px 1fr auto;gap:26px;align-items:center;padding:26px;margin:24px 0}.book{height:150px;border-radius:14px;background:linear-gradient(145deg,#d9e93b,#ffce30);display:grid;place-items:center;text-align:center;font-weight:900;line-height:1.2;box-shadow:inset 0 0 0 7px rgba(255,255,255,.28)}h1,h2,h3,p{margin-top:0}.progress{height:10px;background:#eceef4;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#8e8bff)}.hero-actions{display:flex;flex-direction:column;gap:10px}.btn{border:0;border-radius:12px;padding:11px 17px;cursor:pointer;transition:.18s}.btn:hover{transform:translateY(-1px)}.primary{background:var(--primary);color:white}.ghost{background:#f1f3f8;color:#333}.danger{color:var(--bad)}.section-title{font-size:22px;font-weight:800;margin:28px 0 14px}.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.mode-card{padding:22px;cursor:pointer;min-height:180px}.mode-card:hover{border-color:#c9c7ff;transform:translateY(-2px)}.mode-icon{font-size:34px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{padding:20px}.stat strong{font-size:36px;display:block;margin-top:8px}.page-head{margin-bottom:22px}.back{width:44px;height:44px;border-radius:50%;border:0;background:#fff;box-shadow:var(--shadow);font-size:24px;cursor:pointer}.toolbar{margin-bottom:18px}.lesson-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.lesson-card{padding:20px;min-height:170px;display:flex;flex-direction:column}.lesson-card .btn{margin-top:auto;align-self:flex-end}.lesson-card.locked{opacity:.6}.lesson-card.locked .btn{background:#e8eaf0;color:#7e879b}.exercise{padding:28px;min-height:560px}.counter{font-size:18px;font-weight:800}.prompt{text-align:center;padding:56px 20px 34px}.prompt h2{font-size:32px}.zh{color:var(--muted);margin-top:8px}.audio-row{justify-content:center;margin:10px 0 22px}.input-wrap{max-width:900px;margin:auto}.answer-input{width:100%;font-size:24px;padding:18px 20px;border:2px solid #dfe3ee;border-radius:15px;outline:0}.answer-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(98,93,245,.1)}.feedback{padding:16px 18px;border-radius:13px;margin:15px 0;line-height:1.8}.good{background:#eafaf3;color:#167a58}.bad{background:#fff0f1;color:#b83745}.nav-row{justify-content:center;margin-top:22px}.tiny{text-align:center;color:var(--muted);font-size:13px;margin-top:10px}.listening-text>div{padding:18px;border-bottom:1px solid var(--line);text-align:left}.listening-text span{display:block}.toggle{display:flex;justify-content:center;gap:8px}.answer-zone{min-height:100px;border:2px dashed #d8ddea;border-radius:16px;padding:16px;display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.chips{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:20px}.chip,.answer-chip{border:1px solid #dfe3ed;background:white;border-radius:12px;padding:12px 17px;box-shadow:0 6px 16px rgba(31,40,75,.07);cursor:pointer}.chip.used{opacity:.25}
/* 打字练习 */
body.typing-body{background:var(--dark)}.typing-shell{min-height:100vh;background:radial-gradient(circle at 50% 20%,#1c263c 0,#0f1420 46%,#0b1019 100%);color:#eef2ff;padding:18px 28px 30px}.typing-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;max-width:1380px;margin:auto;color:#aab5cb}.typing-top .right{justify-self:end;display:flex;gap:9px}.icon-btn{width:40px;height:40px;border-radius:11px;border:1px solid #29334a;background:#151d2d;color:#c8d1e5;cursor:pointer}.typing-progress{font-weight:700;color:#e9eeff}.typing-stage{max-width:1120px;margin:12vh auto 0;text-align:center}.typing-lesson{font-size:34px;font-weight:700;letter-spacing:.2px;margin-bottom:8px}.typing-zh{font-size:22px;color:#bbc4d7;margin-bottom:48px}.typing-line{font-size:34px;line-height:1.8;letter-spacing:.5px;min-height:74px;word-break:break-word}.char{position:relative;display:inline-block;min-width:.35em;color:#78849b;border-bottom:2px solid #39445c;margin:0 1px;transition:.1s}.char.space{min-width:.55em;border-bottom-color:transparent}.char.correct{color:#f3f6ff;border-bottom-color:#7d88a3}.char.wrong{color:#ff6673;border-bottom-color:#ff6673;background:rgba(255,102,115,.08)}.char.current:after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:3px;background:#7f7aff;border-radius:3px}.typing-tip{margin-top:34px;color:#6f7c94;font-size:14px}.typing-stats{display:flex;justify-content:center;gap:34px;margin-top:34px;color:#97a4bc}.typing-stats b{color:#fff;font-size:24px;display:block}.typing-toast{display:inline-block;margin-top:28px;padding:10px 16px;border-radius:999px;background:#1b2538;color:#aebbd1}.typing-complete{max-width:720px;margin:14vh auto 0;background:#151d2b;border:1px solid #2a3650;border-radius:24px;padding:36px;text-align:center}.typing-complete h2{font-size:34px}.typing-complete .stats{grid-template-columns:repeat(3,1fr);margin:28px 0}.typing-complete .stat{background:#101722;border:1px solid #26324a;color:#8e9bb1}.typing-complete .stat strong{color:#fff}.import-note{padding:14px 16px;background:#fff8df;border:1px solid #ffe8a3;border-radius:14px;color:#765b00;margin-bottom:16px}.catalog-tabs{display:flex;gap:8px;margin:12px 0 18px;flex-wrap:wrap}.search{padding:11px 14px;border:1px solid var(--line);border-radius:12px;min-width:260px}
@media(max-width:900px){.app-shell{padding:16px}.hero{grid-template-columns:90px 1fr}.hero-actions{grid-column:1/-1;flex-direction:row}.book{height:110px}.mode-grid{grid-template-columns:repeat(2,1fr)}.lesson-grid{grid-template-columns:1fr 1fr}.stats{grid-template-columns:repeat(2,1fr)}.typing-stage{margin-top:8vh}.typing-lesson{font-size:27px}.typing-line{font-size:26px}}
@media(max-width:560px){.mode-grid,.lesson-grid{grid-template-columns:1fr}.hero{grid-template-columns:1fr}.book{display:none}.typing-shell{padding:14px}.typing-top{grid-template-columns:auto 1fr auto}.typing-top .left-label{display:none}.typing-line{font-size:22px}.typing-zh{font-size:18px}.typing-stats{gap:18px}}
/* v3 typing controls */
.typing-sentence-wrap{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:14px;max-width:1040px;margin:0 auto}
.typing-skip{width:34px;height:34px;border-radius:10px;border:1px solid #2c3851;background:#151d2d;color:#c8d1e5;font-size:26px;line-height:1;cursor:pointer}
.typing-skip:disabled{opacity:.28;cursor:default}
.typing-capture{position:fixed;left:-10000px;top:0;width:1px;height:1px;opacity:.01}
.ipad-keyboard-btn{margin-top:18px;border:1px solid #2b3850;background:#151d2d;color:#aebbd1;border-radius:10px;padding:8px 12px;cursor:pointer;display:none}
@media (hover:none),(pointer:coarse){.ipad-keyboard-btn{display:inline-block}.typing-top .right{gap:6px}.icon-btn{width:38px;height:38px}}
@media(max-width:760px){.typing-top .right{flex-wrap:wrap;justify-content:flex-end}.typing-sentence-wrap{grid-template-columns:34px minmax(0,1fr) 34px;gap:7px}.typing-skip{width:30px;height:30px}.typing-line{font-size:24px}}

/* v4 typing display: separate prompt and typed result layer */
.typing-en{font-size:28px;color:#f2f5ff;margin:0 0 8px;min-height:42px}
.tts-badge{max-width:520px;margin:16px auto 0;text-align:center;color:#aebbd1;background:#151d2d;border:1px solid #2b3850;border-radius:999px;padding:8px 14px;font-size:13px}
.typing-zh{margin-bottom:44px}
.typing-line{display:flex;align-items:flex-end;justify-content:center;flex-wrap:wrap;gap:3px;min-height:96px}
.typing-slot{position:relative;display:inline-grid;grid-template-rows:42px 18px 5px;justify-items:center;align-items:center;min-width:28px;margin:0 1px}
.typed-letter{font-size:34px;line-height:1;color:#f6f8ff;font-weight:500;min-height:38px;min-width:1ch}
.slot-dot{font-size:24px;line-height:1;color:#7f8ca5;transition:none}
.slot-line{display:block;width:22px;height:2px;background:#39445c;border-radius:2px}
.typing-slot.current .slot-line{height:4px;background:#7f7aff}
.typing-slot.wrong .typed-letter{color:#ff6673}
.typing-slot.wrong .slot-dot{color:#ff6673}
.typing-slot.wrong .slot-line{background:#ff6673}
.typing-word-gap{display:inline-block;width:28px;height:65px}
.typing-punct{display:inline-block;align-self:flex-start;margin-top:36px;color:#7f8ca5;font-size:34px;line-height:1.2}
@media(max-width:900px){.typing-en{font-size:24px}.typing-slot{min-width:24px}.typed-letter{font-size:28px}.slot-dot{font-size:20px}.slot-line{width:19px}.typing-word-gap{width:20px}.typing-punct{font-size:28px}}
@media(max-width:560px){.typing-en{font-size:20px}.typing-slot{min-width:20px;grid-template-rows:34px 15px 4px}.typed-letter{font-size:23px}.slot-dot{font-size:18px}.slot-line{width:16px}.typing-word-gap{width:14px;height:56px}.typing-punct{font-size:24px;margin-top:30px}}

.success-toast{position:fixed;left:50%;top:55%;transform:translate(-50%,-50%);background:#22c55e;color:white;font-size:28px;font-weight:800;padding:18px 36px;border-radius:18px;box-shadow:0 15px 40px #0005;z-index:9999;animation:pop .2s ease}@keyframes pop{from{transform:translate(-50%,-50%) scale(.7)}to{transform:translate(-50%,-50%) scale(1)}}
.dialog-card{padding:18px 16px;margin:14px 0;border:1px solid rgba(148,163,184,.25);border-radius:16px;background:rgba(15,23,42,.03)}
.dialog-index{font-size:13px;color:#64748b;margin-bottom:6px}.dialog-line{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:6px 0}.dialog-line b{font-size:18px}.dialog-line .zh{font-size:15px;color:#64748b}.dialog-line.female .speaker{filter:hue-rotate(150deg)}.speaker{font-size:20px}.segment-time{font-size:12px;color:#94a3b8;margin:8px 0}.dialog-typing{display:block;line-height:1.55}.dialog-typing .dialog-line{justify-content:center}.dialog-typing .dialog-line b{font-size:28px}.dialog-typing .dialog-line .zh{display:none}.dialog-typing .speaker{font-size:24px}


:root{--accent:#7c5cff;--accent2:#3dd6c6}
.version-pill{display:inline-flex;background:rgba(124,92,255,.16);border:1px solid rgba(124,92,255,.35);color:#c9bcff;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}
.top-actions,.manage-actions{display:flex;gap:10px;flex-wrap:wrap}.feature-tags{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.feature-tags span{padding:7px 10px;border-radius:9px;background:#202534;border:1px solid #30374b;color:#d8dded;font-size:13px}.workflow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:12px}.workflow .card{display:flex;flex-direction:column;gap:8px;min-height:92px}.workflow .arrow{font-size:26px;color:#656e85}.lesson-number{font-size:12px;letter-spacing:.18em;color:#7b849a}.warn{color:#ffb05a}.audio-source{font-size:12px;color:#818aa2;margin:8px 0}.audio-bad{border-color:#743f47!important;background:rgba(107,43,55,.16)!important}.manage-actions{margin:20px 0}.manage-guide{padding:22px;margin-bottom:18px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.guide-grid>div{padding:14px;background:#171b25;border:1px solid #2b3140;border-radius:12px;display:flex;flex-direction:column;gap:7px}.guide-grid span,.data-table small,.review-row span,.review-row small{display:block;color:#929bb0;font-size:13px;margin-top:5px}.manage-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.manage-kpis .card{padding:18px;display:flex;flex-direction:column;gap:8px}.manage-kpis b{font-size:30px}.danger-card{border-color:#74404c}.data-table-wrap{overflow:auto;border:1px solid #2c3242;border-radius:14px}.data-table{width:100%;border-collapse:collapse;background:#151923}.data-table th,.data-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #272d3b}.data-table th{position:sticky;top:0;background:#1c2130;color:#aeb7cb;font-size:12px;letter-spacing:.06em}.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:12px}.status.good{background:rgba(61,214,198,.12);color:#73e5d8}.status.bad{background:rgba(255,99,122,.12);color:#ff879a}.tiny-btn{padding:7px 10px!important;font-size:12px!important}.sentence-review{display:flex;flex-direction:column;gap:10px;margin-top:18px}.review-row{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:16px;padding:16px}.review-num{width:34px;height:34px;border-radius:10px;background:#22283a;display:grid;place-items:center;color:#9fa8bd;font-weight:700}
@media(max-width:760px){.workflow{grid-template-columns:1fr}.workflow .arrow{transform:rotate(90deg);text-align:center}.guide-grid,.manage-kpis{grid-template-columns:1fr 1fr}.top-actions{width:100%}.top-actions .btn{flex:1}}
@media(max-width:480px){.guide-grid,.manage-kpis{grid-template-columns:1fr}.review-row{grid-template-columns:34px 1fr}.review-row>.btn{grid-column:2}}

.row-actions{display:flex;gap:7px;flex-wrap:wrap;min-width:260px}.row-actions .btn{white-space:nowrap}

/* Multi-book library */
.library-hero{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:36px;align-items:center;background:#141b2a;color:#eff3ff;border-radius:8px;padding:46px;margin:24px 0 30px;box-shadow:0 16px 42px rgba(16,24,40,.16)}.library-kicker{color:#76e1d2;font-weight:800;font-size:12px;letter-spacing:.12em}.library-hero h1{font-size:40px;margin:10px 0 14px}.library-hero p{max-width:700px;color:#b8c4d9;line-height:1.8;margin-bottom:24px}.library-actions{display:flex;gap:10px;flex-wrap:wrap}.library-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;align-items:baseline;padding:26px;background:#1d273a;border:1px solid #33425c;border-radius:8px}.library-summary b{font-size:30px;color:#fff}.library-summary span{font-size:13px;color:#aebbd1}.book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.book-card{display:grid;grid-template-columns:118px minmax(0,1fr);gap:18px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.book-cover{height:158px;border-radius:6px;display:flex;flex-direction:column;justify-content:space-between;padding:13px;color:#162031;font-size:10px;font-weight:800;letter-spacing:.08em}.book-cover b{font-size:70px;line-height:.8;text-align:center}.book-cover small{text-align:center;font-size:11px}.book-1 .book-cover{background:#d6e84b}.book-2 .book-cover{background:#82c8d4}.book-3 .book-cover{background:#dc9a55}.book-4 .book-cover{background:#b798cf}.book-info{display:flex;flex-direction:column;min-width:0}.book-meta{font-size:12px;color:#6d7790}.book-info h2{font-size:20px;margin:7px 0;letter-spacing:0}.book-info p{font-size:14px;color:var(--muted);line-height:1.55}.book-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;color:#6d7790;font-size:12px}.book-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.book-tabs .btn{min-width:88px}.lesson-card h3{letter-spacing:0}@media(max-width:860px){.library-hero{grid-template-columns:1fr;padding:30px}.library-summary{max-width:420px}.book-grid{grid-template-columns:1fr}}@media(max-width:520px){.library-hero h1{font-size:31px}.book-card{grid-template-columns:90px minmax(0,1fr)}.book-cover{height:130px}.book-cover b{font-size:56px}.book-info h2{font-size:17px}.book-footer{align-items:flex-start;flex-direction:column}}
/* V6 course actions: desktop resource editor is opened per lesson. */
.lesson-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lesson-grid .lesson-card{content-visibility:auto;contain-intrinsic-size:170px}
.resource-editor-link{display:none!important}

/* V6 project entry and vocabulary practice */
.project-hero{margin:28px 0 18px;padding:38px 0 28px;border-bottom:1px solid var(--line)}.project-hero h1{font-size:38px;margin:10px 0}.project-hero p{color:var(--muted);font-size:16px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project-card{min-height:300px;padding:28px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);display:grid;grid-template-columns:64px 1fr;grid-template-rows:1fr auto;gap:20px}.project-card .btn{grid-column:2;justify-self:start}.project-mark{width:58px;height:58px;border-radius:8px;display:grid;place-items:center;font-size:26px;font-weight:800}.vocabulary-project .project-mark{background:#dbf2eb;color:#13725f}.course-project .project-mark{background:#e5e4ff;color:#4039bd}.project-kicker,.word-category,.word-label{font-size:12px;font-weight:800;letter-spacing:.08em;color:#68738b}.project-card h2{font-size:26px;margin:9px 0}.project-card p{color:var(--muted);line-height:1.7}.project-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.project-meta span{font-size:13px;color:#4d5970;background:#f1f3f8;padding:6px 9px;border-radius:6px}.word-catalog-note{padding:15px 16px;border:1px solid #dbe4f1;border-radius:8px;background:#f7faff;color:#566177;margin-bottom:18px}.word-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.word-list-card{min-height:166px;padding:20px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;gap:14px}.word-list-card h2{font-size:18px;margin:7px 0}.word-list-card p{margin:0;color:var(--muted)}.word-list-card .btn{align-self:flex-start}.word-practice,.word-summary{margin-top:20px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.word-progress{height:8px;background:#edf0f5;border-radius:4px;overflow:hidden;margin:18px 0}.word-progress span{height:100%;display:block;background:var(--primary)}.word-score{color:var(--muted);font-size:14px}.word-prompt{text-align:center;padding:38px 20px 28px}.word-prompt h1{font-size:28px;line-height:1.6;max-width:820px;margin:12px auto}.word-phone{color:#64718a;margin:10px 0}.word-audio{margin-top:10px}.word-answer{max-width:780px;margin:auto}.word-answer label{display:block;color:var(--muted);font-size:14px;margin-bottom:8px}.word-actions{display:flex;gap:10px;justify-content:center;margin-top:18px}.text-button{border:0;background:transparent;color:#9c2833;text-decoration:underline;cursor:pointer;font:inherit;padding:0;margin-left:5px}.word-summary{text-align:center;max-width:760px;margin:52px auto}.word-summary h1{font-size:38px;margin:10px 0 30px}.word-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.word-summary-grid>div{padding:20px;background:#f4f6fa;border-radius:8px}.word-summary-grid b{display:block;font-size:30px}.word-summary-grid span{color:var(--muted);font-size:14px}
.word-typing-shell .icon-btn.active{background:#625df5;border-color:#8a86ff;color:#fff}.word-typing-phone{min-height:30px;color:#aebbd1;font-size:18px;margin:5px 0 14px}.word-typing-line{max-width:860px;margin:0 auto}.word-typing-shell .typing-stage{margin-top:8vh}
.word-typing-stage{position:relative}.word-next-btn,.word-prev-btn{position:absolute;top:50%;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #33415b;border-radius:10px;background:#162137;color:#bfc9df;font-size:27px;line-height:1;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.word-next-btn{right:20px}.word-prev-btn{left:20px}.word-next-btn:hover,.word-next-btn:focus-visible,.word-prev-btn:hover,.word-prev-btn:focus-visible{border-color:#8b87ff;background:#625df5;color:#fff;outline:none}.word-next-btn:hover,.word-next-btn:focus-visible{transform:translateX(2px)}.word-prev-btn:hover,.word-prev-btn:focus-visible{transform:translateX(-2px)}.word-prev-btn:disabled{opacity:.38;cursor:not-allowed;transform:none}@media(max-width:760px){.word-next-btn,.word-prev-btn{top:auto;bottom:80px}.word-next-btn{right:10px}.word-prev-btn{left:10px}}

/* Home: one direct study workspace with consistent course and vocabulary sections. */
.home-topbar{padding-bottom:12px;border-bottom:1px solid var(--line)}.brand-lockup{display:flex;align-items:center;gap:11px}.brand-logo{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:#625df5;color:#fff;font-size:12px;font-weight:900;letter-spacing:.02em;box-shadow:inset 0 -3px 0 rgba(24,22,104,.28)}.home-hero{margin-top:22px;grid-template-columns:1fr;min-height:212px}.home-hero p{max-width:840px}.home-section{margin-top:36px;scroll-margin-top:24px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading h2{font-size:24px;margin:4px 0 0}.section-heading p{margin:0;color:var(--muted);font-size:14px}.section-eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:#6d63e8}.home-book-grid .book-card,.vocabulary-card{cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.home-book-grid .book-card:hover,.home-book-grid .book-card:focus-visible,.vocabulary-card:hover,.vocabulary-card:focus-visible{transform:translateY(-4px);border-color:#c9c7ff;box-shadow:0 18px 38px rgba(48,54,105,.15);outline:none}.home-book-grid .book-card:hover .book-cover{transform:translateY(-2px)}.home-book-grid .book-cover{transition:transform .18s ease}.vocabulary-home-section{padding:28px 0 10px;border-top:1px solid var(--line)}.vocabulary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.vocabulary-card{position:relative;min-height:164px;display:grid;grid-template-columns:52px minmax(0,1fr) 38px;gap:15px;align-items:center;padding:20px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.vocabulary-card-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:8px;background:#e9e8ff;color:#4b44c9;font-size:19px;font-weight:800}.vocabulary-card:nth-child(2) .vocabulary-card-mark{background:#def2ee;color:#176c5d}.vocabulary-card:nth-child(3) .vocabulary-card-mark{background:#ffedda;color:#a7541a}.vocabulary-card h3{font-size:18px;margin:6px 0}.vocabulary-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.circle-action{width:34px;height:34px;border:1px solid #d8ddea;border-radius:50%;background:#fff;color:#5450d8;font-size:21px;line-height:1;cursor:pointer;transition:background .18s,color .18s}.vocabulary-card:hover .circle-action{background:#625df5;border-color:#625df5;color:#fff}.reveal-item{animation:homeReveal .42s both;animation-delay:var(--enter-delay,0ms)}@keyframes homeReveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.reveal-item{animation:none}.home-book-grid .book-card,.vocabulary-card,.home-book-grid .book-cover,.circle-action{transition:none}}@media(max-width:860px){.vocabulary-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column;gap:5px}}@media(max-width:520px){.home-topbar{align-items:flex-start}.home-hero{margin-top:16px}.section-heading h2{font-size:21px}.vocabulary-card{grid-template-columns:44px minmax(0,1fr) 34px;padding:17px}.vocabulary-card-mark{width:42px;height:42px}.circle-action{width:32px;height:32px}}
@media(max-width:900px){.project-grid{grid-template-columns:1fr}.word-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.project-hero h1{font-size:30px}.project-card{grid-template-columns:48px 1fr;padding:20px}.project-mark{width:44px;height:44px}.word-list{grid-template-columns:1fr}.word-practice,.word-summary{padding:18px}.word-prompt{padding:26px 8px}.word-prompt h1{font-size:23px}.word-summary-grid{grid-template-columns:1fr}.exercise-top{align-items:flex-start;flex-wrap:wrap}}

/* Touch-typing pilot: live key and finger guidance. */
.finger-home-section{padding:28px 0 10px;border-top:1px solid var(--line)}.finger-home-card{display:grid;grid-template-columns:58px minmax(0,1fr) 38px;gap:17px;align-items:center;max-width:760px;padding:21px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.finger-home-card:hover,.finger-home-card:focus-visible{transform:translateY(-3px);border-color:#c9c7ff;box-shadow:0 18px 38px rgba(48,54,105,.15);outline:none}.finger-home-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:8px;background:#fff0dc;color:#b96016;font-size:24px}.finger-home-card h3{margin:6px 0;font-size:19px}.finger-home-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.finger-catalog{max-width:1180px;margin:26px auto}.finger-intro{margin-bottom:18px}.finger-intro h1{margin:5px 0;font-size:34px}.finger-intro p{margin:0;color:var(--muted)}.finger-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.finger-list-card{min-height:176px;padding:20px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;gap:16px}.finger-list-card h2{font-size:18px;margin:7px 0}.finger-list-card p{margin:0;color:var(--muted)}.finger-list-card .btn{align-self:flex-start}.finger-typing-shell{padding-bottom:22px}.finger-stage{max-width:980px;margin:5.5vh auto 0;text-align:center}.finger-mode-label{font-size:11px;letter-spacing:.15em;font-weight:800;color:#7d78ff;margin-bottom:11px}.finger-word{font-size:36px;font-weight:800;color:#f6f7ff;min-height:48px}.finger-phone{min-height:25px;margin:5px 0;color:#aebbd1;font-size:17px}.finger-translation{min-height:28px;color:#bbc4d7;font-size:20px}.finger-target-hint{display:inline-flex;align-items:center;gap:10px;margin:18px auto 13px;padding:7px 11px;border:1px solid #31405c;border-radius:8px;color:#aebbd1;font-size:13px}.finger-target-hint strong{display:grid;place-items:center;min-width:24px;height:24px;border-radius:5px;background:#7772ff;color:#fff;font-size:14px}.finger-target-hint span{color:#61dfd2}.finger-slots{display:flex;justify-content:center;align-items:flex-end;flex-wrap:wrap;min-height:53px;margin:0 auto 20px}.finger-letter{display:inline-grid;place-items:center;width:27px;height:37px;margin:0 2px;border-bottom:2px solid #3f4d69;color:#77849b;font-size:25px;transition:color .12s,border-color .12s}.finger-letter.is-done{color:#f1f4ff;border-color:#c0c9e0}.finger-letter.is-current{border-bottom:4px solid #7d78ff}.finger-word-gap{display:inline-block;width:17px;height:35px}.finger-punctuation{font-size:24px;color:#8390aa;margin:0 2px}.finger-keyboard{width:min(100%,850px);margin:0 auto;padding:15px;border:1px solid #2c3a56;border-radius:8px;background:#141d2e;box-shadow:0 18px 42px rgba(0,0,0,.18)}.finger-key-row{display:flex;justify-content:center;gap:7px;margin-bottom:7px}.finger-key{width:clamp(35px,6.6vw,61px);height:clamp(34px,5.5vw,49px);display:grid;place-items:center;border:1px solid #33425f;border-bottom-width:3px;border-radius:6px;background:#202c42;color:#c7d0e5;font-size:clamp(12px,2vw,17px);font-weight:700;transition:transform .1s,background .12s,border-color .12s,color .12s}.finger-key.is-target{background:#716cf5;border-color:#aaa6ff;color:#fff;box-shadow:0 0 0 3px rgba(120,114,255,.22);transform:translateY(-2px)}.finger-key.is-wrong{background:#c8465a;border-color:#ff8292;color:#fff}.finger-bottom-row{margin-bottom:0}.finger-key-wide{width:clamp(52px,10vw,90px);font-size:11px}.finger-key-space{width:clamp(200px,38vw,360px)}.finger-hands{display:flex;justify-content:center;gap:46px;margin:13px auto 4px;min-height:74px}.finger-hand{position:relative;width:210px;height:72px}.finger-palm{position:absolute;bottom:0;width:128px;height:45px;border-radius:38px 38px 17px 17px;background:#31405e;opacity:.72}.left-hand .finger-palm{right:9px}.right-hand .finger-palm{left:9px}.finger-digits{position:absolute;bottom:24px;display:flex;gap:6px}.left-hand .finger-digits{right:21px}.right-hand .finger-digits{left:21px}.finger-digit{position:relative;display:block;width:23px;height:46px;border-radius:15px 15px 6px 6px;background:#4b5b7a;transform-origin:bottom center;transition:background .12s,transform .12s,box-shadow .12s}.finger-digit:nth-child(1){height:36px}.finger-digit:nth-child(2){height:45px}.finger-digit:nth-child(3){height:51px}.finger-digit:nth-child(4){height:47px}.finger-digit.is-target{background:#62d9cb;transform:translateY(-7px);box-shadow:0 0 0 4px rgba(98,217,203,.15)}.finger-digit b{position:absolute;left:50%;top:-22px;transform:translateX(-50%);white-space:nowrap;font-size:10px;font-weight:600;color:#aebbd1;opacity:0}.finger-digit.is-target b{opacity:1;color:#70ebdc}.finger-stats{display:flex;justify-content:center;gap:34px;margin-top:9px;color:#97a4bc}.finger-stats b{display:block;color:#fff;font-size:20px}.finger-stats span{font-size:12px}@media(max-width:760px){.finger-list{grid-template-columns:1fr 1fr}.finger-stage{margin-top:3.5vh}.finger-word{font-size:28px}.finger-hands{gap:4px;transform:scale(.83);margin:-2px auto -5px}.finger-key-row{gap:4px}.finger-keyboard{padding:10px}.finger-stats{margin-top:4px}}@media(max-width:520px){.finger-home-card{grid-template-columns:45px minmax(0,1fr) 34px;padding:17px}.finger-home-icon{width:42px;height:42px}.finger-list{grid-template-columns:1fr}.finger-intro h1{font-size:28px}.finger-translation{font-size:17px}.finger-letter{width:21px;font-size:20px}.finger-key{border-bottom-width:2px}.finger-keyboard{border-radius:7px}.finger-hands{transform:scale(.63);margin:-15px auto -15px}.finger-stats{gap:17px}.finger-target-hint{margin-top:12px}}

/* Extracurricular course covers are generated from each imported CSV title and theme. */
.extension-home-section{padding:28px 0 10px;border-top:1px solid var(--line)}.extension-home-card{display:grid;grid-template-columns:92px minmax(0,1fr) 38px;gap:17px;align-items:center;max-width:760px;padding:21px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.extension-home-card:hover,.extension-home-card:focus-visible,.extension-card:hover,.extension-card:focus-visible{transform:translateY(-3px);border-color:#c9c7ff;box-shadow:0 18px 38px rgba(48,54,105,.15);outline:none}.extension-home-cover,.extension-cover{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;background:#5a55d5;color:#fff;box-shadow:inset 0 -4px 0 rgba(20,16,80,.18)}.extension-home-cover{width:82px;height:106px;padding:10px;border-radius:7px}.extension-home-cover span,.extension-cover span{font-size:9px;font-weight:800;letter-spacing:.1em}.extension-home-cover b{font-size:41px;line-height:1}.extension-home-cover small,.extension-cover small{font-size:10px;font-weight:700}.extension-home-card h3{margin:6px 0;font-size:19px}.extension-home-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.extension-catalog{max-width:1180px;margin:26px auto}.extension-intro{position:relative;min-height:86px;margin-bottom:20px;padding-right:430px}.extension-intro h1{font-size:34px;margin:5px 0}.extension-intro p{margin:0;color:var(--muted)}.extension-catalog-guide,.extension-order-guide{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px 12px;border:1px solid #d8ddea;border-radius:8px;background:#fff;color:#66728a;font-size:12px;line-height:1.4}.extension-catalog-guide{position:absolute;top:3px;right:0;max-width:410px;padding:10px 12px}.extension-catalog-guide strong,.extension-order-guide strong{color:#273550;font-size:13px}.extension-catalog-guide span,.extension-order-guide span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.extension-catalog-guide kbd,.extension-order-guide kbd{min-width:21px;padding:2px 5px;border:1px solid #cbd4e6;border-radius:4px;background:#f3f5fa;color:#374766;font:700 11px/1.25 Inter,"PingFang SC","Microsoft YaHei",sans-serif;text-align:center}.extension-order-guide{max-width:680px;margin:18px auto 0;padding:10px 14px}.extension-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.extension-card{display:grid;grid-template-columns:80px minmax(0,1fr) 34px;gap:14px;align-items:center;min-height:144px;padding:17px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.extension-cover{width:72px;height:104px;padding:9px;border-radius:6px}.extension-cover b{font-size:32px;line-height:1}.extension-card h2{font-size:18px;line-height:1.28;margin:6px 0}.extension-card p{margin:0;color:var(--muted);font-size:13px}.theme-teal{background:#288c91}.theme-orange{background:#dc8840}.theme-rose{background:#b75b82}.theme-blue{background:#4e78be}.theme-lime{background:#7d9d39}.extension-typing-shell .typing-stage{margin-top:8vh}.extension-stage .typing-lesson{font-size:28px}.extension-tag{color:#7d8ca6;font-size:13px;margin:2px 0 13px}.extension-stage .typing-en{max-width:980px;margin-left:auto;margin-right:auto}.extension-stage .typing-zh{max-width:860px;margin-left:auto;margin-right:auto}@media(max-width:860px){.extension-grid{grid-template-columns:1fr 1fr}.extension-intro{padding-right:0}.extension-catalog-guide{position:static;justify-content:flex-start;max-width:none;margin-top:14px}}@media(max-width:560px){.extension-home-card{grid-template-columns:66px minmax(0,1fr) 34px;padding:17px}.extension-home-cover{width:58px;height:78px}.extension-home-cover b{font-size:30px}.extension-grid{grid-template-columns:1fr}.extension-catalog{margin-top:20px}.extension-intro h1{font-size:28px}.extension-typing-shell .typing-stage{margin-top:5vh}.extension-stage .typing-lesson{font-size:22px}.extension-catalog-guide,.extension-order-guide{justify-content:flex-start}}

/* Unified study controls and on-screen keyboard. */
.typing-shell .icon-btn.active{background:#625df5;border-color:#8a86ff;color:#fff}.study-keyboard{width:min(100%,620px);margin:16px auto 0;padding:10px 11px 8px;border:1px solid #344663;border-radius:8px;background:#131d2e;box-shadow:0 12px 26px rgba(0,0,0,.16)}.study-key-row{display:flex;justify-content:center;gap:5px;margin-bottom:5px}.study-key{width:clamp(27px,5.2vw,42px);height:clamp(28px,4.6vw,36px);display:grid;place-items:center;border:1px solid #41516b;border-bottom:3px solid #25334b;border-radius:5px;background:linear-gradient(180deg,#2a3850,#202c42);color:#d8e2f4;font-size:clamp(11px,1.7vw,14px);font-weight:800;transition:transform .12s ease,background .12s ease,border-color .12s ease,color .12s ease}.study-key.is-target{background:linear-gradient(180deg,#837dff,#625df5);border-color:#aaa6ff;border-bottom-color:#4641c4;color:#fff;box-shadow:0 0 0 2px rgba(120,114,255,.2);transform:translateY(-2px)}.study-bottom-row{margin-bottom:0}.study-key-wide{width:clamp(46px,8vw,70px);font-size:10px}.study-key-space{width:clamp(138px,28vw,232px)}@media(max-width:760px){.study-key-row{gap:4px}.study-keyboard{padding:9px 7px 7px}}@media(max-width:520px){.study-keyboard{margin-top:12px;border-radius:7px}.study-key{border-bottom-width:2px}}
/* Local favorites: cards store only references to existing learning content. */
.book-card,.word-list-card,.extension-card,.quiz-book-card{position:relative}.favorite-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 9px;border:1px solid #d8ddea;border-radius:7px;background:#fff;color:#5e6980;font:inherit;font-size:12px;line-height:1;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.favorite-toggle:hover{border-color:#8c82f7;color:#5549d8}.favorite-toggle.is-favorited{border-color:#8176f0;background:#efedff;color:#5549d8;font-weight:700}.card-favorite{position:absolute;top:13px;right:13px;z-index:2}.book-card .card-favorite{top:15px;right:15px}.quiz-book-card .card-favorite{background:rgba(255,255,255,.92)}.favorites-home-section{padding:28px 0 10px;border-top:1px solid var(--line)}.favorites-home-card{display:grid;grid-template-columns:58px minmax(0,1fr) 38px;gap:17px;align-items:center;max-width:760px;padding:21px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.favorites-home-card:hover,.favorites-home-card:focus-visible{transform:translateY(-3px);border-color:#c9c7ff;box-shadow:0 18px 38px rgba(48,54,105,.15);outline:none}.favorites-home-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:8px;background:#fff0dc;color:#b96016;font-size:24px}.favorites-home-card h3{margin:6px 0;font-size:19px}.favorites-home-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.favorites-topbar{padding-bottom:12px;border-bottom:1px solid var(--line)}.favorites-page{max-width:1180px;margin:26px auto}.favorites-intro{margin-bottom:18px}.favorites-intro h1{margin:5px 0;font-size:34px}.favorites-intro p{margin:0;color:var(--muted)}.favorites-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.favorites-tabs .tab{border:1px solid transparent}.favorites-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.favorite-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:15px;align-items:center;min-height:128px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.favorite-mark{display:grid;place-items:center;width:50px;height:68px;border-radius:7px;color:#1b2740;background:#d8e84c;font-size:22px;font-weight:800}.favorite-mark.type-vocabulary{background:#dff1ee;color:#1d7666}.favorite-mark.type-quiz{background:#ffead5;color:#ad5e1c}.favorite-mark.type-extension{background:#e9e7ff;color:#5648cf}.favorite-card-main h2{margin:5px 0;font-size:18px;line-height:1.3}.favorite-card-main p{margin:0;color:var(--muted);font-size:13px}.favorite-card-actions{display:flex;align-items:flex-end;flex-direction:column;gap:8px}.favorite-card-actions .btn{white-space:nowrap}.favorites-empty{display:grid;justify-items:center;gap:8px;padding:62px 24px;border:1px dashed #cbd5e5;border-radius:8px;background:#fff;text-align:center}.favorites-empty>div{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#efedff;color:#5b50da;font-size:24px}.favorites-empty h2{margin:4px 0;font-size:20px}.favorites-empty p{max-width:440px;margin:0 0 8px;color:var(--muted);line-height:1.6}@media(max-width:760px){.favorites-grid{grid-template-columns:1fr}.favorite-card{grid-template-columns:52px minmax(0,1fr)}.favorite-card-actions{grid-column:2;align-items:flex-start;flex-direction:row}.favorites-home-card{grid-template-columns:45px minmax(0,1fr) 34px;padding:17px}.favorites-home-icon{width:42px;height:42px}}

/* Learning-space navigation: catalog pages share a stable tablet-first workspace. */
.learning-layout{display:grid;grid-template-columns:124px minmax(0,1fr);min-height:100vh;background:#f3f6fb}.learning-sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:16px 10px 14px;background:#172238;color:#d7e0f2;box-shadow:2px 0 18px rgba(18,31,53,.12);z-index:10}.learning-brand{display:grid;justify-items:center;width:100%;padding:4px 0 17px;border:0;background:transparent;color:#fff;text-align:center;cursor:pointer;font:inherit}.learning-brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#7467ed;color:#fff;font-size:13px;font-weight:900;letter-spacing:.04em}.learning-brand b{display:none}.learning-brand small{display:block;margin-top:5px;color:#b7c3d9;font-size:11px}.learning-nav{display:grid;gap:5px}.learning-nav-item{display:grid;grid-template-columns:1fr;grid-template-rows:22px auto;justify-items:center;align-items:center;gap:3px;min-height:52px;width:100%;padding:5px 4px;border:1px solid transparent;border-radius:8px;background:transparent;color:#bec9dc;text-align:center;font:inherit;font-size:11px;line-height:1.2;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.learning-nav-item:hover{background:#22324c;color:#fff}.learning-nav-item.is-active{border-color:#766cf0;background:#6358df;color:#fff;box-shadow:0 6px 16px rgba(75,64,191,.28)}.learning-nav-icon{display:grid;place-items:center;width:25px;height:22px;color:#b9c5df;font-size:18px;line-height:1}.learning-nav-item.is-active .learning-nav-icon{color:#fff}.learning-nav-divider{height:1px;margin:8px 8px 5px;background:#31405a}.learning-sidebar-foot{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:auto;padding:10px 0 2px;color:#9faec8;font-size:10px;white-space:nowrap}.learning-status-dot{width:7px;height:7px;border-radius:50%;background:#56cdb4;box-shadow:0 0 0 4px rgba(86,205,180,.12)}.learning-main{min-width:0;overflow:hidden}.learning-layout .app-shell{max-width:1360px;margin:0 auto;padding:30px 38px 58px}.learning-layout .home-topbar{display:none}.learning-layout .home-section{scroll-margin-top:20px}.learning-layout .section-heading{padding-top:5px}.learning-layout .section-heading h2{font-size:25px}.learning-layout .topbar:not(.home-topbar){margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid #dce3ee}.learning-layout .brand{color:#182641}.learning-layout .sub{color:#71809a}.placeholder-page{max-width:1040px;margin:34px auto 0}.placeholder-page h1{margin:6px 0 20px;font-size:32px;color:#17243a}.placeholder-space{height:360px;border:1px dashed #cad5e5;border-radius:8px;background:#fff}.typing-body .learning-layout{display:block}
@media(max-width:700px){.learning-layout{display:block}.learning-sidebar{position:sticky;display:flex;height:auto;min-height:0;padding:10px 14px;background:#172238}.learning-brand{width:auto;flex:0 0 auto;padding:2px 12px 2px 0}.learning-brand small{display:none}.learning-nav{display:flex;align-items:center;gap:5px;overflow-x:auto;scrollbar-width:none}.learning-nav::-webkit-scrollbar{display:none}.learning-nav-item{display:flex;grid-template-columns:none;gap:6px;min-height:36px;width:auto;flex:0 0 auto;padding:0 10px;font-size:13px;white-space:nowrap}.learning-nav-icon{width:18px;height:20px;font-size:15px}.learning-nav-divider{width:1px;height:24px;flex:0 0 auto;margin:0 4px;background:#42516a}.learning-sidebar-foot{display:none}.learning-layout .app-shell{padding:24px 26px 48px}}
@media(max-width:620px){.learning-brand b{font-size:13px}.learning-brand-mark{width:30px;height:30px;font-size:11px}.learning-layout .app-shell{padding:20px 16px 40px}.learning-layout .home-hero{padding:25px 22px;min-height:170px}.learning-layout .home-hero:after{right:18px;font-size:66px}.learning-layout .home-hero h1{font-size:30px}.learning-layout .section-heading h2{font-size:22px}.placeholder-page{margin-top:18px}.placeholder-page h1{font-size:27px}}

/* B 学习空间首页：先给孩子明确的继续学习入口，再展示全部课程。 */
.learning-dashboard{overflow:hidden;margin:0 0 32px;border:1px solid #dce5f0;border-radius:8px;background:#fff;box-shadow:0 12px 28px rgba(39,58,88,.08)}.learning-dashboard-top{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px;padding:0 28px;border-bottom:1px solid #e2e8f1}.dashboard-greeting{display:block;color:#14223b;font-size:20px;font-weight:800}.dashboard-subtitle{display:block;margin-top:3px;color:#7c8aa2;font-size:12px}.learning-streak{display:flex;align-items:center;gap:6px;color:#71809a;font-size:13px;white-space:nowrap}.learning-streak b{color:#5f55dc}.learning-face{width:30px;height:30px;border-radius:50%;background:#ffd49d}.learning-dashboard-body{padding:25px 28px 28px}.learning-dashboard-body h1{margin:5px 0 16px;color:#15233c;font-size:29px}.learning-progress-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}.learning-progress-card{padding:16px;border:1px solid #d9e8e8;border-radius:8px;background:#f6ffff}.learning-progress-card b{font-size:15px;color:#1a2b43}.learning-progress-card p{margin:5px 0 10px;color:#77869e;font-size:13px}.learning-progress{height:7px;overflow:hidden;border-radius:8px;background:#dce9eb}.learning-progress i{display:block;height:100%;border-radius:8px;background:#20aa9a}.learning-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:16px}.learning-quick-card{overflow:hidden;padding:0 0 12px;border:1px solid #dfe6f0;border-radius:8px;background:#fff;color:#182641;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.learning-quick-card:hover,.learning-quick-card:focus-visible{border-color:#9189f0;box-shadow:0 12px 24px rgba(43,55,95,.12);outline:none;transform:translateY(-3px)}.learning-quick-cover{display:block;height:128px;background-image:url('assets/learning-space-covers.png');background-repeat:no-repeat;background-size:400% 100%;background-position:var(--cover-position) center}.cover-one{--cover-position:0%}.cover-two{--cover-position:33.333%}.cover-three{--cover-position:66.666%}.cover-four{--cover-position:100%}.learning-quick-card b,.learning-quick-card small{display:block;padding:0 12px}.learning-quick-card b{margin-top:10px;font-size:14px}.learning-quick-card small{margin-top:4px;color:#78869e;font-size:12px}
@media(max-width:960px){.learning-dashboard-body{padding:22px}.learning-dashboard-top{padding:0 22px}.learning-quick-cover{height:112px}}@media(max-width:700px){.learning-dashboard-top{align-items:flex-start;flex-direction:column;gap:8px;padding:16px}.learning-dashboard-body{padding:18px 16px}.learning-dashboard-body h1{font-size:25px}.learning-progress-grid,.learning-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-quick-cover{height:100px}}@media(max-width:420px){.learning-progress-grid,.learning-quick-grid{grid-template-columns:1fr}.learning-quick-cover{height:132px}}

/* C2 paper-cut illustration board and desktop navy-gold learning navigation. */
.learning-quick-cover{background-image:url('assets/learning-space-c2.png');background-size:200% 200%;background-position:var(--cover-x) var(--cover-y)}.cover-one{--cover-x:0%;--cover-y:0%}.cover-two{--cover-x:100%;--cover-y:0%}.cover-three{--cover-x:0%;--cover-y:100%}.cover-four{--cover-x:100%;--cover-y:100%}
@media(min-width:701px){.learning-layout{grid-template-columns:232px minmax(0,1fr)}.learning-sidebar{padding:18px 14px 16px;background:#071d3d;color:#f3c94f;box-shadow:2px 0 18px rgba(5,19,43,.2)}.learning-brand{display:flex;align-items:center;justify-items:initial;gap:12px;padding:7px 8px 21px;color:#f3c94f;text-align:left}.learning-brand-mark{width:44px;height:44px;border:1px solid #f3c94f;border-radius:12px;background:#0b2b58;color:#f3c94f;font-size:15px}.learning-brand small{margin:0;color:#f3c94f;font-size:16px;font-weight:800}.learning-nav{gap:7px}.learning-nav-item{grid-template-columns:42px minmax(0,1fr);grid-template-rows:1fr;justify-items:start;gap:12px;min-height:56px;padding:0 12px;border-radius:8px;color:#f3c94f;text-align:left;font-size:16px;font-weight:700}.learning-nav-item:hover{background:#123c78;color:#f3c94f}.learning-nav-item.is-active{border-color:transparent;background:#123f84;color:#f3c94f;box-shadow:none}.learning-nav-icon{width:38px;height:38px;border:1px solid rgba(243,201,79,.72);border-radius:8px;color:#fff;font-size:20px}.learning-nav-item:hover .learning-nav-icon{border-color:#f3c94f;color:#f3c94f}.learning-nav-item.is-active .learning-nav-icon{border-color:#f3c94f;background:#183d72;color:#fff}.learning-nav-divider{margin:9px 8px 6px;background:rgba(243,201,79,.32)}.learning-sidebar-foot{justify-content:flex-start;padding-left:8px;color:#aebbd0;font-size:11px}.learning-status-dot{background:#f3c94f;box-shadow:0 0 0 4px rgba(243,201,79,.12)}}
@media(min-width:701px){.learning-brand{padding:9px 10px 24px;gap:14px}.learning-brand-mark{width:50px;height:50px;font-size:17px}.learning-brand small{font-size:21px;line-height:1.1}.learning-nav{display:flex;flex:1;flex-direction:column;justify-content:space-evenly;gap:0}.learning-nav-divider{display:none}.learning-nav-item{flex:0 0 58px;min-height:58px}.learning-sidebar-foot{padding-bottom:1px}}

/* Grade picker for school textbook vocabulary collections. */
.word-grade-tabs{display:flex;flex-wrap:wrap;gap:9px;margin:-2px 0 20px}.word-grade-tab{min-width:72px;border:1px solid #d9e1ed;border-radius:7px;background:#fff;color:#526079;padding:9px 13px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.word-grade-tab:hover{border-color:#8278ef;color:#584ed4}.word-grade-tab.is-active{border-color:#625df5;background:#625df5;color:#fff}
.word-filter-group{margin:-4px 0 20px;padding:18px 20px;border:1px solid #dbe4f1;border-radius:8px;background:#f7faff}.word-filter-label{margin:0 0 9px;color:#68738b;font-size:13px;font-weight:800}.word-stage-tabs,.word-version-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 17px}.word-stage-tab,.word-version-tab{display:inline-flex;align-items:center;gap:7px;min-height:36px;border:1px solid #d9e1ed;border-radius:7px;background:#fff;color:#526079;padding:8px 12px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.word-stage-tab:hover,.word-version-tab:hover{border-color:#8278ef;color:#584ed4}.word-stage-tab.is-active,.word-version-tab.is-active{border-color:#625df5;background:#625df5;color:#fff}.word-stage-tab small{font-size:11px;opacity:.78}.word-stage-tab:disabled{cursor:not-allowed;opacity:.48}.textbook-list-card{min-height:176px}.textbook-list-card h2{margin-top:10px}.textbook-list-meta{display:flex;flex-wrap:wrap;gap:6px;min-height:22px}.textbook-list-meta span{display:inline-flex;align-items:center;padding:4px 7px;border-radius:5px;background:#eef1f7;color:#5b6780;font-size:11px;line-height:1.1}.textbook-list-meta span:first-child{background:#e9e7ff;color:#5648cf}@media(max-width:760px){.word-filter-group{padding:15px}.word-stage-tab,.word-version-tab{font-size:13px;padding:7px 10px}}

/* Portrait course covers are limited to the seven non-New-Concept textbook catalogs. */
.word-list-card.has-portrait-cover{display:grid;grid-template-columns:136px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;align-items:stretch;gap:12px;padding:12px;min-height:174px}.word-list-cover{position:relative;grid-row:1 / span 2;overflow:hidden;min-height:150px;aspect-ratio:2 / 3;border-radius:7px;background-color:#dfe9f2;background-position:center;background-repeat:no-repeat;background-size:cover}.word-list-cover::after{content:"";position:absolute;right:0;bottom:0;left:0;height:35%;background:rgba(6,27,55,.72)}.word-list-cover[data-art="campus"]{background-image:url('assets/course-cover-campus-portrait.png')}.word-list-cover[data-art="classroom"]{background-image:url('assets/course-cover-classroom-portrait.png')}.word-list-cover[data-art="collage"]{background-image:url('assets/course-cover-collage-portrait.png')}.word-list-cover-label{position:absolute;z-index:1;right:8px;bottom:7px;left:8px;color:#fff;font-size:12px;font-weight:800;line-height:1.3;text-shadow:0 1px 2px rgba(0,0,0,.38)}.word-list-card.has-portrait-cover>div:not(.word-list-cover){min-width:0;padding:4px 3px}.word-list-card.has-portrait-cover h2{margin-top:7px;font-size:17px;line-height:1.35}.word-list-card.has-portrait-cover .btn{justify-self:start;margin:0 3px 2px}@media(max-width:620px){.word-list-card.has-portrait-cover{grid-template-columns:112px minmax(0,1fr);gap:10px;padding:10px;min-height:146px}.word-list-cover{min-height:124px}.word-list-cover-label{font-size:11px}.word-list-card.has-portrait-cover h2{font-size:15px}}
.word-list-cover::after{height:20%}.word-list-cover[data-art="new-concept"]{background-image:url('assets/new-concept-international-school-portrait.png')}

/* Four bright modern children's illustration covers for New Concept practice. */
.home-book-grid .book-card.has-modern-cover{grid-template-columns:142px minmax(0,1fr);gap:16px;padding:12px;min-height:182px}.home-book-grid .book-card.has-modern-cover .book-cover{position:relative;height:auto;min-height:158px;padding:0;overflow:hidden;border-radius:7px;background-color:#dfe9f2;background-position:center;background-repeat:no-repeat;background-size:cover}.home-book-grid .book-card.has-modern-cover .book-cover>*{display:none}.home-book-grid .book-card.has-modern-cover .book-cover::after{content:attr(data-volume);position:absolute;right:0;bottom:0;left:0;padding:8px 9px;color:#fff;background:rgba(6,27,55,.74);font-size:12px;font-weight:800;letter-spacing:0;text-align:left;text-shadow:0 1px 2px rgba(0,0,0,.38)}.home-book-grid .book-1.has-modern-cover .book-cover{background-image:url('assets/new-concept-book-1-cover.png')}.home-book-grid .book-2.has-modern-cover .book-cover{background-image:url('assets/new-concept-book-2-cover.png')}.home-book-grid .book-3.has-modern-cover .book-cover{background-image:url('assets/new-concept-book-3-cover.png')}.home-book-grid .book-4.has-modern-cover .book-cover{background-image:url('assets/new-concept-book-4-cover.png')}@media(max-width:520px){.home-book-grid .book-card.has-modern-cover{grid-template-columns:108px minmax(0,1fr);gap:12px;padding:10px;min-height:148px}.home-book-grid .book-card.has-modern-cover .book-cover{min-height:128px}.home-book-grid .book-card.has-modern-cover .book-cover::after{padding:6px 7px;font-size:11px}}
.home-book-grid .book-card.has-modern-cover{min-height:238px}.home-book-grid .book-card.has-modern-cover .book-cover{min-height:213px;aspect-ratio:2 / 3}@media(max-width:520px){.home-book-grid .book-card.has-modern-cover{min-height:182px}.home-book-grid .book-card.has-modern-cover .book-cover{min-height:162px;aspect-ratio:2 / 3}}

/* Extension catalog: 27 course-specific portrait illustrations with a web-text lesson overlay. */
.extension-card:has(.extension-cover-portrait){grid-template-columns:126px minmax(0,1fr) 36px;gap:15px;min-height:210px;padding:12px}.extension-cover.extension-cover-portrait{position:relative;width:122px;min-height:183px;aspect-ratio:2 / 3;overflow:hidden;padding:0;border-radius:7px;background-color:#dfe9f2;background-image:var(--extension-cover-image);background-position:center;background-repeat:no-repeat;background-size:cover;box-shadow:none}.extension-cover.extension-cover-portrait::after{content:"";position:absolute;right:0;bottom:0;left:0;height:34%;background:linear-gradient(transparent,rgba(6,27,55,.82))}.extension-cover-portrait .extension-cover-label{position:absolute;z-index:1;right:9px;bottom:8px;left:9px;color:#fff;font-size:12px;font-weight:800;letter-spacing:0;line-height:1.25;text-shadow:0 1px 2px rgba(0,0,0,.38)}.extension-card:has(.extension-cover-portrait) .extension-card-info{align-self:center;min-width:0}.extension-card:has(.extension-cover-portrait) .project-kicker{display:block;line-height:1.55}.extension-card:has(.extension-cover-portrait) h2{font-size:19px}.extension-card:has(.extension-cover-portrait) .circle-action{align-self:center}.extension-card:has(.extension-cover-portrait) .card-favorite{top:12px;right:12px}@media(max-width:560px){.extension-card:has(.extension-cover-portrait){grid-template-columns:102px minmax(0,1fr) 34px;gap:11px;min-height:164px;padding:10px}.extension-cover.extension-cover-portrait{width:96px;min-height:144px}.extension-cover-portrait .extension-cover-label{right:7px;bottom:6px;left:7px;font-size:11px}.extension-card:has(.extension-cover-portrait) h2{font-size:16px}.extension-card:has(.extension-cover-portrait) .project-kicker{font-size:11px}.extension-card:has(.extension-cover-portrait) .card-favorite{display:none}}
.extension-card.has-extra-actions{grid-template-columns:126px minmax(0,1fr) auto;cursor:default}.extension-card-actions{display:flex;flex-direction:column;gap:7px;align-items:stretch}.extension-card-actions .btn{padding:9px 12px;white-space:nowrap;font-size:13px}.extension-study-page{max-width:1120px;margin:20px auto}.extension-study-card{padding:26px}.extension-study-card .dialog-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border-bottom:1px solid var(--line);text-align:left}.extension-study-card .dialog-card span{color:var(--muted)}@media(max-width:560px){.extension-card.has-extra-actions{grid-template-columns:102px minmax(0,1fr);gap:11px}.extension-card.has-extra-actions .extension-card-actions{grid-column:2;align-items:flex-start;flex-direction:row;flex-wrap:wrap}.extension-card-actions .btn{padding:8px 10px;font-size:12px}.extension-study-card{padding:16px}.extension-study-card .dialog-card{grid-template-columns:30px minmax(0,1fr)}.extension-study-card .dialog-card .btn{grid-column:2;justify-self:start}}

/* Textbook-sync entry cards use portrait cover art; list cards stay cover-free. */
.vocabulary-card.has-cover{grid-template-columns:76px minmax(0,1fr) 38px;gap:16px;padding:14px}.vocabulary-card-cover{width:76px;height:116px;object-fit:cover;border-radius:6px;background:#e8eef5}.vocabulary-card.has-cover .vocabulary-card-main{min-width:0}.vocabulary-card.has-cover .vocabulary-card-main h3{line-height:1.25}.vocabulary-card.has-cover .circle-action{justify-self:end}@media(max-width:520px){.vocabulary-card.has-cover{grid-template-columns:58px minmax(0,1fr) 32px;gap:12px;padding:12px}.vocabulary-card-cover{width:58px;height:88px}.vocabulary-card.has-cover h3{font-size:16px}.vocabulary-card.has-cover p{font-size:12px}}

/* B: compact fingertip pads keep the keyboard guide clear on tablet screens. */
.study-keyboard-hands{display:flex;justify-content:center;gap:24px;min-height:27px;margin:8px 0 0}.study-hand{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:4px;width:72px;height:27px;padding:0 0 3px;border-bottom:8px solid #3b536f;border-radius:0 0 13px 13px}.study-palm{display:none}.study-finger{display:block;width:10px;height:19px;border-radius:8px 8px 4px 4px;background:linear-gradient(180deg,#8ea6c6,#58728f);box-shadow:inset 0 -2px rgba(24,49,78,.18);transition:background .14s ease,transform .14s ease,box-shadow .14s ease}.study-finger:nth-child(1){height:14px}.study-finger:nth-child(2){height:18px}.study-finger:nth-child(3){height:22px}.study-finger:nth-child(4){height:19px}.study-finger:nth-child(5){display:none}.study-finger.is-target{height:25px;background:linear-gradient(180deg,#6de3d5,#24a7a6);box-shadow:0 0 0 3px rgba(78,217,205,.16),inset 0 -2px rgba(11,107,108,.25);transform:translateY(-3px);animation:study-finger-tap .75s ease-in-out infinite alternate}.study-hand-right .study-finger.is-target{transform:translateY(-3px)}@keyframes study-finger-tap{to{transform:translateY(-7px)}}.study-hand-right .study-finger.is-target{animation-name:study-finger-tap-right}@keyframes study-finger-tap-right{to{transform:translateY(-7px)}}@media(max-width:520px){.study-keyboard-hands{gap:14px;transform:scale(.9);margin:4px auto -1px}}

/* Mirror the right-hand guide so it is visibly a right hand. */
.study-hand-right{transform:scaleX(-1)}

/* Sentence analysis is an optional secondary aid below the original English. */
.typing-analysis-toggle{display:flex;align-items:center;gap:10px;min-width:0}.typing-analysis-toggle>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-toggle{width:auto!important;min-width:44px!important;padding:0 9px!important;font-size:12px!important}.sentence-analysis-panel{max-width:760px;margin:10px auto 14px}.sentence-analysis-panel .ket-pilot{margin:0;padding:8px 10px;border-radius:7px}.sentence-analysis-panel .ket-pilot-head{margin-bottom:6px;font-size:11px}.sentence-analysis-panel .ket-pilot-head small{font-size:11px}.sentence-analysis-panel .ket-analysis-line{gap:5px}.sentence-analysis-panel .ket-token{min-height:38px;gap:3px;padding:5px 6px}.sentence-analysis-panel .ket-token-word{font-size:14px}.sentence-analysis-panel .ket-role{padding:1px 4px;font-size:10px}.sentence-analysis-panel .ket-punctuation{min-height:28px;font-size:16px}@media(max-width:640px){.typing-analysis-toggle{gap:7px}.analysis-toggle{min-width:40px!important;padding:0 7px!important}.sentence-analysis-panel{margin:8px auto 12px}.sentence-analysis-panel .ket-pilot{padding:8px}.sentence-analysis-panel .ket-token{min-height:35px;padding:4px 5px}.sentence-analysis-panel .ket-token-word{font-size:13px}}

/* Persistent keyboard reference for the six study controls. */
.keyboard-nav-selected{outline:3px solid #6d63e8!important;outline-offset:3px;border-color:#6d63e8!important;box-shadow:0 12px 28px rgba(83,74,209,.24)!important;transform:translateY(-2px)}
.learning-category-shell .home-section{position:relative}.hub-keyboard-guide{position:absolute;top:5px;right:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px 12px;max-width:420px;padding:10px 12px;border:1px solid #d8ddea;border-radius:8px;background:#fff;color:#66728a;font-size:12px;line-height:1.4;box-shadow:0 7px 18px rgba(42,55,83,.05)}.hub-keyboard-guide strong{color:#273550;font-size:13px}.hub-keyboard-guide span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.hub-keyboard-guide kbd{min-width:21px;padding:2px 5px;border:1px solid #cbd4e6;border-radius:4px;background:#f3f5fa;color:#374766;font:700 11px/1.25 Inter,"PingFang SC","Microsoft YaHei",sans-serif;text-align:center}@media(max-width:860px){.hub-keyboard-guide{position:static;justify-content:flex-start;max-width:none;margin:0 0 14px}}
.page-head:has(.lesson-catalog-guide){position:relative;min-height:54px;padding-right:430px}.lesson-catalog-guide{position:absolute;top:0;right:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px 12px;max-width:420px;padding:10px 12px;border:1px solid #d8ddea;border-radius:8px;background:#fff;color:#66728a;font-size:12px;line-height:1.4;box-shadow:0 7px 18px rgba(42,55,83,.05)}.lesson-catalog-guide strong{color:#273550;font-size:13px}.lesson-catalog-guide span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.lesson-catalog-guide kbd{min-width:21px;padding:2px 5px;border:1px solid #cbd4e6;border-radius:4px;background:#f3f5fa;color:#374766;font:700 11px/1.25 Inter,"PingFang SC","Microsoft YaHei",sans-serif;text-align:center}@media(max-width:860px){.page-head:has(.lesson-catalog-guide){padding-right:0;align-items:flex-start}.lesson-catalog-guide{position:static;justify-content:flex-start;max-width:none;margin-left:auto}}
.typing-shortcuts{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:11px 16px;max-width:1040px;margin:38px auto 0;padding:15px 20px;border:1px solid #3a4b6c;border-radius:8px;background:#151d2d;color:#c7d2e7;font-size:15px;line-height:1.45}.typing-shortcuts-title{color:#fff;font-size:16px;font-weight:800}.typing-shortcuts span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.typing-shortcuts kbd{min-width:28px;padding:4px 7px;border:1px solid #5b6b8d;border-radius:4px;background:#202b40;color:#fff;font:700 13px/1.25 Inter,"PingFang SC","Microsoft YaHei",sans-serif;text-align:center;box-shadow:inset 0 -1px rgba(0,0,0,.3)}@media(max-width:640px){.typing-shortcuts{justify-content:flex-start;gap:9px 12px;margin-top:28px;padding:13px 14px;font-size:13px}.typing-shortcuts-title{width:100%;font-size:15px}.typing-shortcuts kbd{min-width:25px;font-size:12px}}

/* KET reading sentence-analysis pilot. */
.ket-annotated-sentence{max-width:980px!important;margin-left:auto;margin-right:auto}.ket-pilot{max-width:980px;margin:0 auto 16px;padding:15px 16px;border:1px solid #33415b;border-radius:8px;background:#121c2d;text-align:left}.ket-pilot-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#e6ecfa;font-size:13px;font-weight:700}.ket-pilot-head span{color:#a9a5ff}.ket-pilot-head small,.ket-pilot>p{margin:10px 0 0;color:#90a0bb;font-size:12px;font-weight:400}.ket-pilot-head small{margin:0}.ket-analysis-line{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 6px}.ket-token{--ket:#8b9ab6;display:flex;min-height:55px;flex-direction:column;justify-content:flex-end;gap:4px;padding:7px 8px 6px;border:1px solid color-mix(in srgb,var(--ket) 62%,#23324b);border-radius:6px;background:#172338;color:#f7f9ff;font:inherit;cursor:pointer;transition:border-color .15s ease,background .15s ease}.ket-token:hover,.ket-token:focus-visible{border-color:var(--ket);background:#20304a;outline:none}.ket-token-word{font-size:17px;line-height:1.05;font-weight:750}.ket-role{align-self:flex-start;padding:2px 5px;border-radius:4px;background:var(--ket);color:#fff;font-size:11px;line-height:1.3;font-weight:700}.ket-punctuation{display:inline-flex;min-width:7px;align-items:center;min-height:32px;color:#94a5c4;font-size:20px}.role-subject{--ket:#6578df}.role-verb{--ket:#2b9d91}.role-object{--ket:#de8a47}.role-attribute{--ket:#ad62b0}.role-adverbial{--ket:#4e94d5}.role-complement{--ket:#b98540}.role-prohibition{--ket:#ce6270}.role-function{--ket:#7c8da8}
.post-sentence-review{margin-top:8vh;max-width:1000px}.sentence-review-kicker{color:#a9a5ff;font-size:14px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.sentence-review-english{margin:14px auto 22px;color:#fff;font-size:clamp(30px,4vw,52px);font-weight:750;line-height:1.2}.sentence-review-analysis{margin:0 auto;max-width:1000px}.sentence-review-analysis .ket-pilot{padding:20px 22px;text-align:center}.sentence-review-analysis .ket-pilot-head{justify-content:center}.sentence-review-analysis .ket-pilot-head small{display:none}.sentence-review-analysis .ket-analysis-line{justify-content:center;gap:10px 8px}.sentence-review-analysis .ket-token{min-height:116px;min-width:82px;align-items:center;gap:8px;padding:11px 13px}.sentence-review-analysis .ket-role{align-self:center;font-size:13px;padding:3px 7px}.sentence-review-analysis .ket-token-word{font-size:clamp(27px,3.4vw,43px);line-height:1}.sentence-review-analysis .ket-punctuation{font-size:30px}.sentence-review-zh{margin:18px 0 24px;color:#c1cbdf;font-size:clamp(20px,2.4vw,28px)}.sentence-review-actions{display:flex;justify-content:center;gap:12px}.sentence-review-actions .btn{min-width:128px}.analysis-toggle{display:none!important}
.ket-word-detail{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(4,8,16,.72)}.ket-word-detail-card{position:relative;width:min(420px,100%);padding:26px;border:1px solid #d9e2ef;border-radius:8px;background:#f9fbff;color:#152239;box-shadow:0 18px 52px rgba(0,0,0,.34)}.ket-word-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:1px solid #d7e0ed;border-radius:6px;background:#fff;color:#485873;font-size:22px;line-height:1;cursor:pointer}.ket-detail-role{display:inline-block;margin:0 0 11px;padding:3px 8px;border-radius:4px;background:#e9e8ff;color:#514bd5;font-size:12px;font-weight:700}.ket-word-detail h3{margin:0;color:#10213c;font-size:32px;line-height:1.1}.ket-detail-ipa{margin:8px 0 4px;color:#526483;font-size:19px}.ket-detail-pos{margin:0 0 16px;color:#6b7b96;font-size:14px}.ket-detail-meaning{margin:0;color:#1e3152;font-size:19px;font-weight:750}.ket-detail-note{margin:10px 0 20px;color:#64748d;font-size:14px;line-height:1.6}.ket-detail-speak{padding:9px 14px;border:0;border-radius:6px;background:#5b57ed;color:#fff;font:inherit;font-weight:700;cursor:pointer}.ket-detail-speak:hover{background:#4945d3}@media(max-width:640px){.ket-pilot{padding:12px}.ket-pilot-head{align-items:flex-start;flex-direction:column;gap:4px}.ket-token{min-height:49px;padding:6px}.ket-token-word{font-size:15px}.post-sentence-review{margin-top:5vh}.sentence-review-english{font-size:29px}.sentence-review-analysis .ket-pilot{padding:13px}.sentence-review-analysis .ket-token{min-height:82px;min-width:66px;padding:8px}.sentence-review-analysis .ket-token-word{font-size:25px}.sentence-review-analysis .ket-role{font-size:11px}.sentence-review-actions{flex-wrap:wrap}.ket-word-detail-card{padding:22px}.ket-word-detail h3{font-size:28px}}

/* Learning card service plans. */
.learning-card-page{position:relative;max-width:1260px;margin:0 auto;padding:30px;border:1px solid #243752;border-radius:8px;background:linear-gradient(135deg,#111b2d 0%,#16263c 100%);color:#f7f9ff;overflow:hidden}.learning-card-page::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(120deg,transparent 48%,rgba(112,129,158,.4) 49%,transparent 50%),linear-gradient(60deg,transparent 48%,rgba(112,129,158,.3) 49%,transparent 50%);background-size:90px 90px}.learning-card-header,.learning-card-tabs,.learning-card-plans,.learning-card-service{position:relative}.learning-card-header h1{margin:7px 0 5px;font-size:32px;line-height:1.15;color:#fff}.learning-card-header p{margin:0;color:#aebbd0;font-size:14px}.learning-card-tabs{display:flex;gap:7px;margin:22px 0 14px}.learning-card-tabs span{padding:7px 14px;border-radius:5px;background:#263b5d;color:#cbd6e9;font-size:13px;font-weight:700}.learning-card-tabs span:nth-child(2){background:#2d3353}.learning-card-tabs span:nth-child(3){background:#4a3b23;color:#ffd767}.learning-card-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.learning-plan{display:flex;flex-direction:column;min-width:0;padding:18px;border:1px solid #324964;border-radius:8px;background:rgba(19,34,55,.94);box-shadow:0 14px 30px rgba(4,10,21,.2)}.learning-plan-small{border-color:#474d7c}.learning-plan-large{border-color:#b3923c;background:rgba(31,39,48,.95)}.learning-plan-label{margin-bottom:6px;color:#a7bbd5;font-size:11px;font-weight:800;letter-spacing:1px}.learning-plan-large .learning-plan-label{color:#f4c85e}.learning-plan h2{margin:0;color:#fff;font-size:22px;line-height:1.25}.learning-plan-summary{min-height:38px;margin:6px 0 14px;color:#adbbd0;font-size:13px;line-height:1.45}.learning-plan-price{display:flex;align-items:baseline;gap:7px;min-height:52px;padding:10px 12px;border:1px solid #3b5474;border-radius:6px;background:#1d3554}.learning-plan-price strong{font-size:26px;line-height:1;color:#fff}.learning-plan-price span{color:#c6d1e2;font-size:13px}.learning-plan-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:52px}.learning-plan-prices div{display:grid;gap:3px;padding:9px 10px;border:1px solid #3b5474;border-radius:6px;background:#1d3554}.learning-plan-prices span{color:#9fb0ca;font-size:12px}.learning-plan-prices strong{color:#fff;font-size:16px;white-space:nowrap}.learning-plan-action{width:100%;min-height:40px;margin:10px 0 12px;border:0;border-radius:6px;background:#6473ef;color:#fff;font:inherit;font-weight:700;cursor:pointer;transition:background .16s ease,transform .16s ease}.learning-plan-action:hover,.learning-plan-action:focus-visible{background:#7b86f5;outline:2px solid #b5bafa;outline-offset:2px;transform:translateY(-1px)}.learning-plan-action.is-current{background:#4666d2}.learning-plan-action.is-highlight{background:#f0c655;color:#192333}.learning-plan-action.is-highlight:hover,.learning-plan-action.is-highlight:focus-visible{background:#ffda71;outline-color:#ffe29a}.learning-free-catalog{padding-top:2px;border-top:1px solid #334962}.learning-free-catalog strong{display:block;margin:11px 0 8px;color:#e8eef9;font-size:13px}.learning-free-catalog div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.learning-free-catalog span{padding:5px 6px;border-radius:4px;background:#213754;color:#d2def0;font-size:11px;line-height:1.35}.learning-plan-features{display:grid;gap:10px;margin:1px 0 12px;padding:0;list-style:none}.learning-plan-features li{position:relative;padding-left:20px;color:#dfe7f3;font-size:14px;line-height:1.35}.learning-plan-features li::before{content:"✓";position:absolute;left:1px;color:#45d5be;font-weight:800}.learning-plan-exclusion{margin:0 0 10px;color:#f5ca5a;font-size:12px;line-height:1.4}.learning-plan-refund{margin:auto 0 0;padding:9px 10px;border-radius:5px;background:#472e38;color:#ffbab5;font-size:12px;font-weight:700;line-height:1.45}.learning-card-service{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding:15px 17px;border:1px solid #30445e;border-radius:8px;background:rgba(13,25,42,.8)}.learning-card-service>div:first-child{display:grid;gap:3px}.learning-card-service strong{font-size:14px}.learning-card-service span{color:#aab8ce;font-size:12px}.learning-card-service-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.learning-card-service button{min-height:34px;padding:0 12px;border:1px solid #50627d;border-radius:5px;background:transparent;color:#e8eef9;font:inherit;font-size:13px;cursor:pointer}.learning-card-service button:hover,.learning-card-service button:focus-visible{border-color:#8c99f8;color:#fff;outline:none}.learning-card-service .is-service-primary{border-color:#f0c655;background:#f0c655;color:#1d2939;font-weight:700}.learning-card-toast{position:absolute;z-index:2;top:18px;right:18px;max-width:300px;padding:10px 13px;border:1px solid #7484f3;border-radius:6px;background:#263b63;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.28);font-size:13px;line-height:1.4}@media(max-width:1040px){.learning-card-plans{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-plan-large{grid-column:span 2}.learning-card-page{padding:24px}}@media(max-width:680px){.learning-card-page{padding:20px 16px;border-radius:0}.learning-card-header h1{font-size:27px}.learning-card-tabs{overflow:auto;padding-bottom:2px}.learning-card-tabs span{white-space:nowrap}.learning-card-plans{grid-template-columns:1fr}.learning-plan-large{grid-column:auto}.learning-card-service{align-items:flex-start;flex-direction:column}.learning-card-service-actions{justify-content:flex-start}.learning-card-toast{top:14px;right:14px;left:14px;max-width:none}.learning-free-catalog div{grid-template-columns:1fr}.learning-plan-prices strong{font-size:15px}}

/* Full-bleed learning card page. */
.learning-layout:has(.learning-card-page),.learning-main:has(.learning-card-page){background:#111b2d}.learning-layout .app-shell.learning-card-shell{max-width:none;min-height:100vh;margin:0;padding:0}.learning-card-page{width:100%;max-width:none;min-height:100vh;margin:0;padding:clamp(24px,4vw,52px) clamp(20px,4vw,64px) 42px;border:0;border-radius:0}@media(max-width:700px){.learning-layout .app-shell.learning-card-shell{min-height:calc(100vh - 56px)}.learning-card-page{min-height:calc(100vh - 56px);padding:24px 16px 36px}}

/* Global learning services. */
.learning-main{position:relative}.learning-service-bar{position:absolute;z-index:8;top:14px;right:24px;display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #314966;border-radius:6px;background:rgba(12,28,52,.96);box-shadow:0 10px 22px rgba(8,22,43,.18)}.learning-service-bar button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;border:1px solid #58708e;border-radius:5px;background:#172b47;color:#f0f5ff;font:inherit;font-size:13px;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.learning-service-bar button:hover,.learning-service-bar button:focus-visible{border-color:#aeb9ff;background:#273f66;outline:2px solid rgba(176,185,255,.45);outline-offset:1px;transform:translateY(-1px)}.learning-service-bar button.is-primary{border-color:#f3c94f;background:#f3c94f;color:#172238;font-weight:700}.learning-service-bar button.is-primary:hover,.learning-service-bar button.is-primary:focus-visible{border-color:#ffe28a;background:#ffda70;outline-color:rgba(255,226,138,.5)}.learning-service-glyph{display:grid;place-items:center;width:15px;height:15px;font-size:16px;line-height:1}.learning-service-toast{position:fixed;z-index:30;top:72px;right:26px;max-width:280px;padding:10px 13px;border:1px solid #6c7cf1;border-radius:6px;background:#233961;color:#fff;box-shadow:0 12px 28px rgba(10,22,45,.25);font-size:13px;line-height:1.4}.typing-body .learning-service-bar{position:fixed;top:14px;right:24px}@media(max-width:900px){.learning-service-bar{top:12px;right:16px}.learning-service-bar button{padding:0 9px;font-size:12px}.typing-body .learning-service-bar{top:12px;right:16px}}@media(max-width:700px){.learning-service-bar{position:sticky;top:0;right:auto;justify-content:flex-end;overflow-x:auto;margin:0;padding:8px 12px;border-width:0 0 1px;border-radius:0;box-shadow:none}.learning-service-bar button{flex:0 0 auto}.learning-service-toast{top:70px;right:14px;left:14px;max-width:none}.typing-body .learning-service-bar{position:sticky;top:0;right:auto}}

/* Service bar color and homepage spacing adjustments. */
.learning-service-bar{border-color:#cbd7e7;background:rgba(248,250,255,.98);box-shadow:0 8px 20px rgba(40,58,88,.14)}.learning-service-bar button{border-color:#c9d6e6;background:#fff;color:#1c2d47}.learning-service-bar button:hover,.learning-service-bar button:focus-visible{border-color:#6f7ce5;background:#f1f4ff;color:#172846;outline-color:rgba(111,124,229,.32)}.learning-service-glyph{color:#5365d8}.learning-service-bar button.is-primary{border-color:#e5b83c;background:#f3c94f;color:#172238}.learning-service-bar button.is-primary:hover,.learning-service-bar button.is-primary:focus-visible{border-color:#e0ae26;background:#ffd96b;outline-color:rgba(229,184,60,.34)}.learning-main:has(.learning-service-bar.is-home) .app-shell{padding-top:84px}@media(max-width:700px){.learning-main:has(.learning-service-bar.is-home) .app-shell{padding-top:20px}}

/* Full-screen partner plan. */
.learning-layout:has(.partner-plan-page),.learning-main:has(.partner-plan-page){background:#0d1424}.learning-layout .app-shell.partner-plan-shell{max-width:none;margin:0;padding:0}.partner-plan-page{min-height:100vh;padding:82px clamp(16px,4vw,58px) 118px;background:#0d1424;color:#14264a;overflow:hidden}.partner-panel{position:relative;max-width:1180px;min-height:560px;margin:24px auto;padding:clamp(26px,4vw,52px);overflow:hidden;border:1px solid #cfd9ef;border-radius:14px;background:linear-gradient(135deg,#f9fbff 0%,#e9eeff 100%);box-shadow:0 18px 44px rgba(5,14,34,.22)}.partner-panel::after{content:"";position:absolute;right:-130px;top:-160px;width:430px;height:430px;border:1px solid rgba(115,101,238,.16);border-radius:50%;box-shadow:0 0 0 34px rgba(115,101,238,.04),0 0 0 68px rgba(115,101,238,.03);pointer-events:none}.partner-panel-number{position:absolute;top:25px;right:34px;color:#4665f3;font-size:13px;font-weight:800}.partner-eyebrow{display:inline-flex;align-items:center;gap:8px;color:#4665f3;font-size:12px;font-weight:800;letter-spacing:.12em}.partner-eyebrow::before{content:"";width:20px;height:3px;border-radius:2px;background:#f5c84f}.partner-hero-panel{display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:42px;min-height:650px}.partner-hero-copy{position:relative;z-index:1}.partner-hero-copy h1{max-width:640px;margin:18px 0 16px;color:#101a30;font-size:clamp(40px,5vw,76px);line-height:1.08}.partner-hero-copy h1 em,.partner-section-head h2 em,.partner-final-panel h2 em{color:#4665f3;font-style:normal}.partner-hero-copy>p{max-width:650px;color:#5e7092;font-size:18px;line-height:1.8}.partner-price-pill{display:inline-flex;align-items:baseline;gap:8px;margin:6px 0 22px;padding:13px 18px;border:1px solid #ced9f4;border-radius:10px;background:#fff;color:#4665f3;font-size:30px;font-weight:900;box-shadow:0 8px 18px rgba(49,75,164,.08)}.partner-price-pill small{color:#7384a4;font-size:14px;font-weight:600}.partner-point-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}.partner-point-grid>div{padding:14px 10px;border:1px solid #d2ddf2;border-radius:9px;background:rgba(255,255,255,.72);text-align:center}.partner-point-grid i{display:grid;place-items:center;width:32px;height:32px;margin:0 auto 8px;border-radius:50%;background:#4665f3;color:#fff;font-style:normal}.partner-point-grid>div:nth-child(2) i{background:#ff8a32}.partner-point-grid>div:nth-child(3) i{background:#7858ee}.partner-point-grid>div:nth-child(4) i{background:#20b79b}.partner-point-grid b,.partner-point-grid small{display:block}.partner-point-grid b{font-size:13px}.partner-point-grid small{margin-top:4px;color:#6b7c9b;font-size:11px}.partner-hero-visual{position:relative;z-index:1;min-height:390px;padding:28px;border:1px solid #cfdbf1;border-radius:18px;background:rgba(255,255,255,.7);box-shadow:0 22px 42px rgba(48,65,126,.1)}.partner-hero-visual>span{position:absolute;right:25px;top:21px;padding:8px 11px;border-radius:8px;background:#f5c84f;color:#182541;font-weight:800;font-size:12px}.partner-hero-visual>div{margin:28px 0 0;padding:24px;border-radius:12px;background:#101a30;color:#fff;box-shadow:0 18px 28px rgba(18,31,68,.3)}.partner-hero-visual small{color:#aebce0}.partner-hero-visual strong{display:block;margin:38px 0 12px;font-size:31px;line-height:1.2}.partner-hero-visual strong em{color:#8d9dff;font-style:normal}.partner-hero-visual p{color:#aebce0;line-height:1.7}.partner-hero-visual b{display:block;height:118px;margin-top:22px;border-radius:8px;background:linear-gradient(150deg,#465cf4,#8756eb);position:relative;overflow:hidden}.partner-hero-visual b::after{content:"";position:absolute;left:22px;right:22px;bottom:26px;height:46px;border-top:3px solid #f5c84f;border-radius:50%;transform:skewY(-9deg)}.partner-section-head{position:relative;z-index:1;max-width:850px}.partner-section-head h2{margin:13px 0 10px;color:#101a30;font-size:clamp(28px,4vw,48px);line-height:1.15}.partner-section-head p{color:#627393;font-size:16px;line-height:1.7}.partner-feature-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:34px}.partner-feature-grid article,.partner-benefit-grid article{padding:20px;border:1px solid #d7e0f1;border-radius:10px;background:rgba(255,255,255,.83)}.partner-feature-grid article>b{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#e8edff;color:#4665f3}.partner-feature-grid h3{margin:12px 0 7px;color:#4665f3;font-size:18px}.partner-feature-grid p,.partner-benefit-grid p{margin:0;color:#637492;font-size:13px;line-height:1.65}.partner-panel-foot{position:absolute;right:46px;bottom:34px;left:46px;z-index:1;padding:14px 18px;border-radius:9px;background:linear-gradient(90deg,#ebefff,#dedcff);color:#4c5bc4;text-align:center;font-weight:800}.partner-benefit-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}.partner-benefit-grid article{min-height:150px}.partner-benefit-grid b{display:flex;align-items:center;gap:10px;font-size:17px}.partner-benefit-grid b i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#4665f3;color:#fff;font-size:12px;font-style:normal}.partner-money-board{position:relative;z-index:1;display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:30px}.partner-money-table{border:1px solid #d5def0;border-radius:10px;background:#fff;overflow:hidden}.partner-money-table h3{margin:0;padding:17px 20px;background:#ebefff;color:#4665f3}.partner-money-table table{width:100%;border-collapse:collapse}.partner-money-table th,.partner-money-table td{padding:15px 18px;border-bottom:1px solid #edf1f8;text-align:left}.partner-money-table th{color:#647599;font-size:12px}.partner-money-table td{font-weight:800}.partner-money-table td:last-child{color:#4665f3;font-size:20px}.partner-money-highlight{display:flex;flex-direction:column;justify-content:center;padding:28px;border-radius:10px;background:linear-gradient(145deg,#475df2,#8a55e9);color:#fff}.partner-money-highlight small{color:#e3e7ff}.partner-money-highlight strong{margin:9px 0;font-size:54px;line-height:1}.partner-money-highlight span{font-size:15px;line-height:1.6}.partner-compare-grid,.partner-rules-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}.partner-compare-grid article,.partner-rules-grid article{padding:24px;border:1px solid #ced9f1;border-radius:10px;background:#fff}.partner-compare-grid article h3,.partner-rules-grid h3{margin:0 0 18px;color:#4665f3;font-size:22px}.partner-compare-grid ul,.partner-rules-grid ul{display:grid;gap:13px;margin:0;padding:0;list-style:none}.partner-compare-grid li,.partner-rules-grid li{position:relative;padding-left:28px;line-height:1.45;font-size:14px}.partner-compare-grid li::before,.partner-rules-grid li::before{content:"✓";position:absolute;left:0;top:0;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#4665f3;color:#fff;font-size:12px;font-weight:800}.partner-rules-grid article.is-warm,.partner-example-grid .is-warm{border-color:#ffd4a4;background:#fffaf4}.partner-rules-grid article.is-warm h3,.partner-example-grid .is-warm b{color:#ff8a32}.partner-rules-grid article.is-warm li::before{content:"×";background:#ff8a32}.partner-example-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.partner-example-grid>div{padding:18px 20px;border-radius:10px;background:#edf2ff}.partner-example-grid b{display:block;margin-bottom:8px;color:#4665f3}.partner-example-grid strong{font-size:21px}.partner-final-panel{display:grid;grid-template-columns:1fr .8fr;align-items:center;gap:30px;min-height:620px}.partner-final-panel>div:first-of-type{position:relative;z-index:1}.partner-final-panel h2{max-width:650px;margin:14px 0;color:#101a30;font-size:clamp(34px,5vw,66px);line-height:1.1}.partner-final-panel p{color:#627393;font-size:17px;line-height:1.8}.partner-final-panel ul{display:grid;gap:9px;margin:25px 0;padding:0;list-style:none}.partner-final-panel li{padding:11px 14px;border:1px solid #d4def1;border-radius:7px;background:#fff;font-weight:700}.partner-qr-panel{position:relative;z-index:1;padding:24px;border:1px solid #ccd8ee;border-radius:12px;background:#fff;text-align:center;box-shadow:0 15px 35px rgba(46,61,118,.12)}.partner-qr-panel img{display:block;width:min(100%,250px);margin:auto}.partner-qr-panel b,.partner-qr-panel small{display:block}.partner-qr-panel b{margin-top:14px;color:#101a30;font-size:18px}.partner-qr-panel small{margin-top:6px;color:#6b7c9b;font-size:13px}.partner-plan-paybar{position:fixed;right:0;bottom:0;left:232px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px clamp(18px,4vw,56px);background:rgba(14,18,29,.98);color:#fff;box-shadow:0 -10px 30px rgba(7,12,24,.25)}.partner-plan-paybar>strong{display:flex;align-items:center;gap:10px;white-space:nowrap}.partner-plan-paybar>strong i{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#4665f3;font-style:normal}.partner-plan-paybar label{display:flex;align-items:center;gap:7px;color:#d6dded;font-size:13px}.partner-plan-paybar label button{padding:0;border:0;background:transparent;color:#98a7ff;font:inherit;cursor:pointer}.partner-pay-action{min-width:142px;min-height:42px;border:0;border-radius:22px;background:linear-gradient(90deg,#6688ff,#a652ec);color:#fff;font:inherit;font-weight:800;cursor:pointer}.partner-plan-toast{position:fixed;z-index:30;right:26px;bottom:82px;max-width:300px;padding:10px 13px;border:1px solid #6c7cf1;border-radius:6px;background:#233961;color:#fff;box-shadow:0 12px 28px rgba(10,22,45,.25);font-size:13px;line-height:1.4}.partner-plan-agreement{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;background:rgba(5,12,25,.62)}.partner-plan-agreement[hidden]{display:none}.partner-agreement-card{width:min(720px,100%);max-height:min(80vh,760px);overflow:auto;border-radius:12px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.28)}.partner-agreement-card header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e3e8f2}.partner-agreement-card header h3{margin:0}.partner-agreement-card header button{border:0;background:transparent;color:#526486;font-size:24px;cursor:pointer}.partner-agreement-card>div{padding:22px;color:#536683;line-height:1.75}.partner-agreement-card h4{margin:18px 0 6px;color:#101a30}.partner-agreement-note{color:#7b8cab;font-size:13px}@media(max-width:900px){.partner-hero-panel,.partner-final-panel{grid-template-columns:1fr}.partner-hero-panel{min-height:0}.partner-feature-grid{grid-template-columns:repeat(2,1fr)}.partner-benefit-grid{grid-template-columns:repeat(2,1fr)}.partner-money-board{grid-template-columns:1fr}.partner-money-highlight{min-height:220px}.partner-panel-foot{position:static;margin-top:28px}.partner-plan-paybar{left:0;flex-wrap:wrap;gap:10px}.partner-plan-paybar label{order:3;width:100%;justify-content:center}.partner-pay-action{min-width:125px}.partner-plan-page{padding-right:16px;padding-left:16px}}@media(max-width:600px){.partner-plan-page{padding:70px 10px 172px}.partner-panel{min-height:0;margin:14px 0;padding:24px 18px;border-radius:10px}.partner-panel-number{top:22px;right:18px}.partner-hero-copy h1{font-size:40px}.partner-hero-copy>p{font-size:15px}.partner-point-grid,.partner-feature-grid,.partner-benefit-grid,.partner-compare-grid,.partner-rules-grid,.partner-example-grid{grid-template-columns:1fr}.partner-price-pill{font-size:25px}.partner-hero-visual{min-height:320px}.partner-money-table th,.partner-money-table td{padding:11px 9px;font-size:12px}.partner-money-table td:last-child{font-size:16px}.partner-money-highlight strong{font-size:45px}.partner-plan-paybar{padding:10px 14px}.partner-plan-paybar>strong,.partner-pay-action{width:100%}.partner-plan-paybar label{justify-content:flex-start}.partner-pay-action{min-height:42px}.partner-plan-toast{right:14px;bottom:154px;left:14px;max-width:none}}

/* New Concept Book 1 vocabulary is organized by its original Lesson number. */
.nce-lesson-picker{max-width:1120px}.nce-lesson-picker-head{margin-bottom:18px}.nce-lesson-picker-head p{margin:7px 0 0;color:var(--muted);font-size:14px}.nce-lesson-tabs{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px}.nce-lesson-tab{display:grid;gap:5px;min-height:66px;padding:10px;border:1px solid #d9e1ed;border-radius:8px;background:#fff;color:#1b2a43;text-align:left;font:inherit;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.nce-lesson-tab:hover,.nce-lesson-tab:focus-visible{border-color:#7065e8;box-shadow:0 8px 18px rgba(58,62,138,.13);outline:none;transform:translateY(-2px)}.nce-lesson-tab b{font-size:14px;line-height:1.2}.nce-lesson-tab small{color:#697791;font-size:12px}.nce-lesson-tab.is-empty{border-style:dashed;background:#f6f8fb;color:#9ba7ba;cursor:not-allowed}.nce-lesson-tab.is-empty small{color:#a7b1c0}@media(max-width:560px){.nce-lesson-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.nce-lesson-tab{min-height:58px;padding:8px}.nce-lesson-tab b{font-size:12px}.nce-lesson-tab small{font-size:11px}}
/* Retain fixed desktop navigation shell from the production hotfix. */
@media(min-width:701px){
.learning-layout{display:block;min-height:100vh;}
.learning-sidebar{position:fixed;top:0;bottom:0;left:0;width:232px;height:100vh;overflow:hidden;}
.learning-main{min-height:100vh;margin-left:232px;}
}
