.site-shell{min-height:100vh}body{background:linear-gradient(180deg,#eef2ff 0,#f6f7fb 320px,var(--bg) 100%)}.site-layout{display:flex;min-height:100vh}.site-main{flex:1;min-width:0;margin-left:236px;padding:26px 36px 56px;max-width:1160px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:236px;background:linear-gradient(180deg,#fff,#fbfcff);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:22px 16px 18px;z-index:60}.side-brand{display:flex;align-items:center;gap:10px;padding:0 6px 20px;border-bottom:1px solid var(--line)}.side-brand .brand-text{display:flex;flex-direction:column;line-height:1.25}.side-brand strong{font-size:var(--fs-lg);letter-spacing:-.2px}.side-brand small{color:var(--muted);font-size:var(--fs-xs)}.side-nav{display:flex;flex-direction:column;gap:6px;margin-top:16px;flex:1}.side-item{position:relative;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:14px;text-align:left;color:var(--ink-2);transition:background .16s ease,color .16s ease,transform .12s ease}.side-ico{width:34px;height:34px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;color:var(--ink-2);background:var(--gray-soft);transition:background .16s ease,color .16s ease,box-shadow .16s ease}.side-item-text{display:flex;flex-direction:column;line-height:1.3;min-width:0}.side-item-text strong{font-size:var(--fs-base);font-weight:600}.side-item-text small{font-size:11px;color:var(--muted)}.side-item:hover{background:var(--surface-2);transform:translate(1px)}.side-item:hover .side-ico{background:var(--brand-soft);color:var(--brand)}.side-item.active{background:linear-gradient(135deg,#eef2ff,#f3efff);color:var(--brand-dark)}.side-item.active .side-ico{background:linear-gradient(135deg,var(--brand),var(--grape));color:#fff;box-shadow:0 6px 14px #4f6ef752}.side-item.active .side-item-text strong{font-weight:700}.side-item.active .side-item-text small{color:var(--brand);opacity:.78}.side-bar{display:none;position:absolute;left:-16px;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--brand),var(--grape))}.side-item.active .side-bar{display:block}.side-foot{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}.side-user{display:flex;flex-direction:column;line-height:1.3}.side-user strong{font-size:14px}.side-user small{font-size:12px;color:var(--muted)}.side-foot-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.page-title{font-size:24px;letter-spacing:-.4px}.page-sub{font-size:13px;color:var(--muted);margin-top:2px}.page-head-right{display:flex;align-items:center;gap:12px}.page-date{font-size:13px;color:var(--muted)}.streak-pill.dark{background:var(--coral-soft);color:var(--coral);border:none;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.today-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:start}.today-col-main,.today-col-side{display:flex;flex-direction:column;gap:16px;min-width:0}.hero{position:relative;overflow:hidden;background:radial-gradient(520px 300px at 92% -10%,rgba(255,255,255,.3),transparent 62%),radial-gradient(420px 320px at 4% 110%,rgba(139,92,246,.55),transparent 60%),linear-gradient(135deg,#4f6ef7,#6558f6 58%,#8b5cf6);color:#fff;border-radius:var(--radius-lg);padding:26px 28px;box-shadow:0 18px 40px #4f6ef74d}.hero:after{content:"";position:absolute;width:260px;height:260px;right:-80px;top:-110px;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 65%)}.hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(255,255,255,.55) 1.2px,transparent 1.2px),radial-gradient(rgba(255,255,255,.35) 1px,transparent 1px);background-size:64px 64px,38px 38px;background-position:12px 8px,30px 26px;mask-image:linear-gradient(115deg,transparent 38%,#000 88%)}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;position:relative}.hero h1{font-size:25px;letter-spacing:-.5px}.hero .date{font-size:var(--fs-sm);opacity:.88;margin-top:5px}.streak-pill{background:#ffffff2e;border:1px solid rgba(255,255,255,.28);padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;backdrop-filter:blur(4px);flex:0 0 auto}.hero-body{display:flex;align-items:center;gap:22px;margin-top:22px}.ring-wrap{position:relative;width:108px;height:108px;flex:0 0 auto}.ring-wrap svg{transform:rotate(-90deg)}.ring-bg{fill:none;stroke:#ffffff38;stroke-width:9}.ring-fg{fill:none;stroke:#fff;stroke-width:9;stroke-linecap:round;transition:stroke-dashoffset .5s ease}.ring-label{position:absolute;inset:0;display:grid;place-items:center;text-align:center}.ring-label strong{font-size:22px;display:block;line-height:1.1}.ring-label span{font-size:11px;opacity:.8}.hero-nums{display:flex;gap:34px;flex:1}.hero-num strong{font-size:30px;font-variant-numeric:tabular-nums;display:block;line-height:1.15}.hero-num span{font-size:12px;opacity:.85}.hero-cta{margin-top:22px;width:100%;background:#fff;color:var(--brand-dark);font-weight:800;padding:14px;border-radius:14px;font-size:15px;box-shadow:0 8px 20px #141e462e;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s ease,box-shadow .15s ease}.hero-cta:hover{transform:translateY(-1px);box-shadow:0 12px 26px #141e4638}.hero-cta:active{transform:translateY(1px)}.hero-done{margin-top:18px;background:#ffffff29;border-radius:12px;padding:12px 14px;font-size:13px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px 12px 14px;text-align:center;box-shadow:var(--shadow-xs);transition:transform .15s ease,border-color .15s ease,box-shadow .2s ease;display:flex;flex-direction:column;align-items:center;gap:3px}.quick:hover{transform:translateY(-3px);border-color:var(--brand-tint);box-shadow:var(--shadow-md)}.quick-ico{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:var(--brand);background:var(--brand-soft);margin-bottom:4px;transition:transform .18s ease}.quick:hover .quick-ico{transform:scale(1.06) rotate(-3deg)}.quick strong{font-size:var(--fs-base);font-weight:700}.quick small{font-size:var(--fs-xs);color:var(--muted)}.quick-brand{border-color:#c8d3ff;background:linear-gradient(180deg,#fbfcff,#f2f5ff)}.quick-brand .quick-ico{background:linear-gradient(135deg,var(--brand),var(--grape));color:#fff;box-shadow:0 8px 18px #4f6ef747}.quick:nth-child(2) .quick-ico{color:var(--mint);background:var(--mint-soft)}.quick:nth-child(3) .quick-ico{color:var(--amber);background:var(--amber-soft)}.quick:nth-child(4) .quick-ico{color:var(--sky);background:var(--sky-soft)}.quick:nth-child(5) .quick-ico{color:var(--grape);background:var(--grape-soft)}.quick:nth-child(6) .quick-ico{color:var(--ink-2);background:var(--gray-soft)}.heatmap{display:grid;grid-template-columns:repeat(7,minmax(0,36px));justify-content:center;gap:7px;margin-top:12px}.heat-cell{aspect-ratio:1;border-radius:7px;background:#eef1f9;position:relative;transition:transform .12s ease}.heat-cell[data-level="1"]{background:#dfe5ff}.heat-cell[data-level="2"]{background:#aebbff}.heat-cell[data-level="3"]{background:var(--brand)}.heat-cell:hover{transform:scale(1.08)}.heat-cell.today{outline:2px solid var(--brand);outline-offset:2px}.heat-legend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin-top:10px;justify-content:center}.heat-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.today-list{display:flex;flex-direction:column;gap:2px;margin-top:6px}.today-item{display:flex;align-items:center;gap:10px;font-size:var(--fs-base);color:var(--ink-2);padding:9px 8px;border-radius:11px;transition:background .15s ease}.today-item:hover{background:var(--surface-2)}.today-item+.today-item{box-shadow:inset 0 1px 0 var(--line)}.today-item .tag{font-size:11px;padding:2px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-weight:600;flex:0 0 auto}.today-item .tag.rev{background:var(--amber-soft);color:var(--amber)}.book-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.book-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease}.book-card:hover{border-color:#c9d4ff;box-shadow:var(--shadow-md)}.book-card.current{border-color:#b9c7ff;box-shadow:0 0 0 3px #4f6ef714}.book-head{display:flex;align-items:flex-start;gap:12px;padding:16px}.book-cover{position:relative;overflow:hidden;width:46px;height:58px;border-radius:9px;flex:0 0 auto;background:linear-gradient(155deg,#7c68f8,#4f6ef7 70%);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;box-shadow:0 6px 14px #4f6ef738}.book-cover:before{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;background:#ffffff47}.book-cover:after{content:"";position:absolute;inset:0;background:radial-gradient(60px 40px at 88% 6%,rgba(255,255,255,.35),transparent 70%)}.book-meta{flex:1;min-width:0}.book-meta strong{font-size:14px;display:block}.book-meta small{color:var(--muted);font-size:12px}.book-meta .tiny{font-size:11px}.book-progress{height:6px;background:var(--gray-soft);border-radius:999px;overflow:hidden;margin:8px 0 5px}.book-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d8bff,#4f6ef7)}.book-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:0 0 auto}.catalog-group+.catalog-group{margin-top:4px}.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalog-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px dashed var(--line-strong);border-radius:12px;background:var(--surface)}.catalog-meta{display:flex;flex-direction:column;line-height:1.35;min-width:0;flex:1}.catalog-meta strong{font-size:13.5px}.catalog-meta small{font-size:11.5px;color:var(--muted)}.unit-list{border-top:1px dashed var(--line);padding:8px 16px 12px;display:flex;flex-direction:column;gap:2px}.unit-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:6px 0;font-size:13px;border-bottom:1px dashed var(--line)}.unit-seq{font-size:11px;font-weight:700;color:var(--brand-dark);background:var(--brand-soft);border-radius:7px;padding:3px 0;text-align:center}.unit-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}.rule-list{margin:4px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--ink-2)}.rule-list li::marker{color:var(--brand)}.mistakes-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:18px;align-items:start}.mistakes-side{position:sticky;top:26px}.mistake-row{display:flex;align-items:center;gap:14px;padding:12px 10px;border-radius:12px;transition:background .15s ease}.mistake-row+.mistake-row{box-shadow:inset 0 1px 0 var(--line)}.mistake-row:hover{background:var(--surface-2)}.mistake-word{min-width:0;flex:1}.mistake-word strong{font-size:var(--fs-lg);letter-spacing:-.2px}.mistake-word small{color:var(--muted);font-size:var(--fs-xs);display:block}.mistake-times{font-size:var(--fs-xs);color:var(--coral);background:var(--coral-soft);padding:3px 10px;border-radius:999px;white-space:nowrap;font-weight:600}.mistake-tag{font-size:var(--fs-xs);padding:3px 9px;border-radius:999px;white-space:nowrap;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}.mistake-tag.oral{background:var(--brand-soft);color:var(--brand-dark);border-color:transparent}.mistake-tag.spell{background:#fff1d9;color:#8a5a00;border-color:transparent}.mistake-tag.group_test,.mistake-tag.reverse,.mistake-tag.spell_drill,.mistake-tag.dictation{background:var(--mint-soft, #e6f7f1);color:#0b6b51;border-color:transparent}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-grid.cols-4{margin-top:4px}.stat-box{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff,#fbfcff);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.stat-box:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--brand-tint)}.stat-box strong{font-size:27px;display:block;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.6px}.stat-box span{font-size:var(--fs-xs);color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stats-grid .span-2{grid-column:span 2}.stats-grid .card{display:flex;flex-direction:column}.stats-grid .bars{flex:1;justify-content:space-evenly;margin-top:8px}.stats-grid .heatmap{flex:1;align-content:space-evenly}.bars{display:flex;flex-direction:column;gap:14px;margin-top:10px}.bar-row{display:grid;grid-template-columns:76px 1fr 48px;align-items:center;gap:12px;font-size:var(--fs-sm);color:var(--ink-2)}.bar-track{height:12px;background:var(--gray-soft);border-radius:999px;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:inherit;transition:width .4s ease}.bar-row .mono{font-variant-numeric:tabular-nums;text-align:right;font-size:var(--fs-sm);color:var(--ink);font-weight:600}.sync-pill{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}.sync-pill i{width:6px;height:6px;border-radius:50%;background:var(--mint)}.sync-pill.offline i{background:var(--amber)}.study-overlay{position:fixed;inset:0;background:radial-gradient(900px 480px at 50% -10%,#eef2ff 0%,transparent 62%),radial-gradient(700px 420px at 100% 100%,#f3eefe 0%,transparent 58%),linear-gradient(180deg,#f7f9ff,#eef1fb);z-index:100;display:flex;flex-direction:column;padding:22px 32px 28px}.study-top{display:flex;align-items:center;gap:16px;max-width:780px;width:100%;margin:0 auto}.study-progress{flex:1}.study-progress .progress{margin-top:7px}.study-progress .counter{font-size:12px;color:var(--muted);display:flex;justify-content:space-between}.study-tag{font-size:12px;background:var(--brand-soft);color:var(--brand-dark);padding:4px 11px;border-radius:999px;font-weight:600}.study-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:safe center;max-width:780px;width:100%;margin:0 auto;overflow-y:auto;padding:8px 0 16px}.study-busy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#f6f9ffe6;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:busyIn .18s ease-out}.study-busy .spinner{width:30px;height:30px;border-radius:50%;border:3px solid #dfe5fb;border-top-color:var(--brand);animation:busySpin .8s linear infinite}.study-busy p{margin:0;font-size:var(--fs-sm);color:var(--muted)}.study-overlay.is-busy .study-top,.study-overlay.is-busy .study-stage{pointer-events:none}@keyframes busySpin{to{transform:rotate(360deg)}}@keyframes busyIn{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.study-busy .spinner{animation-duration:2s}.study-busy{animation:none}}.flashcard{width:100%;min-height:380px;perspective:1400px;cursor:pointer;margin:10px 0 22px}.flashcard-inner{position:relative;width:100%;min-height:380px;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--radius-lg);background:radial-gradient(420px 200px at 50% -8%,#eef2ff,transparent 70%),var(--surface);border:1px solid #dde4f8;box-shadow:0 18px 44px #1c285a1f;padding:34px 30px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:380px}.card-face:before{content:"";position:absolute;left:50%;top:0;transform:translate(-50%);width:96px;height:4px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--brand),var(--grape))}.card-face.back{transform:rotateY(180deg);background:linear-gradient(180deg,#fff,#fbfcff)}.card-unit{font-size:var(--fs-xs);color:var(--muted);position:absolute;top:20px;left:0;right:0;letter-spacing:.3px}.card-word{font-size:64px;letter-spacing:-1.5px;font-weight:800;word-break:break-word;line-height:1.1}.card-phonetic{color:var(--muted);font-size:var(--fs-lg);margin-top:10px;font-family:var(--mono)}.card-sound{margin-top:24px;background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;padding:9px 18px;font-size:var(--fs-sm);font-weight:600;display:inline-flex;align-items:center;gap:6px;transition:background .15s ease,transform .12s ease}.card-sound:hover{background:var(--brand-tint);transform:translateY(-1px)}.card-hint{position:absolute;bottom:22px;font-size:12px;color:var(--muted)}.card-hint kbd,.answer-btn small{font-family:var(--mono);font-size:11px;background:var(--gray-soft);border:1px solid var(--line-strong);border-radius:5px;padding:1px 6px;margin-left:4px;color:var(--ink-2)}.card-meaning{font-size:24px;font-weight:700;margin-top:6px}.card-example{margin-top:18px;font-size:15px;color:var(--ink-2)}.card-example .zh{color:var(--muted);font-size:13px;margin-top:3px}.card-syl{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:7px}.card-syl .syl-ico{color:var(--muted);display:inline-flex}.syl-chip{font:inherit;cursor:pointer;border:1.5px dashed var(--line-strong);background:transparent;padding:1px 8px;border-radius:8px;font-size:var(--fs-lg);font-weight:700;color:var(--ink-2);letter-spacing:1px;transition:border-color .15s,color .15s}.syl-chip:hover{border-color:var(--brand);color:var(--brand)}.card-fun{display:flex;gap:7px;margin-top:10px;padding:8px 12px;background:var(--brand-soft);border-radius:10px;font-size:var(--fs-base);color:var(--ink-2)}.card-fun .fun-ico{flex:0 0 auto;margin-top:3px;color:var(--brand);display:inline-flex}.card-fun p{margin:0}.card-fun .zh{color:var(--muted);font-size:var(--fs-sm);margin-top:2px}.card-key{position:absolute;top:18px;right:20px;font-size:11px;background:var(--amber-soft);color:var(--amber);padding:2px 9px;border-radius:999px;font-weight:700}.answer-zone{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.answer-btn{padding:15px 10px;border-radius:16px;text-align:center;border:1px solid transparent;transition:transform .1s ease,filter .15s ease}.answer-btn strong{display:block;font-size:15px}.answer-btn small{font-size:11px;opacity:1;background:transparent;border-color:currentColor;color:inherit}.answer-btn.again{background:var(--coral-soft);color:var(--coral)}.answer-btn.hard{background:var(--amber-soft);color:var(--amber)}.answer-btn.good{background:var(--mint-soft);color:var(--mint)}.answer-btn:hover{filter:brightness(.97);transform:translateY(-1px)}.answer-btn:active{transform:translateY(1px)}.done-screen{text-align:center;width:100%;max-width:460px}.done-emoji{font-size:56px}.done-screen h2{font-size:25px;margin-top:8px;letter-spacing:-.4px}.done-screen p{color:var(--muted);font-size:var(--fs-base);margin-top:6px}.done-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;margin:24px 0}.done-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 8px}.done-stat strong{display:block;font-size:var(--fs-2xl);font-variant-numeric:tabular-nums;letter-spacing:-.5px}.done-stat span{font-size:var(--fs-xs);color:var(--muted)}.ai-report{margin:0 0 18px;padding:14px 16px;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-sm);text-align:left}.ai-report .ai-report-head{display:flex;align-items:center;gap:7px;font-size:var(--fs-base);margin-bottom:6px}.ai-report .ai-badge{display:inline-flex;color:var(--brand)}.ai-report .ai-text{font-size:var(--fs-sm);line-height:1.75;color:var(--text, #1f2430);white-space:pre-wrap}.ai-report .small.muted{text-align:center}.dictation{width:100%;max-width:480px;text-align:center}.dictation .play{width:96px;height:96px;border-radius:50%;background:var(--brand);color:#fff;font-size:36px;display:grid;place-items:center;margin:0 auto 18px;box-shadow:0 10px 26px #4f6ef759}.dictation .play:hover{background:var(--brand-dark)}.dictation .try{font-size:13px;color:var(--muted);margin-bottom:10px}.dictation .feedback{min-height:22px;font-size:14px;font-weight:600;margin-top:10px}.dictation .feedback.ok{color:var(--mint)}.dictation .feedback.bad{color:var(--coral)}@media(max-width:960px){.site-layout{display:block}.sidebar{position:sticky;top:0;bottom:auto;width:100%;height:auto;flex-direction:row;align-items:center;gap:12px;padding:10px 14px;border-right:none;border-bottom:1px solid var(--line)}.side-brand{padding:0;border-bottom:none}.side-brand .brand-text small{display:none}.side-nav{flex-direction:row;margin-top:0;flex:1;justify-content:flex-end;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}.side-nav::-webkit-scrollbar{display:none}.side-item{flex-direction:column;gap:2px;padding:6px 10px;flex:0 0 auto}.side-item-text{align-items:center}.side-item-text small{display:none}.side-bar{display:none!important}.side-foot{border-top:none;padding-top:0;flex-direction:row;align-items:center}.side-user{display:none}.site-main{margin-left:0;padding:18px 16px 40px;max-width:640px;margin-inline:auto}.today-grid,.mistakes-grid,.stats-grid{grid-template-columns:1fr}.stats-grid .span-2{grid-column:auto}.stat-grid{grid-template-columns:repeat(2,1fr)}.book-list,.catalog-grid{grid-template-columns:1fr}.card-word{font-size:40px}.flashcard,.flashcard-inner,.card-face{min-height:300px}.study-overlay{padding:14px 16px 18px}.study-top,.study-stage{max-width:520px}.page-head{flex-direction:column;align-items:flex-start;gap:6px}}.unit-pick-list{display:flex;flex-direction:column;gap:10px;width:min(460px,100%);margin:18px auto 0;text-align:left}.unit-pick{display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;font:inherit;text-align:left}.unit-pick:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}.unit-pick .unit-seq{flex:0 0 auto}.unit-pick strong{flex:1}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.choice-btn{padding:15px 14px;border:1.5px solid var(--line-strong);border-radius:15px;background:#fff;font-size:var(--fs-lg);cursor:pointer;font:inherit;transition:border-color .13s ease,transform .13s ease,box-shadow .16s ease,background .16s ease}.choice-btn:hover{border-color:var(--brand);background:var(--brand-soft);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.choice-btn.ok{border-color:var(--mint);background:var(--mint-soft);color:#106b4f;font-weight:600}.choice-btn.bad{border-color:var(--coral);background:var(--coral-soft);color:#a83a34;font-weight:600}.choice-btn.ok,.choice-btn.bad{transform:none}@media(max-width:640px){.choice-grid{grid-template-columns:1fr}.unit-pick-list{width:100%}}.learn-word{position:relative;width:100%;background:radial-gradient(360px 180px at 50% -6%,#eef2ff,transparent 72%),var(--surface);border:1px solid #dde4f8;border-radius:var(--radius-lg);box-shadow:0 18px 40px #1c285a1a;padding:26px 28px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}.learn-word:before{content:"";position:absolute;left:50%;top:0;transform:translate(-50%);width:110px;height:4px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--brand),var(--grape))}.learn-word .card-unit{position:static;margin-bottom:4px}.learn-word .card-word{font-size:48px}.learn-word .card-meaning{font-size:20px;margin-top:4px}.learn-word .card-example{margin-top:10px;font-size:var(--fs-base)}.learn-word .card-sound{margin-top:12px}.learn-word.is-back{background:linear-gradient(180deg,#f5f7fd,var(--surface));border:1px dashed #c7d1ea;box-shadow:var(--shadow-sm);animation:cardFlipIn .42s cubic-bezier(.22,.72,.28,1)}.learn-word.is-back:before{background:var(--line-strong, #c9d2ea)}.learn-word.is-back .card-meaning{font-size:22px;color:var(--ink);font-weight:700;margin-top:6px}.learn-word.is-back .card-sound{margin-top:16px}.card-back{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0 2px}.card-back .back-ico{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#eef2ff;color:var(--brand);margin-bottom:2px}.card-back strong{font-size:var(--fs-base);color:var(--ink-2);letter-spacing:.2px}.card-back p{margin:0;font-size:var(--fs-xs);color:var(--muted)}@keyframes cardFlipIn{0%{transform:perspective(900px) rotateY(72deg);opacity:.25}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.learn-word.is-back{animation:none}}.learn-body{width:100%;max-width:520px;margin:16px auto 0}.step-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px 16px;text-align:center;box-shadow:var(--shadow-sm)}.step-title{display:flex;align-items:center;justify-content:center;gap:8px;font-size:var(--fs-base);font-weight:700;color:var(--ink);margin-bottom:12px}.step-title .muted.tiny{font-weight:400}.mic-btn{display:inline-flex;align-items:center;gap:10px;font:inherit;cursor:pointer;padding:14px 26px;border-radius:999px;border:none;color:#fff;font-weight:700;font-size:16px;background:linear-gradient(135deg,#6f8bff,#4f6ef7);box-shadow:0 10px 24px #4f6ef74d;transition:transform .1s ease,filter .15s ease}.mic-btn:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px)}.mic-btn:disabled{opacity:.7;cursor:default}.mic-btn.recording{background:linear-gradient(135deg,#ff8a7a,#e0574a);animation:micPulse 1.2s ease-in-out infinite}.mic-btn .mic-ico{display:inline-flex;align-items:center}@keyframes micPulse{0%,to{box-shadow:0 0 #e0574a59}50%{box-shadow:0 0 0 12px #e0574a00}}.oral-hint{margin-top:12px;font-size:13px;color:var(--muted);min-height:20px}.oral-hint.bad{color:var(--coral);font-weight:600}.oral-score{margin-top:8px;font-size:14px;font-weight:700;min-height:20px;color:var(--muted)}.oral-score.ok{color:var(--mint)}.oral-score.bad{color:var(--amber)}.link-btn{background:none;border:none;font:inherit;font-size:13px;color:var(--muted);cursor:pointer;padding:8px 10px;text-decoration:underline;text-underline-offset:3px}.link-btn:hover{color:var(--brand-dark)}.write-dots{display:inline-flex;gap:5px}.write-dots i{width:8px;height:8px;border-radius:50%;background:var(--line-strong);display:block}.write-dots i.now{background:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.write-dots i.done{background:var(--mint)}.step-card .try{font-size:13px;color:var(--muted);margin-bottom:10px}.oral-best{font-size:12px;color:var(--mint);margin:-4px 0 10px}.step-card .input{width:100%}.step-card .feedback{min-height:22px;font-size:14px;font-weight:600;margin-top:10px}.step-card .feedback.ok{color:var(--mint)}.step-card .feedback.bad{color:var(--coral)}.step-card .feedback.warn,.warmup-card .feedback.warn{color:#a3650b}.chunk-slots{display:flex;flex-direction:column;align-items:center;gap:9px;margin:0 0 14px}.chunk-label{font-size:var(--fs-base);color:var(--ink);font-weight:500;letter-spacing:.2px}.chunk-row{display:inline-flex;align-items:flex-end;gap:16px}.chunk{display:inline-flex;gap:4px}.chunk i{display:block;width:15px;height:19px;border-bottom:3px solid #7b8aad;border-radius:2px}.step-card .fix-word{font-size:var(--fs-xl);font-weight:800;letter-spacing:1px;color:var(--ink);margin:4px 0 12px;word-break:break-word}.learn-word.is-masked .card-word{font-size:var(--fs-2xl);letter-spacing:2px;color:var(--ink-2)}@media(max-height:780px){.learn-word{padding:14px 22px 12px}.learn-word .card-word{font-size:36px}.learn-word .card-example{display:none}.learn-body{margin-top:10px}.step-card{padding:14px 18px 12px}}@media(max-width:640px){.mic-btn{padding:12px 20px;font-size:15px}.learn-word .card-word{font-size:34px}}.page-title{font-size:25px;letter-spacing:-.6px}.page-sub{font-size:var(--fs-sm)}.streak-pill.dark{box-shadow:0 4px 12px #e0453e2e}.book-card{border-radius:var(--radius);box-shadow:var(--shadow-xs)}.book-card:hover{transform:translateY(-2px)}.book-head{padding:16px 16px 14px}.book-meta strong{font-size:var(--fs-base);letter-spacing:-.2px}.book-actions .btn{padding:6px 12px;font-size:var(--fs-xs);border-radius:10px}.book-progress{height:7px}.catalog-row{border-style:solid;border-color:var(--line);background:var(--surface-2);transition:border-color .15s ease,background .15s ease}.catalog-row:hover{border-color:var(--brand-tint);background:#fff}.catalog-meta strong{font-size:var(--fs-sm)}.unit-row{grid-template-columns:32px 1fr auto;padding:7px 4px;border-bottom:1px solid var(--line)}.unit-row:last-child{border-bottom:none}.unit-seq{border-radius:8px;padding:3px 0;font-size:11px}.unit-name{font-size:var(--fs-sm)}.sync-pill{font-size:var(--fs-xs)}.board{width:min(760px,100%);margin:6px auto 0;text-align:left}.board-head{margin-bottom:16px}.board-head h2{margin:0 0 4px;font-size:var(--fs-xl);color:var(--ink)}.board-exit{display:block;margin:20px auto 0}.unit-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(206px,1fr));gap:12px}.unit-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 16px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .16s ease}.unit-card:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.unit-card .unit-seq{font-size:var(--fs-xs);font-weight:700;color:var(--brand);letter-spacing:.06em}.unit-card strong{font-size:var(--fs-base);color:var(--ink);padding-right:54px}.unit-card .unit-groups{font-size:var(--fs-xs);color:var(--muted)}.unit-bar{display:block;width:100%;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-top:2px}.unit-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand),var(--grape));transition:width .4s ease}.unit-card .unit-state{position:absolute;top:14px;right:14px;font-size:var(--fs-xs);color:var(--muted)}.unit-card.is-done{border-color:#0f9d746b;background:linear-gradient(180deg,#f2fdf8,var(--surface))}.unit-card.is-done .unit-state{color:var(--mint);font-weight:700}.unit-card.is-done .unit-bar i{background:var(--mint)}.group-board{display:flex;flex-direction:column;gap:10px}.group-card{display:flex;flex-direction:column;gap:7px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .16s ease}.group-card:hover{border-color:var(--brand);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.group-card .group-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.group-card strong{font-size:var(--fs-base);color:var(--ink)}.state-pill{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--muted);background:var(--surface-2);border-radius:999px;padding:3px 10px}.state-pill.ok{color:var(--mint);background:var(--mint-soft);font-weight:700}.group-words{display:flex;flex-wrap:wrap;gap:6px}.word-chip{font-size:var(--fs-xs);color:var(--ink-2);background:var(--surface-2);border-radius:8px;padding:3px 9px}.group-card.is-passed{border-color:#0f9d746b;background:linear-gradient(180deg,#f2fdf8,var(--surface))}.group-card.is-passed .word-chip{background:#e8f8f0;color:#106b4f}.group-card.is-next{border-color:var(--brand);box-shadow:0 8px 22px #4f6ef724}.group-hint{font-size:var(--fs-xs);color:var(--brand);font-weight:700}.warmup-card{width:min(520px,100%);margin:10px auto 0;text-align:center}.warmup-card .card-word{font-size:44px}.warmup-card .try{margin:18px 0 0;font-size:var(--fs-sm);color:var(--muted)}.warmup-card .choice-grid{margin-top:10px}.done-ico,.sound-ico{display:inline-flex;align-items:center}@media(max-width:640px){.unit-board{grid-template-columns:1fr}.warmup-card .card-word{font-size:34px}}.learn-word .card-main{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;margin-top:2px}.learn-word .card-main.is-solo{gap:14px}.card-info{text-align:left;min-width:0}.card-info .card-word{margin:0}.card-pic{flex:0 0 auto;width:124px;height:124px;border-radius:18px;overflow:hidden;background:var(--surface-2);box-shadow:0 8px 20px #1f2a471a}.card-pic img{display:block;width:100%;height:100%;object-fit:cover}.card-pic.is-sm{width:76px;height:76px;border-radius:14px}.card-pic.is-tappable{position:relative;cursor:zoom-in;transition:transform .16s ease,box-shadow .16s ease}.card-pic.is-tappable:hover{transform:translateY(-2px);box-shadow:0 12px 26px #1f2a472e}.card-pic.is-tappable:focus-visible{outline:3px solid var(--primary, #5b6bf5);outline-offset:2px}.pic-zoom-badge{position:absolute;right:5px;bottom:5px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#ffffffeb;color:#4a5578;box-shadow:0 2px 8px #1f2a472e;pointer-events:none}.pic-zoom{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;background:#181f3885;backdrop-filter:blur(3px)}.pic-zoom-card{width:min(420px,100%);padding:18px;border-radius:22px;background:#fff;box-shadow:0 24px 60px #141c3847;text-align:center}.pic-zoom-card>img{display:block;width:min(320px,100%);aspect-ratio:1 / 1;margin:0 auto 14px;object-fit:cover;border-radius:18px;background:#faf6ed}.pic-zoom-word{font-size:var(--fs-2xl);font-weight:800;color:#1f2a47;letter-spacing:.5px}.pic-zoom-word span{margin-left:10px;font-size:var(--fs-base);font-weight:500;color:var(--muted)}.pic-zoom-tip{margin:10px 0 16px;padding:9px 12px;border-radius:12px;background:#fffaeb;border:1px solid #f2dda6;text-align:left;font-size:var(--fs-sm);line-height:1.6;color:#7a5a12}.mem-tip{display:flex;align-items:flex-start;gap:7px;width:100%;max-width:470px;margin:12px auto 0;padding:9px 12px;border:1px solid #f2dda6;border-radius:12px;background:#fffaeb;text-align:left}.mem-tip p{margin:0;font-size:var(--fs-sm);line-height:1.6;color:#7a5a12}.mem-tip .tip-ico{flex:0 0 auto;margin-top:3px;color:#d99a1a;display:inline-flex}.card-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}.card-actions .card-sound{margin-top:0}.hack-btn{display:inline-flex;align-items:center;gap:5px;padding:8px 16px;border:1.5px dashed #c9b4ee;border-radius:999px;background:#f7f3ff;color:#6b4fa0;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.hack-btn .hack-ico{display:inline-flex;color:#a077e8}.hack-btn:hover{background:#f1ebff}.hack-panel{display:none;width:100%;max-width:470px;margin:10px auto 0;padding:10px 12px;border:1.5px dashed #c9b4ee;border-radius:12px;background:#f9f6ff;align-items:flex-start;gap:10px;text-align:left}.hack-panel.is-open{display:flex}.hack-panel img{flex:0 0 auto;width:112px;height:112px;border-radius:14px;object-fit:cover;background:var(--surface-2)}.hack-panel p{margin:0;font-size:var(--fs-sm);line-height:1.7;color:#5b4390}@media(max-width:640px){.learn-word .card-main{gap:12px}.card-pic{width:96px;height:96px;border-radius:14px}.hack-panel img{width:88px;height:88px}.learn-word .card-word{font-size:38px}.mem-tip p{font-size:var(--fs-xs)}.sidebar{gap:6px;padding:8px 10px;flex-wrap:wrap;row-gap:4px}.side-brand{order:1}.side-foot{order:2;flex:0 0 auto;margin-left:auto}.side-nav{order:3;flex:1 0 100%;gap:0;min-width:0;justify-content:space-between}.side-item{padding:5px 4px}.side-item-text strong{font-size:11px;white-space:nowrap}.sync-pill{display:none}}.ipa-page{display:flex;flex-direction:column;gap:16px;text-align:left}.ipa-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 16px;box-shadow:var(--shadow-xs)}.ipa-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.ipa-panel-head h3{margin:0;font-size:var(--fs-lg);color:var(--ink)}.ipa-panel-sub{font-size:var(--fs-xs);color:var(--muted)}.ipa-intro{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between}.ipa-intro-main{flex:1 1 380px;min-width:0}.ipa-intro-main h3{margin:0 0 8px;font-size:var(--fs-lg);color:var(--ink)}.ipa-intro-main p{margin:0;font-size:var(--fs-sm);line-height:1.75;color:var(--ink-2)}.ipa-steps{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px}.ipa-steps span{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ink-2)}.ipa-steps b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--brand-soft);color:var(--brand-dark);font-size:var(--fs-xs)}.ipa-stat{display:flex;gap:10px}.ipa-stat div{min-width:76px;padding:12px 10px;border-radius:var(--radius-sm);background:var(--surface-2);text-align:center}.ipa-stat strong{display:block;font-size:var(--fs-2xl);line-height:1.1;color:var(--brand-dark)}.ipa-stat small{font-size:var(--fs-xs);color:var(--muted)}.ipa-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.ipa-group-head h3{margin:0;font-size:var(--fs-base);color:var(--ink)}.ipa-group-head p{margin:3px 0 0;font-size:var(--fs-xs);color:var(--muted)}.ipa-kind{flex:0 0 auto;font-size:var(--fs-xs);padding:3px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark)}.ipa-kind.consonant{background:var(--mint-soft);color:var(--mint)}.ipa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:12px}.ipa-card{display:flex;flex-direction:column;gap:8px;padding:14px 14px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:linear-gradient(180deg,#fff,var(--surface-2));transition:border-color .15s ease,box-shadow .18s ease}.ipa-card:hover{border-color:var(--brand-tint);box-shadow:var(--shadow-sm)}.ipa-head{display:flex;align-items:center;gap:10px}.ipa-sym{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 8px;border:1px solid #d9e2ff;border-radius:999px;background:#f4f7ff;font:inherit;cursor:pointer;color:var(--brand-dark);transition:background .15s ease,border-color .15s ease,transform .12s ease}.ipa-sym:hover{background:#eaf0ff;border-color:var(--brand);transform:translateY(-1px)}.ipa-sym-text{font-family:var(--mono);font-size:var(--fs-lg);font-weight:700;letter-spacing:.5px}.ipa-sym-play{display:inline-flex;color:var(--brand)}.ipa-meta{display:flex;flex-direction:column;line-height:1.25}.ipa-meta strong{font-size:var(--fs-sm);color:var(--ink)}.ipa-meta small{font-size:var(--fs-xs);color:var(--muted)}.ipa-tip{margin:0;font-size:var(--fs-sm);line-height:1.7;color:var(--ink-2)}.ipa-tip strong{color:var(--brand-dark)}.ipa-letters{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.ipa-letters-label{font-size:var(--fs-xs);color:var(--muted);margin-right:2px}.ipa-letter{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);padding:1px 7px;border-radius:6px;background:var(--gray-soft);color:var(--ink-2)}.ipa-words{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.ipa-word{display:inline-flex;align-items:baseline;gap:5px;padding:5px 10px;border:1px solid #dbe4f7;border-radius:999px;background:#fff;font:inherit;cursor:pointer;transition:border-color .15s ease,background .15s ease}.ipa-word:hover{border-color:var(--brand);background:var(--brand-soft)}.ipa-word-en{font-size:var(--fs-sm);font-weight:600;color:var(--ink)}.ipa-word em{font-style:normal;font-size:var(--fs-xs);color:var(--muted)}.ipa-contrast{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;margin:2px 0 0;padding:7px 9px;border-radius:9px;background:#fff8ea;font-size:var(--fs-xs);line-height:1.6;color:#7a5a12}.ipa-contrast-tag{flex:0 0 auto;font-weight:700;color:#b8791a}.ipa-contrast code{font-family:var(--mono);color:#8a5a00}.ipa-pair-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.ipa-pair{padding:10px 12px;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2)}.ipa-pair-sym{display:flex;align-items:center;gap:8px;margin-bottom:5px}.ipa-pair-sym i{font-style:normal;font-size:var(--fs-xs);color:var(--muted)}.ipa-pair-btn{padding:2px 10px;border:1px solid #d9e2ff;border-radius:999px;background:#fff;font-family:var(--mono);font-size:var(--fs-sm);font-weight:700;color:var(--brand-dark);cursor:pointer}.ipa-pair-btn:hover{background:var(--brand-soft);border-color:var(--brand)}.ipa-pair p{margin:0;font-size:var(--fs-xs);line-height:1.65;color:var(--ink-2)}.ipa-quiz-body{min-height:96px}.ipa-quiz-intro p{margin:0 0 12px;font-size:var(--fs-sm);line-height:1.7;color:var(--ink-2)}.ipa-quiz-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.ipa-quiz-dots{display:flex;gap:6px}.ipa-quiz-dots i{width:22px;height:5px;border-radius:999px;background:var(--line)}.ipa-quiz-dots i.done{background:var(--mint)}.ipa-quiz-dots i.now{background:var(--brand)}.ipa-quiz-count{font-size:var(--fs-xs);color:var(--muted)}.ipa-quiz-play{display:flex;align-items:center;gap:12px;margin-bottom:14px}.ipa-play-btn{width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--brand),var(--grape));box-shadow:0 8px 18px #4f6ef747}.ipa-play-btn:hover{transform:translateY(-1px)}.ipa-quiz-word strong{display:block;font-size:var(--fs-base);color:var(--ink)}.ipa-quiz-word small{font-size:var(--fs-xs);color:var(--muted)}.ipa-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.ipa-opt{padding:16px 6px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-family:var(--mono);font-size:var(--fs-xl);font-weight:700;color:var(--ink);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .12s ease}.ipa-opt:hover:enabled{border-color:var(--brand);background:var(--brand-soft);transform:translateY(-2px)}.ipa-opt:disabled{cursor:default}.ipa-opt.right{border-color:var(--mint);background:var(--mint-soft);color:var(--mint)}.ipa-opt.wrong{border-color:#e2857d;background:#fdeeec;color:#b23c33}.ipa-feedback{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding:10px 12px;border-radius:var(--radius-sm);font-size:var(--fs-sm);line-height:1.65}.ipa-feedback.ok{background:var(--mint-soft);color:#0b6b51}.ipa-feedback.no{background:#fdeeec;color:#8f2f27}.ipa-feedback strong{font-size:var(--fs-sm)}.ipa-quiz-foot{margin-top:12px;text-align:right}.ipa-quiz-done{text-align:center;padding:8px 0 4px}.ipa-score{display:inline-flex;align-items:baseline;gap:6px;color:var(--brand-dark)}.ipa-score strong{font-size:var(--fs-2xl)}.ipa-score span{font-size:var(--fs-sm);color:var(--muted)}.ipa-quiz-done p{margin:8px 0 14px;font-size:var(--fs-sm);color:var(--ink-2)}.quick-wide{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:14px 18px;text-align:left;background:linear-gradient(120deg,#f7f4ff,#eef3ff 60%,#f4f9ff);border-color:#d7d0f5}.quick-wide .quick-ico{margin-bottom:0;color:#fff;background:linear-gradient(135deg,var(--grape),var(--brand));box-shadow:0 8px 18px #8b5cf642}.quick-wide-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.quick-wide-text strong{font-size:var(--fs-base)}.quick-wide-text small{color:var(--muted)}.quick-wide-go{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-sm);font-weight:600;color:var(--grape);white-space:nowrap}@media(max-width:640px){.ipa-panel{padding:14px}.ipa-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.ipa-options{grid-template-columns:repeat(2,1fr)}.ipa-sym-text{font-size:var(--fs-base)}.quick-wide{padding:12px 14px;gap:10px}.quick-wide-text small{font-size:var(--fs-xs)}.quick-wide-go{display:none}}.ipa-pairs-details summary{cursor:pointer;font-size:var(--fs-sm);font-weight:600;color:var(--brand-dark);padding:8px 10px;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);list-style:none}.ipa-pairs-details summary::-webkit-details-marker{display:none}.ipa-pairs-details summary:before{content:"▸ ";color:var(--brand)}.ipa-pairs-details[open] summary:before{content:"▾ "}.ipa-pairs-details summary:hover{border-color:var(--brand);background:var(--brand-soft)}.ipa-pairs-details[open] summary{margin-bottom:10px}.tb-page{display:flex;flex-direction:column;gap:14px;text-align:left}.tb-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 16px 14px;box-shadow:var(--shadow-xs)}.tb-empty{text-align:center;color:var(--muted);font-size:var(--fs-sm);padding:28px 16px}.tb-empty .btn{margin-top:10px}.tb-intro{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}.tb-intro-main{flex:1 1 320px;min-width:0}.tb-intro-main h3{margin:0 0 6px;font-size:var(--fs-lg);color:var(--ink)}.tb-intro-main p{margin:0;font-size:var(--fs-sm);line-height:1.7;color:var(--ink-2)}.tb-stat{flex:0 0 auto;min-width:96px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);text-align:center}.tb-stat strong{display:block;font-size:var(--fs-2xl);line-height:1.1;color:var(--brand-dark)}.tb-stat small{font-size:var(--fs-xs);color:var(--muted)}.tb-unit{padding:0;overflow:hidden}.tb-unit-head{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:none;border:0;cursor:pointer;text-align:left}.tb-unit-title{display:flex;flex-direction:column;gap:2px;min-width:0}.tb-unit-title strong{font-size:var(--fs-base);color:var(--ink)}.tb-unit-title small{font-size:var(--fs-xs);color:var(--muted)}.tb-unit-meta{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--muted)}.tb-unit-meta em{font-style:normal;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.tb-unit-meta em.tb-done{color:var(--ok, #16a34a);font-weight:600}.tb-sents{display:flex;flex-direction:column;padding:0 16px 12px}.tb-sent{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:12px 0;border-top:1px dashed var(--line)}.tb-sent-main{flex:1 1 260px;min-width:0}.tb-en{margin:0;font-size:var(--fs-base);font-weight:600;color:var(--ink);line-height:1.5}.tb-zh{margin:3px 0 0;font-size:var(--fs-xs);color:var(--muted)}.tb-sent-side{display:flex;align-items:center;gap:8px;flex:0 0 auto}.tb-score{min-width:64px;text-align:center;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.tb-score.ok{color:var(--ok, #16a34a);font-weight:600}.tb-bar{display:flex;align-items:center;gap:8px}.tb-bar-mid{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.tb-bar-mid strong,.tb-bar-mid small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-bar-mid strong{font-size:var(--fs-sm);color:var(--ink)}.tb-bar-mid small{font-size:var(--fs-xs);color:var(--muted)}.tb-nav{flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:grid;place-items:center;cursor:pointer}.tb-nav:disabled{opacity:.45;cursor:default}.tb-pnum{flex:0 0 auto;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.tb-reader{padding:8px;gap:8px}.tb-stage{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px}.tb-sheet-page{width:100%}.tb-sheet-page.zoom{width:180%}.tb-imgwrap{position:relative;line-height:0}.tb-img{display:block;width:100%;height:auto;border-radius:10px;background:#fff;user-select:none;-webkit-user-drag:none}.tb-hot{position:absolute;padding:0;border:0;background:#f0b40000;border-radius:4px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s}.tb-hot:hover{background:#f0b40038}.tb-hot.is-sel{background:#f0b4005c;box-shadow:inset 0 0 0 2px var(--brand, #f0b400)}.tb-hot-dot{position:absolute;right:-2px;top:-7px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--muted);color:#fff;font-size:10px;line-height:15px;text-align:center;font-variant-numeric:tabular-nums}.tb-hot-dot.ok{background:var(--ok, #16a34a)}.tb-sheet{display:none}.tb-sheet.on{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;position:sticky;bottom:6px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm, 0 6px 18px rgba(15, 23, 42, .08))}.tb-sheet-main{flex:1 1 200px;min-width:0}.tb-sheet-side{display:flex;align-items:center;gap:6px;flex:0 0 auto}.tb-close{border:0;background:none;font-size:20px;line-height:1;color:var(--muted);cursor:pointer;padding:0 2px}.tb-tools{display:flex;align-items:center;justify-content:space-between;gap:10px}.tb-count{font-size:var(--fs-xs);color:var(--muted)}.unit-card.is-idle{opacity:.55;cursor:not-allowed}.unit-card.is-idle:hover{border-color:var(--line);transform:none;box-shadow:none}.count-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:4px}.count-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:18px 12px 14px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;font:inherit;transition:border-color .15s ease,transform .12s ease,box-shadow .18s ease}.count-card:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.count-card strong{font-size:var(--fs-2xl);line-height:1.1;color:var(--brand-dark)}.count-card small{font-size:var(--fs-xs);color:var(--muted)}.count-sub{font-size:var(--fs-xs);color:var(--muted);margin-top:6px}.count-extra{margin-top:6px;font-size:var(--fs-xs);padding:2px 8px;border-radius:999px;background:#fff8ea;color:#8a5a00}.count-note{margin:14px 0 0;line-height:1.7}.check-stage{width:min(600px,100%);margin:6px auto 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.check-head{display:flex;align-items:center;gap:8px}.check-kind{font-size:var(--fs-xs);padding:3px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-weight:600}.check-kind.zh2en{background:var(--mint-soft);color:#0b6b51}.check-kind.spell{background:#fff1d9;color:#8a5a00}.check-step,.check-unlearned{font-size:var(--fs-xs);color:var(--muted)}.check-unlearned{padding:2px 8px;border-radius:999px;background:var(--gray-soft, #eef1f6);color:var(--muted)}.check-wordbox{display:flex;flex-direction:column;align-items:center;gap:2px}.check-word{margin:4px 0 0;font-size:52px;line-height:1.15;font-weight:800;letter-spacing:-1px;color:var(--ink);word-break:break-word}.check-phon{margin:0;font-family:var(--mono);font-size:var(--fs-sm);color:var(--muted)}.check-play{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:6px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);font:inherit;font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer}.check-play:hover{border-color:var(--brand);color:var(--brand-dark);background:var(--brand-soft)}.check-play-ico{display:inline-flex;color:var(--brand)}.check-mean{margin:6px 0 0;font-size:30px;line-height:1.35;font-weight:700;color:var(--ink)}.check-prompt{margin:2px 0 0;font-size:var(--fs-sm);color:var(--muted)}.check-stage .choice-grid{width:100%;margin-top:6px}.check-grid-en .choice-btn{font-weight:650;letter-spacing:.2px}.check-input{width:100%;min-width:0;margin-top:4px;text-align:center;font-size:22px;letter-spacing:3px}.check-quit{margin-top:14px;font-size:var(--fs-xs);color:var(--muted)}.check-quit:hover{color:var(--brand-dark)}.check-result .check-score{display:inline-flex;align-items:baseline;gap:6px}.check-result .check-score strong{font-size:44px;line-height:1;color:var(--brand-dark)}.check-result .check-score span{font-size:var(--fs-sm);color:var(--muted)}.check-kinds{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:min(420px,100%);margin:16px auto 0}.check-kind-cell{padding:10px 6px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.check-kind-cell small{display:block;font-size:var(--fs-xs);color:var(--muted)}.check-kind-cell strong{font-size:var(--fs-xl);color:var(--ink)}.check-kind-cell.en2zh strong{color:var(--brand-dark)}.check-kind-cell.zh2en strong{color:#0b6b51}.check-kind-cell.spell strong{color:#8a5a00}.check-wrong{width:100%;margin-top:16px;padding:12px;text-align:left;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2)}.check-wrong-title{margin:0 0 8px;font-size:var(--fs-sm);font-weight:600;color:var(--ink)}.check-wrong-list{display:flex;flex-direction:column;gap:6px}.check-wrong-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-sm)}.check-wrong-row strong{color:var(--ink)}.check-wrong-mean{flex:1 1 auto;min-width:0;font-size:var(--fs-xs);color:var(--muted)}.check-wrong-kinds{display:inline-flex;gap:4px}.check-wrong-kinds i{font-style:normal;font-size:var(--fs-xs);padding:1px 7px;border-radius:999px;background:#fdeeec;color:#8f2f27}.check-perfect{margin:16px 0 0;font-size:var(--fs-sm);color:#0b6b51}.check-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px}@media(max-width:640px){.check-word{font-size:38px}.check-mean{font-size:24px}.check-kinds{gap:8px}.check-kind-cell strong{font-size:var(--fs-lg)}.count-board{grid-template-columns:repeat(2,1fr)}}.check-last{margin-top:2px;font-size:var(--fs-xs);color:var(--brand-dark);background:var(--brand-soft);padding:1px 8px;border-radius:999px}.check-foot{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}.check-archive{margin:14px 0 0}.check-archive.is-fail{color:#8f2f27}.check-hist .board-head{margin-bottom:14px}.check-hist-empty{margin:4px 0 16px;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.7}.check-hist-tip{margin:0 0 10px}.check-hist-list{display:flex;flex-direction:column;gap:8px;margin-bottom:4px;max-height:62vh;overflow-y:auto}.check-hist-item{display:flex;flex-direction:column}.check-hist-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,background .15s}.check-hist-row:hover{border-color:var(--line-strong)}.check-hist-row.is-open{border-color:var(--brand);background:var(--brand-soft);border-bottom-left-radius:0;border-bottom-right-radius:0}.check-hist-main{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:2px}.check-hist-main strong{font-size:var(--fs-sm);color:var(--ink)}.check-hist-time{font-size:var(--fs-xs);color:var(--muted)}.check-hist-kinds{display:inline-flex;gap:5px;flex-wrap:wrap}.check-hist-kind{font-size:var(--fs-xs);padding:1px 7px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}.check-hist-kind.en2zh{background:var(--brand-soft);color:var(--brand-dark);border-color:transparent}.check-hist-kind.zh2en{background:var(--mint-soft);color:#0b6b51;border-color:transparent}.check-hist-kind.spell{background:#fff1d9;color:#8a5a00;border-color:transparent}.check-hist-score{display:flex;align-items:baseline;gap:6px;min-width:96px;justify-content:flex-end}.check-hist-score strong{font-size:var(--fs-xl);line-height:1}.check-hist-score strong.good{color:#0b6b51}.check-hist-score strong.mid{color:var(--brand-dark)}.check-hist-score strong.low{color:#b23c33}.check-hist-score small,.check-hist-more{font-size:var(--fs-xs);color:var(--muted)}.check-hist-row.is-open .check-hist-more{color:var(--brand-dark)}.check-hist-detail{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px;border:1px solid var(--brand);border-top:0;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--surface-2)}.check-hist-detail[hidden]{display:none}.check-hist-dt-title{margin:0;font-size:var(--fs-xs);font-weight:600;color:var(--ink-2)}.check-wrong-kinds i.miss{background:#eef1f5;color:var(--ink-2)}.check-missed{margin:10px 0 0;color:var(--brand-dark)}@media(max-width:640px){.check-hist-row{gap:8px}.check-hist-main{flex:1 1 100%}.check-hist-score{min-width:0;margin-left:auto}}.learn-word>.card-info{display:contents}.card-pos{font-style:normal;font-weight:600;font-size:.92em;color:var(--muted);margin-right:6px}.input-word{text-align:center;font-size:22px;letter-spacing:3px}.step-card .row,.dictation .row{justify-content:center;margin-top:12px}.check-stage .row{margin-top:12px}.is-web .study-overlay{padding:20px 44px 0;background:radial-gradient(1120px 540px at 4% -14%,#e6edff 0%,transparent 58%),radial-gradient(940px 500px at 100% -4%,#f2eaff 0%,transparent 56%),radial-gradient(860px 540px at 50% 122%,#e2f1ff 0%,transparent 60%),linear-gradient(180deg,#f6f8ff,#ecf0fb)}.is-web .study-top{max-width:980px;width:100%;margin:0 auto 6px;padding:0;gap:14px;background:none;border:0;box-shadow:none}.is-web .study-top:empty{display:none}.is-web .study-top .btn-icon{width:42px;height:42px;border-radius:50%;background:#fff;border-color:#e6ecfb;box-shadow:0 4px 12px #1c285a14}.is-web .study-progress .counter{align-items:center}.is-web .study-progress .counter span:first-child{font-size:var(--fs-lg);font-weight:800;letter-spacing:-.2px;color:#fff;background:linear-gradient(135deg,#5f86ff,var(--brand));padding:5px 15px;border-radius:999px;box-shadow:0 8px 18px #4f6ef742}.is-web .study-progress .counter span:last-child{font-size:var(--fs-sm);color:var(--muted)}.is-web .study-progress .progress{height:8px;margin-top:9px;background:#e7ecfa}.is-web .study-stage{flex:1 1 auto;min-height:0;max-width:1180px;width:100%;margin:0 auto;padding:14px 0 10px;align-items:stretch;background:none;border:0;border-radius:0;box-shadow:none;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.is-web .study-stage::-webkit-scrollbar{width:0;height:0;display:none}.is-web .study-stage>.learn-word{margin-block:auto}body.is-web:has(>.study-overlay){overflow:hidden}html:has(>body.is-web>.study-overlay){overflow:hidden}.is-web .learn-word:before{display:none}.is-web .learn-word{background:none;border:0;border-radius:0;box-shadow:none;padding:0}.is-web .learn-word.is-back{animation:none}.is-web .learn-word:not(.is-back){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,336px);grid-auto-rows:min-content;align-content:start;align-items:stretch;gap:14px 18px;width:100%;max-width:980px;margin-inline:auto;padding:0;text-align:left}.is-web .learn-word .card-unit{grid-column:1 / -1;grid-row:1;justify-self:start;margin:0;padding:4px 12px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.2px;color:var(--brand-dark);background:var(--brand-soft);border-radius:999px}.is-web .learn-word .card-main{grid-column:1;grid-row:2;display:flex;align-items:center;justify-content:center;gap:30px;width:100%;margin:0;padding:16px 22px;border:2px solid #ffe3ab;border-radius:20px;background:#fffdf8}.is-web .learn-word .card-pic{width:228px;height:228px;flex:0 0 auto;border-radius:16px;box-shadow:0 10px 22px #bf912024}.is-web .learn-word .card-pic img{object-fit:contain;background:#fffaf0}.is-web .learn-word .card-info{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;min-width:0;text-align:center}.is-web .learn-word .card-phonetic{order:1;margin:0;font-size:var(--fs-xl);color:var(--ink-2)}.is-web .learn-word .card-phonetic:before{content:"音标";font-family:var(--font);font-size:var(--fs-xs);font-weight:600;color:var(--muted);margin-right:8px;letter-spacing:.6px}.is-web .learn-word .card-word{order:2;box-sizing:border-box;width:100%;height:1.641em;margin:2px 0 0;padding:0;font-size:64px;line-height:1.391em;letter-spacing:-2px;background-image:repeating-linear-gradient(90deg,#c6d2ec 0 10px,transparent 10px 20px),repeating-linear-gradient(90deg,#c6d2ec 0 10px,transparent 10px 20px),repeating-linear-gradient(90deg,#c6d2ec 0 10px,transparent 10px 20px),repeating-linear-gradient(90deg,#c6d2ec 0 10px,transparent 10px 20px);background-repeat:no-repeat;background-size:100% 2px,100% 2px,100% 2px,100% 2px;background-position:center 0,center calc(33.33% - 1px),center calc(66.66% - 1px),center 100%}.is-web .learn-word .card-syl{order:3;justify-content:center;margin-top:4px}.is-web .learn-word .card-meaning{order:4;margin-top:10px;font-size:21px;font-weight:700}.is-web .learn-word .card-pos{font-size:var(--fs-lg)}@supports selector(:has(*)){.is-web .learn-word:not(.is-back):has(.card-pic){grid-template-columns:268px minmax(0,1fr) 330px}.is-web .learn-word:has(.card-pic) .card-main{display:contents}.is-web .learn-word:has(.card-pic) .card-pic{grid-column:1;grid-row:2;width:100%;height:100%;min-height:236px;padding:10px;border:2px solid #ffe3ab;border-radius:20px;background:#fffdf8;box-shadow:0 8px 20px #bf91201a}.is-web .learn-word:has(.card-pic) .card-pic img{border-radius:13px}.is-web .learn-word:has(.card-pic) .card-info{grid-column:2;grid-row:2;padding:16px 20px;border:2px solid #ffe3ab;border-radius:20px;background:#fffdf8}.is-web .learn-word:has(.card-pic) .card-example{grid-column:3;grid-row:2}}.is-web .learn-word .card-example{grid-column:2;grid-row:2;display:flex;flex-direction:column;justify-content:center;gap:8px;width:100%;margin:0;padding:18px 20px;border:2px solid #ffe3ab;border-radius:20px;background:#fffdf8;font-size:var(--fs-lg);line-height:1.72;color:var(--ink)}.is-web .learn-word .card-example:before{content:"例句";align-self:flex-start;padding:2px 10px;border-radius:999px;font-size:var(--fs-xs);font-weight:700;color:#a9700a;background:#fff3d6}.is-web .learn-word .card-example .zh{font-size:var(--fs-sm);color:var(--muted)}.is-web .learn-word .card-fun{grid-column:1 / -1;grid-row:3;justify-self:center;width:100%;max-width:900px;margin:0;padding:10px 14px}.is-web .learn-word .mem-tip{grid-column:1 / -1;grid-row:4;justify-self:center;width:100%;max-width:900px;margin:0}.is-web .learn-word .card-actions{grid-column:1 / -1;grid-row:5;margin-top:0}.is-web .learn-word>.card-info{grid-column:1;grid-row:2;padding:16px 20px;border:2px solid #ffe3ab;border-radius:20px;background:#fffdf8}.is-web .learn-word>.card-sound{grid-column:1 / -1;grid-row:5;justify-self:center;margin-top:0}.is-web .learn-word .hack-panel{grid-column:1 / -1;grid-row:6;justify-self:center;width:100%;max-width:900px;margin:0}.is-web .learn-word.is-masked{grid-template-columns:minmax(0,1fr)}.is-web .learn-word.is-masked .card-main{width:min(620px,100%);justify-self:center;padding:26px 24px}.is-web .learn-word.is-masked .card-word{height:auto;line-height:1.3;padding:6px 0;font-size:52px;letter-spacing:8px;background-image:none;color:var(--ink)}.is-web .learn-word.is-back{display:grid;grid-template-columns:300px minmax(0,1fr);align-items:center;gap:20px;width:100%;max-width:980px;margin-inline:auto;padding:0}.is-web .learn-word.is-back .card-unit{grid-column:1 / -1;grid-row:1;justify-self:start}.is-web .learn-word.is-back .card-back{grid-column:1;grid-row:2;padding:22px 16px;border:2px dashed #dfe6f7;border-radius:20px;background:#fbfcff}.is-web .learn-word.is-back .card-main{grid-column:2;grid-row:2;width:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:26px;border:2px solid #ffe3ab;border-radius:20px;background:#fffdf8}.is-web .learn-word.is-back .card-meaning{margin-top:0;font-size:28px}.is-web .learn-word.is-back .card-sound{grid-column:1 / -1;grid-row:3;justify-self:center;margin-top:2px}.is-web .learn-body{width:100%;max-width:980px;margin:18px auto 0;padding:12px 2px 16px;border-top:1px solid rgba(214,223,246,.9)}.is-web .step-card{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:0;text-align:left;border-radius:0;background:none;box-shadow:none}.is-web .step-card .step-title{flex:0 0 auto;margin:0;justify-content:flex-start}.is-web .step-card .try,.is-web .step-card .oral-hint{flex:1 1 200px;margin:0;text-align:left}.is-web .step-card .oral-score{margin:0}.is-web .step-card .input{flex:1 1 320px;max-width:520px}.is-web .step-card .fix-word{margin:0 6px}.is-web .step-card .row{justify-content:flex-start;margin-top:0}.is-web .step-card .feedback{flex:1 1 100%;margin-top:0;text-align:left}.is-web .step-card .link-btn{padding:6px 2px}.is-web .step-card .mic-btn{padding:12px 24px;font-size:var(--fs-base)}.is-web .step-card .chunk-slots{flex:0 0 auto;align-items:flex-start;margin:0 6px 0 0}.is-web .step-card .chunk-label{font-size:var(--fs-sm);color:var(--muted)}.is-web .board{width:100%;max-width:none;margin:0}.is-web .board-head{margin-bottom:18px}.is-web .board-head h2{font-size:26px;letter-spacing:-.6px}.is-web .unit-board{grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:14px}.is-web .unit-card{padding:18px 18px 16px}.is-web .group-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.is-web .board-exit{margin-top:22px}.is-web .unit-pick-list{width:100%;max-width:640px}.is-web .warmup-card{width:100%;max-width:940px;margin:0 auto;padding:26px 30px;display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);grid-template-areas:"unit    unit" "word    try" "phon    choices" "sound   choices" ".       choices" "fb      fb" "link    link";align-items:center;justify-items:center;gap:6px 34px;text-align:center;border:1px solid #e6ecfb;border-radius:24px;background:#fff;box-shadow:0 10px 26px #1c285a0d}.is-web .warmup-card .card-unit{grid-area:unit}.is-web .warmup-card .card-word{grid-area:word;font-size:54px}.is-web .warmup-card .card-phonetic{grid-area:phon}.is-web .warmup-card .card-sound{grid-area:sound;margin-top:6px}.is-web .warmup-card .try{grid-area:try;align-self:end;justify-self:start;margin:0 0 4px;font-size:var(--fs-sm)}.is-web .warmup-card .choice-grid{grid-area:choices;width:100%;margin:0;align-content:center}.is-web .warmup-card .feedback{grid-area:fb}.is-web .warmup-card .link-btn{grid-area:link}.is-web .choice-grid{gap:14px}.is-web .choice-btn{padding:18px 16px}.is-web .dictation{max-width:620px;align-self:center}.is-web .dictation .play{width:104px;height:104px}.is-web .dictation .input{max-width:460px;margin-inline:auto}.is-web .dictation .row{max-width:460px;margin:10px auto 0;justify-content:center}.is-web .check-stage .row{justify-content:center;margin-top:10px}.is-web .check-input{max-width:460px;margin-inline:auto}.is-web .check-wrong{max-height:46vh;overflow-y:auto}.is-web .check-hist-list{max-height:none;overflow:visible}.is-web .done-screen{max-width:860px;align-self:center}.is-web .done-screen h2{font-size:30px}.is-web .done-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.is-web .done-stat{padding:18px 10px}.is-web .done-stat strong{font-size:30px}.is-web .check-stage{width:100%;max-width:720px}.is-web .check-word{font-size:62px}.is-web .check-mean{font-size:34px}.is-web .check-kinds{width:min(560px,100%)}.is-web .check-stage .choice-grid{gap:14px}.is-web .pic-zoom-card{width:min(560px,100%)}.is-web .pic-zoom-card>img{width:min(420px,100%)}.is-web .tb-page{max-width:980px;margin:0 auto;width:100%;gap:16px}.is-web .tb-panel{padding:20px 22px 18px}.is-web .tb-sents{padding:0 4px 14px}.is-web .tb-sent{flex-wrap:nowrap;padding:14px 0}.is-web .tb-reader{padding:12px}.is-web .tb-stage,.is-web .tb-bar{max-width:880px;margin:0 auto;width:100%}
