:root{color:#202124;background:#f5f5f4;font-family:Segoe UI,Microsoft YaHei,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{color:#fff;cursor:pointer;background:#2f3133;border:1px solid #2f3133;padding:7px 12px}button:disabled{opacity:.55;cursor:wait}button.ghost,aside button,.tabs button{color:#2f3133;background:#fff;border-color:#d8d8d5}button.on,aside button.on,.tabs button.on{color:#fff;background:#2f3133}button.danger{color:#9f1d1d}button.danger.ghost{background:#fff7f7;border-color:#e0b4b4}.header-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.token-panel{margin:12px 0;padding:12px 14px}.token-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.token-row input{background:#fff;border:1px solid #d8d8d5;flex:1;min-width:220px;padding:7px 10px}.token-status{color:#5c5d60;margin-top:8px;font-size:12px}.login-page{background:radial-gradient(1200px 500px at 10% -10%,#e8ecef 0%,#0000 55%),radial-gradient(900px 400px at 100% 0,#ece8e2 0%,#0000 50%),#f5f5f4;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border:1px solid #e4e4e1;width:min(420px,100%);padding:28px 28px 22px;box-shadow:0 12px 40px #2021240f}.login-brand{letter-spacing:.08em;color:#6c6d70;margin-bottom:8px;font-size:12px;font-weight:700}.login-card h1{margin:0 0 8px;font-size:22px}.login-sub{color:#5c5d60;margin:0 0 18px;font-size:13px;line-height:1.5}.login-form{gap:12px;display:grid}.login-form label{color:#5c5d60;gap:6px;font-size:12px;display:grid}.login-form input{color:#202124;background:#fff;border:1px solid #d8d8d5;padding:9px 11px}.login-form button[type=submit]{width:100%;margin-top:4px;padding:10px 12px}.login-error{color:#9f1d1d;margin:0;font-size:13px}.login-advanced{color:#5c5d60;margin-top:18px;font-size:12px}.login-advanced summary{cursor:pointer;-webkit-user-select:none;user-select:none}.login-hint{margin:8px 0;line-height:1.45}.login-warn{color:#6a5410;background:#f4f3ef;border:1px solid #f0e0b8;margin:14px 0 0;padding:10px 12px;font-size:12px;line-height:1.45}.login-warn code,.login-hint code,.login-sub code{font-size:11px}.toolbar-actions{flex-wrap:wrap;gap:6px;display:flex}.list-pager{border-top:1px solid #ececea;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px 14px;display:flex}.list-pager-meta{color:#5c5d60;font-size:12px}.list-pager-actions{gap:6px;display:flex}.ops-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;padding:14px;display:grid}.ops-card{background:#fafaf9;border:1px solid #e7e7e4;padding:12px 14px}.ops-card h3{margin-bottom:8px}.ops-result{margin:0 14px 14px}.ops-pre{min-height:0;max-height:280px;margin:8px 0 0;padding:10px;font-size:12px}.kv{gap:6px;margin:0;display:grid}.kv>div{grid-template-columns:96px 1fr;gap:8px;font-size:12px;display:grid}.kv dt{color:#6c6d70}.kv dd{color:#2f3133;margin:0}.empty-inline{color:#85868a;margin-top:8px;font-size:12px}.audit-filters{border-bottom:1px solid #e7e7e4;flex-wrap:wrap;align-items:end;gap:10px;padding:12px 14px;display:flex}.audit-filters label{flex:1;min-width:180px}.pager{border-top:1px solid #e7e7e4;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:12px;display:flex}.actions{flex-wrap:wrap;gap:6px;display:flex}.recycle-tabs{margin-top:0;padding:0 14px}.recycle-tabs button{align-items:center;gap:6px;display:inline-flex}.count-chip{color:#5c5d60;text-align:center;background:#f3f3f0;border:1px solid #d0d0cc;border-radius:999px;min-width:18px;padding:0 6px;font-size:11px;line-height:16px;display:inline-block}button.on .count-chip{color:#fff;background:#3a3b3d;border-color:#5a5b5e}.badge.passed{color:#1f6d3a;background:#eef7f1;border-color:#aacbb5}.badge.failed{color:#9f1d1d;background:#fbf0f0;border-color:#d9b2b2}.shell{min-height:100vh;display:flex}aside{background:#eeeeeb;border-right:1px solid #dededb;width:176px;padding:18px 12px}.brand{letter-spacing:.12em;margin:0 0 18px 4px;font-weight:700}aside button{text-align:left;width:100%;margin-bottom:8px;display:block}.nav-group{gap:6px;display:grid}.nav-parent{justify-content:space-between;align-items:center;font-weight:600;display:flex}.nav-children{border-left:1px solid #d2d2ce;gap:6px;padding-left:10px;display:grid}.nav-children button{margin-bottom:0}.chevron{color:#777}main{flex:1;min-width:0;padding:18px 22px}header,.toolbar,.editor-head{justify-content:space-between;align-items:center;gap:16px;display:flex}h1,h2,h3,p{margin:0}h1{font-size:20px}h2{font-size:16px}h3{font-size:15px}p{color:#6c6d70;margin-top:4px;font-size:12px}.tabs{gap:6px;margin:18px 0 12px;display:flex}.notice{color:#4f5052;background:#f7f7f5;border:1px solid #d8d8d5;margin:12px 0;padding:9px 12px;font-size:12px}.notice.error{color:#9f1d1d;background:#fbf0f0;border-color:#d9b2b2}.learn-api-error strong{margin-bottom:6px;display:block}.learn-api-error p{color:inherit;margin:6px 0;line-height:1.5}.learn-api-hint{opacity:.95;font-size:12px}.learn-api-error code{background:#9f1d1d14;padding:1px 4px;font-family:ui-monospace,Consolas,monospace;font-size:11px}.learn-api-error button{margin-top:10px}.level-audio{width:100%;max-width:280px;margin:6px 0;display:block}.audio-url-hint{color:#5c5d60;margin:4px 0 8px;font-size:12px;line-height:1.4}.panel{background:#fff;border:1px solid #dededb}.toolbar{border-bottom:1px solid #e7e7e4;padding:12px 14px}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #ececea;padding:9px 10px}th{color:#5c5d60;background:#fafaf9;font-size:12px;font-weight:600}.strong{font-weight:600}.mono{font-family:Consolas,monospace;font-size:12px}.truncate{text-overflow:ellipsis;white-space:nowrap;max-width:360px;overflow:hidden}.actions{white-space:nowrap}.actions button{margin-right:6px;padding:5px 8px}.badge{color:#5d5e61;background:#f5f5f3;border:1px solid #cfd0cc;padding:0 7px;font-size:11px;line-height:18px;display:inline-block}.badge.active{color:#1f6d3a;background:#eef7f1;border-color:#aacbb5}.badge.inactive{color:#777;background:#efefec}.ad-thumb{object-fit:cover;background:#f5f5f3;border:1px solid #d8d8d5;width:86px;height:46px}.ad-preview{object-fit:contain;background:#f5f5f3;border:1px solid #d8d8d5;width:100%;max-height:160px}.empty{text-align:center;color:#85868a;padding:28px}.drawer{background:#fff;border-left:1px solid #d8d8d5;width:360px;padding:16px}.editor{gap:12px;display:grid}.editor .hint{color:#777;margin:-4px 0 0;font-size:12px;line-height:1.4}.batch-body{grid-template-columns:1fr 320px;gap:12px;padding:14px;display:grid}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.level-preview{padding:14px;overflow:auto}.level-preview textarea{min-width:220px;margin-top:8px}.level-question-cell{min-width:260px}.level-images{grid-template-columns:1fr 1fr;gap:10px;min-width:360px;display:grid}.level-image-box,.level-audio-box{gap:8px;display:grid}.level-image-box img{object-fit:cover;border:1px solid #d8d8d5;width:100%;height:120px}.gen-state{color:#6c6d70;min-height:16px;font-size:12px}.image-prompt-used{color:#5f6064;font-size:12px}.image-prompt-used summary{cursor:pointer}.image-prompt-used p{white-space:pre-wrap;word-break:break-word;margin:6px 0 0}.save-progress{background:#f7f7f5;border:1px solid #d8d8d5;gap:8px;margin-bottom:12px;padding:10px 12px;display:grid}.save-progress-head{color:#3f4042;align-items:center;gap:8px;font-size:12px;display:flex}.progress-track{background:#e5e5e1;border:1px solid #d4d4cf;height:6px;overflow:hidden}.progress-track span{background:#2f3133;height:100%;transition:width .2s;display:block}.muted{opacity:.68}.level-audio-box audio{width:100%}label{color:#555;gap:5px;font-size:12px;display:grid}input,select,textarea{color:#202124;background:#fff;border:1px solid #d5d5d1;width:100%;padding:7px 8px}textarea{resize:vertical}.invoke{padding-bottom:14px}.invoke-grid{grid-template-columns:1fr 1fr;gap:12px;padding:14px;display:grid}pre{background:#f3f3f0;border:1px solid #dededb;min-height:160px;margin:0 14px;padding:12px;overflow:auto}.preview-row{grid-template-columns:220px 1fr;gap:12px;padding:0 14px 14px;display:grid}.preview-row pre{margin:0}.gen-side{gap:8px;min-width:0;display:grid}.tts-path-hint{color:#5c5d60;margin:0;font-size:12px;line-height:1.45}.gen-audio-link{margin:0;font-size:12px}.gen-audio-link a{color:#1a5fb4;word-break:break-all}.image-placeholder{text-align:center;color:#636467;background:repeating-linear-gradient(45deg,#f8f8f6,#f8f8f6 8px,#eeeeeb 8px 16px);border:1px dashed #bcbdb8;place-content:center;gap:6px;min-height:180px;display:grid}.image-placeholder span{letter-spacing:.12em;font-size:11px}.image-placeholder strong{color:#2f3133;font-size:14px}.image-placeholder.ready{background:#fff;border-style:solid;place-content:stretch}.image-placeholder.failed{background:#fbf0f0;border-color:#d9b2b2}.image-placeholder img,.image-placeholder video{object-fit:cover;width:100%;height:100%;min-height:180px;display:block}.learn-stage{gap:16px;display:grid}.learn-hero{background:radial-gradient(circle at 88% 18%,#ffcf5673,#0000 26%),linear-gradient(135deg,#f6f5f2 0%,#f6efe0 52%,#e9f2ec 100%);border:1px solid #26282a;justify-content:space-between;gap:18px;padding:24px;display:flex;box-shadow:8px 8px #2f3133}.learn-hero h2{letter-spacing:-.04em;margin-top:4px;font-size:30px}.eyebrow{color:#9f5b1d;letter-spacing:.16em;text-transform:uppercase;font-size:11px;font-weight:800}.learn-stats-col{flex-direction:column;align-items:stretch;gap:8px;min-width:112px;display:flex}.learn-stats{text-align:center;background:#ffffffb8;border:1px solid #2f3133;place-content:center;min-width:112px;padding:10px 8px;display:grid}.learn-stats.sub strong{font-size:22px}.learn-stats strong{font-size:34px;line-height:1}.learn-stats span{color:#6c6d70;font-size:12px}.learn-reset{padding:6px 8px;font-size:12px}.learn-empty{color:#6c6d70;text-align:center;background:#fff;border:1px dashed #b9bab5;padding:32px}.level-picker{gap:10px;padding:8px 0 12px;display:flex;overflow-x:auto}.learn-nav-stack{gap:8px;display:grid}.category-play-bar{align-items:center;gap:8px;min-width:0;display:flex}.category-play-bar .category-picker{flex:auto;min-width:0}.category-play-btn{display:none}@media (width<=640px){.learn-nav-stack{grid-template-rows:auto auto}.learn-nav-stack .level-row-picker{order:1}.learn-nav-stack .category-play-bar{order:2}}.level-chip{text-align:left;color:#2f3133;background:radial-gradient(circle at 18% 18%,#ffcf5638,#0000 46%),linear-gradient(160deg,#fff,#fffaf0);border:1.5px solid #2f3133;border-radius:16px;gap:3px;min-width:148px;padding:8px 10px;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s;display:grid;box-shadow:2px 2px #2f31331a}.category-chip{background:radial-gradient(circle at 80% 18%,#7ed0ff2e,#0000 48%),linear-gradient(160deg,#fff,#f4fbff);min-width:120px}.level-chip small{color:#6a6b6e;font-weight:600}.level-chip:active{transform:translateY(1px);box-shadow:1px 1px #2f31331a}.level-chip.on{color:#2f3133;outline-offset:0;background:linear-gradient(160deg,#ffe9a8,#ffd978 55%,#f0c86a);outline:1px solid #f0c86a8c;transform:none;box-shadow:2px 2px #2f31331f}.level-chip.on small{color:#6a5a28}.category-chip.on{color:#2f3133;outline-offset:0;background:linear-gradient(160deg,#d9f1ff,#b7e2f7 60%,#9fd4ef);outline:1px solid #9fd4efa6;transform:none;box-shadow:2px 2px #2f31331f}.category-chip.on small{color:#2f5d73}.level-chip.done{background:radial-gradient(circle at 20% 20%,#9be15d38,#0000 46%),linear-gradient(160deg,#f7fbf4,#eef5ea);border-color:#2f3133}.level-chip.done.on{background:linear-gradient(160deg,#e2f2c8,#cfe8a8 55%,#b7d98a)}.level-chip.done.on small{color:#3d5a2a}.practice-card{background:#fff;border:1px solid #e8e4dc;border-radius:22px;gap:16px;padding:20px;display:grid;box-shadow:0 4px 16px #2f31330a}.practice-topbar{background:radial-gradient(circle at 10% 20%,#ffcf5629,#0000 42%),radial-gradient(circle at 92% 80%,#7ed0ff1f,#0000 40%),linear-gradient(#fffdf8,#f7f5f0);border:1px solid #e4e0d8;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;min-height:56px;max-height:none;padding:8px 10px;display:flex;overflow:visible;box-shadow:0 2px 10px #2f31330d}.practice-title-block{gap:3px;min-width:0;display:grid;overflow:hidden}.practice-level-tag{color:#2f3133;letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(160deg,#fff1c2,#ffe089 55%,#f5d36a);border:1.5px solid #2f3133;border-radius:999px;width:fit-content;max-width:100%;padding:2px 8px;font-size:11px;font-weight:800;line-height:1.25;display:inline-flex;overflow:hidden}.practice-topbar h3{letter-spacing:-.03em;color:#2f3133;white-space:nowrap;text-overflow:ellipsis;align-items:baseline;gap:3px;margin:0;font-size:18px;line-height:1.15;display:flex;overflow:hidden}.practice-q-label{color:#5c5d60;font-size:13px;font-weight:700}.practice-q-num{color:#2f3133;font-size:22px;font-weight:900}.practice-q-sep{color:#8a8b8e;margin:0 1px;font-size:14px;font-weight:700}.practice-q-total{color:#4f5052;font-size:16px;font-weight:800}.practice-topbar-actions{flex:none;align-items:center;gap:8px;display:flex}.practice-reset-btn{color:#5c5d60;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fffdf8;border:1px solid #ddd9d0;border-radius:50%;flex:none;place-items:center;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;line-height:0;display:none;box-shadow:0 1px 3px #2f31330f}.practice-reset-btn:hover{background:linear-gradient(160deg,#fff3c8,#ffe089)}.practice-reset-btn:active{transform:translateY(1px);box-shadow:1px 1px #2f31331f}.practice-reset-btn svg{display:block}.progress-ring{background:conic-gradient(#e2b84d var(--progress), #eceae4 0);color:#2f3133;border:1px solid #e0ddd6;border-radius:50%;flex:none;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 1px 3px #2f31330f}.progress-ring strong{letter-spacing:-.02em;color:#4f5052;background:#fff;border:1px solid #e4e4e1;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;font-weight:800;display:grid}.learn-progress{margin-top:-8px}.listen-panel{background:#f6f5f2;border:1px solid #e2dfd6;grid-template-columns:150px 1fr;align-items:center;gap:12px;padding:14px;display:grid}.listen-panel p{color:#4f5052;grid-column:1/-1;font-size:14px}.listen-panel audio{width:100%}.play-button{min-height:44px;font-weight:700}.play-button:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.2)}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px;max-height:min(52vh,420px);display:grid;overflow:hidden}.choice-card{color:#202124;text-align:left;background:#fff;border:2px solid #d8d8d5;grid-template-rows:minmax(0,1fr) auto;gap:10px;height:100%;min-height:0;padding:10px;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid;overflow:hidden}.choice-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px #2021241f}.choice-card:disabled{cursor:wait;opacity:.92}.choice-media{background:radial-gradient(circle at 30% 30%,#fff7d6,#0000 45%),linear-gradient(145deg,#f7fbff,#f3f3f0);border:1px solid #ececea;width:100%;height:100%;min-height:0;position:relative;overflow:hidden}.choice-card img,.choice-placeholder{object-fit:cover;background:0 0;width:100%;height:100%;min-height:160px;max-height:none;display:block}.choice-card img{border:0;transition:opacity .2s}.choice-card img.is-loading{opacity:.15}.choice-placeholder{color:#85868a;place-items:center;min-height:160px;display:grid}.choice-loading{pointer-events:none;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.choice-loading-dot{background:#ffb347;border-radius:50%;width:10px;height:10px;animation:.9s ease-in-out infinite choice-bounce;box-shadow:0 0 0 2px #2f313314}.choice-loading-dot:nth-child(2){background:#7ed0ff;animation-delay:.12s}.choice-loading-dot:nth-child(3){background:#9be15d;animation-delay:.24s}.mobile-play-dock{display:none}.choice-card span{word-break:break-word;font-size:16px;font-weight:700;line-height:1.25}.choice-card.correct{background:#eefaf2;border-color:#1f8f4d}.choice-card.wrong{background:#fff0ee;border-color:#c94134;animation:.18s linear 2 shake}.choice-card.picked{box-shadow:0 0 0 3px #2f31331f}.learn-ad-slot{contain:layout paint;box-sizing:border-box;color:#a0a19d;letter-spacing:.18em;background:repeating-linear-gradient(45deg,#f7f7f5,#f7f7f5 8px,#eeeeeb 8px 16px);border:1px dashed #d4d4cf;place-items:center;width:100%;min-width:0;font-size:12px;text-decoration:none;display:none;position:relative;overflow:hidden}.learn-ad-slot img{object-fit:cover;width:100%;max-width:none;height:100%;max-height:none;display:block;position:absolute;inset:0}.learn-ad-top{height:96px;min-height:96px;max-height:96px}.learn-ad-bottom{height:150px;min-height:150px;max-height:150px}.pass-dialog-backdrop{z-index:40;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#2021246b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pass-dialog{text-align:center;background:radial-gradient(circle at 18% 12%,#ffcf5680,#0000 30%),radial-gradient(circle at 88% 18%,#7ed0ff59,#0000 28%),linear-gradient(160deg,#fffdf7,#f3fbff 55%,#eef9f2);border:2px solid #2f3133;border-radius:26px;justify-items:center;gap:10px;width:min(380px,100%);padding:28px 22px 22px;animation:.18s ease-out pop-in;display:grid;position:relative;overflow:hidden;box-shadow:8px 8px #2f313329}.pass-dialog--celebrate{gap:8px}.pass-dialog-sky{pointer-events:none;position:absolute;inset:0}.pass-mascot{z-index:1;width:96px;height:96px}.pass-mascot .learn-mascot-face{width:72px;height:72px}.pass-mascot .learn-mascot-face .eye{width:9px!important;height:11px!important;top:24px!important}.pass-mascot .learn-mascot-face .eye.left{left:18px!important}.pass-mascot .learn-mascot-face .eye.right{right:18px!important}.pass-mascot .learn-mascot-face .cheek{width:10px!important;height:7px!important;top:38px!important}.pass-mascot .learn-mascot-face .cheek.left{left:11px!important}.pass-mascot .learn-mascot-face .cheek.right{right:11px!important}.pass-mascot .learn-mascot-face .smile{border-width:2.5px!important;width:24px!important;height:12px!important;bottom:14px!important}.pass-mascot .learn-mascot-body{width:44px;height:15px}.pass-dialog h3{letter-spacing:-.04em;color:#2f3133;z-index:1;margin:2px 0 0;font-size:24px}.pass-dialog p{color:#4f5052;z-index:1;margin:0;font-size:14px;line-height:1.45}.pass-prefetch-hint{color:#6c6d70!important;font-size:12px!important}.pass-dialog-actions{z-index:1;gap:8px;margin-top:4px;display:flex}.pass-primary-btn{border-radius:14px;min-width:148px;min-height:44px;font-weight:800;box-shadow:3px 3px #2f313324;color:#2f3133!important;background:linear-gradient(160deg,#ffe27a,#ffcf56 55%,#ffb347)!important;border:2px solid #2f3133!important}.pass-primary-btn:active{transform:translateY(1px);box-shadow:1px 1px #2f31331f}.pass-burst{color:#2f3133;background:#ffcf56;border:2px solid #2f3133;border-radius:50%;place-items:center;width:58px;height:58px;font-size:30px;display:grid}@keyframes pop-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.reset-dialog-backdrop{z-index:22;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#20212475;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.reset-dialog{text-align:center;background:radial-gradient(circle at 18% 10%,#ffcf5680,#0000 28%),radial-gradient(circle at 88% 18%,#7ed0ff6b,#0000 30%),linear-gradient(160deg,#f7f7f5,#f2f3f4 55%,#f4fbe9);border:2px solid #2f3133;border-radius:22px;justify-items:center;gap:10px;width:min(360px,100%);padding:28px 22px 20px;animation:.2s ease-out pop-in;display:grid;position:relative;overflow:hidden;box-shadow:8px 8px #2f3133}.reset-dialog-sky{pointer-events:none;position:absolute;inset:0;overflow:hidden}.reset-spark{color:#ffb347;opacity:.75;font-size:14px;animation:1.8s ease-in-out infinite spark-twinkle;position:absolute}.reset-spark.s1{color:#ffcf56;top:16px;left:22px}.reset-spark.s2{color:#7ed0ff;font-size:12px;animation-delay:.35s;top:28px;right:26px}.reset-spark.s3{color:#9be15d;font-size:11px;animation-delay:.7s;bottom:64px;left:34px}.reset-mascot{margin-top:2px}.learn-mascot-face.is-wonder .smile{display:none}.learn-mascot-face .mouth-o{box-sizing:border-box;background:0 0;border:3px solid #2f3133;border-radius:50%;width:14px;height:14px;margin-left:-7px;display:none;position:absolute;bottom:16px;left:50%}.learn-mascot-face.is-wonder .mouth-o{display:block}.reset-dialog h3{letter-spacing:-.03em;color:#2f3133;margin:2px 0 0;font-size:24px}.reset-dialog p{color:#5c5d60;max-width:28em;margin:0;font-size:14px;line-height:1.55}.reset-dialog-actions{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;margin-top:6px;display:flex}.reset-dialog-actions button{border-radius:14px;min-width:118px;min-height:44px;font-weight:800;box-shadow:3px 3px #2f313324}.reset-keep-btn{color:#2f3133!important;background:#fff!important;border-color:#2f3133!important}.reset-confirm-btn{color:#2f3133!important;background:linear-gradient(#ffe27a,#ffcf56)!important;border:2px solid #2f3133!important}.reset-confirm-btn:active,.reset-keep-btn:active{transform:translateY(1px);box-shadow:1px 1px #2f313324}@keyframes spark-twinkle{0%,to{opacity:.35;transform:scale(.9)rotate(0)}50%{opacity:1;transform:scale(1.15)rotate(12deg)}}@keyframes shake{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@keyframes choice-bounce{0%,80%,to{opacity:.7;transform:translateY(0)scale(1)}40%{opacity:1;transform:translateY(-7px)scale(1.12)}}.learn-loading-screen{background:radial-gradient(circle at 18% 18%,#ffcf568c,#0000 28%),radial-gradient(circle at 88% 12%,#7ed0ff80,#0000 26%),linear-gradient(160deg,#fff8e8 0%,#eef9ff 48%,#e9f8ef 100%);border:2px solid #2f3133;place-items:center;min-height:min(78vh,640px);padding:28px 16px;display:grid;position:relative;overflow:hidden;box-shadow:8px 8px #2f3133}.learn-loading-sky{pointer-events:none;position:absolute;inset:0;overflow:hidden}.learn-cloud{opacity:.9;background:#ffffffdb;border-radius:40px;width:86px;height:34px;animation:12s linear infinite cloud-drift;position:absolute;box-shadow:18px 8px 0 -4px #ffffffdb,36px 4px 0 -8px #ffffffdb}.learn-cloud.c1{animation-duration:14s;top:14%;left:-20%}.learn-cloud.c2{width:64px;height:26px;animation-duration:18s;animation-delay:-4s;top:28%;left:-30%}.learn-cloud.c3{width:74px;height:28px;animation-duration:16s;animation-delay:-8s;top:48%;left:-25%}.learn-loading-card{z-index:1;text-align:center;background:radial-gradient(circle at 20% 12%,#ffcf5673,#0000 28%),linear-gradient(160deg,#fffdf7,#f3fbff);border:2px solid #2f3133;border-radius:28px;justify-items:center;gap:10px;width:min(360px,100%);padding:28px 22px 22px;display:grid;position:relative;box-shadow:6px 6px #2f3133}.learn-loading-card h2{letter-spacing:-.03em;color:#2f3133;margin:4px 0 0;font-size:26px}.learn-loading-card p{color:#5c5d60;margin:0;font-size:14px;line-height:1.5}.learn-mascot{place-items:center;width:112px;height:112px;animation:2.2s ease-in-out infinite mascot-float;display:grid}.learn-mascot-face{background:linear-gradient(160deg,#ffe27a,#ffcf56 55%,#ffb347);border:3px solid #2f3133;border-radius:50%;width:84px;height:84px;position:relative;box-shadow:0 8px #2f31331f}.learn-mascot-face .eye{background:#2f3133;border-radius:50%;width:10px;height:12px;animation:3.4s ease-in-out infinite blink;position:absolute;top:30px}.learn-mascot-face .eye.left{left:22px}.learn-mascot-face .eye.right{right:22px}.learn-mascot-face .cheek{background:#ff787873;border-radius:50%;width:12px;height:8px;position:absolute;top:46px}.learn-mascot-face .cheek.left{left:14px}.learn-mascot-face .cheek.right{right:14px}.learn-mascot-face .smile{background:0 0;border:3px solid #2f3133;border-top:0;border-radius:0 0 18px 18px;width:28px;height:14px;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.learn-mascot-body{background:#7ed0ff;border:2px solid #2f3133;border-radius:16px;width:54px;height:18px;margin-top:-8px}.learn-loading-track{background:#fff;border:2px solid #2f3133;border-radius:999px;width:100%;height:14px;margin-top:8px;overflow:hidden}.learn-loading-runner{border-radius:inherit;background:linear-gradient(90deg,#ffcf56,#9be15d 55%,#7ed0ff);width:38%;height:100%;animation:1.2s ease-in-out infinite loading-slide;display:block}.learn-loading-dots{gap:8px;margin-top:2px;display:flex}.learn-loading-dots span{background:#ffb347;border-radius:50%;width:10px;height:10px;animation:.9s ease-in-out infinite choice-bounce}.learn-loading-dots span:nth-child(2){background:#7ed0ff;animation-delay:.12s}.learn-loading-dots span:nth-child(3){background:#9be15d;animation-delay:.24s}@keyframes cloud-drift{0%{transform:translate(0)}to{transform:translate(140vw)}}@keyframes mascot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes blink{0%,42%,46%,to{transform:scaleY(1)}44%{transform:scaleY(.12)}}@keyframes loading-slide{0%{transform:translate(-110%)}to{transform:translate(280%)}}@media (width<=900px){.shell{display:block}aside,.drawer{width:auto}aside button{width:auto;display:inline-block}.drawer{border-top:1px solid #d8d8d5;border-left:0}.choice-grid,.listen-panel{grid-template-columns:1fr}.learn-hero{box-shadow:0 -8px 20px #2f313314}}@media (width<=640px){:root{font-size:13px}body{background:#fff}.learn-app{padding:0}.learn-app-head,.learn-hero,.learn-progress,.listen-panel audio,.listen-panel p{display:none}.learn-stage{background:#f3f3f0;gap:6px;min-height:100dvh;padding-bottom:176px}.learn-nav-stack{z-index:15;background:radial-gradient(circle at 14% 0,#ffcf562e,#0000 40%),radial-gradient(circle at 90% 100%,#7ed0ff1f,#0000 42%),linear-gradient(#fffdf8 0%,#f6f4ef 100%);border-top:1px solid #e2ddd4;grid-template-rows:auto auto;gap:0;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 20px #2f313314}.learn-nav-stack .level-row-picker{order:1}.learn-nav-stack .category-play-bar{order:2}.learn-nav-stack .level-picker{z-index:auto;box-shadow:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:0 0;border-top:0;gap:8px;padding-top:4px;padding-bottom:4px;position:static;bottom:auto;left:auto;right:auto;overflow:auto visible}.learn-nav-stack .level-row-picker{border-bottom:2px dashed #2f31331f;padding:10px}.learn-nav-stack .category-play-bar{padding:10px 10px calc(10px + env(safe-area-inset-bottom));border-bottom:0;align-items:center;overflow:visible}.learn-nav-stack .category-picker{margin:0;padding:4px 2px 6px}.category-play-btn{text-align:center;letter-spacing:.02em;border-radius:16px;flex:none;justify-content:center;align-items:center;width:88px;min-height:52px;padding:6px 8px;font-weight:800;display:inline-flex;box-shadow:2px 2px #2f31331f;color:#2f3133!important;background:linear-gradient(160deg,#fff1c2,#ffe089 55%,#f0c86a)!important;border:1.5px solid #2f3133!important}.category-play-btn:active{transform:translateY(1px);box-shadow:1px 1px #2f31331f}.category-play-btn:disabled{opacity:.55;filter:grayscale(.15)}.level-picker{z-index:15;padding:8px 10px calc(8px + env(safe-area-inset-bottom)) 10px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:radial-gradient(circle at 14% 0,#ffcf5659,#0000 36%),linear-gradient(#f7f7f5,#f4f5f6);border-top:2px solid #2f3133;border-bottom:0;gap:8px;position:fixed;bottom:0;left:0;right:0;overflow-x:auto;box-shadow:0 -8px 24px #2f31331f}.level-picker::-webkit-scrollbar{display:none}.level-chip{border-radius:16px;flex:none;min-width:96px;min-height:54px;padding:7px 10px;font-size:12px}.category-chip{text-align:center;border-radius:999px;place-content:center;min-width:86px;min-height:48px}.category-chip span{font-size:12px;line-height:1.15}.level-chip small{white-space:nowrap;margin-top:auto;font-size:10px}.category-chip small{margin-top:1px;font-size:10px}.practice-card{background:#fff;border:0;gap:7px;padding:8px}.learn-ad-top{order:-2;display:grid;height:72px!important;min-height:72px!important;max-height:72px!important}.learn-ad-bottom{display:grid;height:110px!important;min-height:110px!important;max-height:110px!important}.practice-card{border-radius:18px;gap:10px;padding:10px;box-shadow:4px 4px #2f313314}.practice-topbar{border-radius:16px;align-items:center;min-height:52px;max-height:none;padding:8px 10px;overflow:visible;box-shadow:2px 2px #2f313324}.practice-level-tag{max-width:min(42vw,160px);padding:2px 7px;font-size:10px;display:inline-flex}.practice-topbar h3{gap:2px;margin-top:0;font-size:15px}.practice-q-num{font-size:20px}.practice-q-total{font-size:14px}.practice-q-label{font-size:12px}.practice-topbar-actions{gap:7px}.practice-reset-btn{background:linear-gradient(160deg,#fff,#f1f3f5);width:38px;min-width:38px;height:38px;min-height:38px;display:grid}.progress-ring{background:conic-gradient(#e2b84d var(--progress), #eceae4 0);flex:none;width:42px;height:42px}.progress-ring strong{width:30px;height:30px;font-size:10px}.listen-panel{display:none}.mobile-play-dock{right:10px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:17;width:86px;display:none;position:fixed}.mobile-play-dock .play-button{text-align:center;border-radius:14px;width:100%;min-height:52px;padding:6px 8px;font-weight:800;box-shadow:0 5px 14px #20212438}.learn-ad-slot img{object-fit:cover!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;position:absolute!important;inset:0!important}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:min(52dvh,360px);max-height:none;overflow:hidden}.choice-card{border-width:2px;gap:0;height:100%;min-height:0;padding:0;display:block;position:relative;overflow:hidden}.choice-card:hover{box-shadow:none;transform:none}.choice-media{border:0;height:100%;min-height:0;position:absolute;inset:0}.choice-card img,.choice-placeholder{object-position:center top;object-fit:cover!important;height:100%!important;min-height:0!important;max-height:none!important}.choice-card span{z-index:2;color:#fff;text-align:center;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#202124b8;border-radius:999px;width:calc(100% - 16px);max-width:calc(100% - 16px);margin:0;padding:6px 8px;font-size:12px;font-weight:800;line-height:1.2;display:block;position:absolute;bottom:8px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 8px #0000002e}.choice-card.correct span{background:#1f8f4de0}.choice-card.wrong span{background:#c94134e0}.learn-loading-screen{min-height:100dvh;box-shadow:none;border:0;border-radius:0}.pass-dialog-backdrop{padding:14px}.pass-dialog{gap:10px;padding:22px 18px 18px;box-shadow:4px 4px #2f31331f}.pass-dialog h3{font-size:22px}.pass-burst{width:46px;height:46px;font-size:24px}.reset-dialog-backdrop{padding:14px}.reset-dialog{border-radius:18px;gap:8px;padding:24px 16px 16px;box-shadow:4px 4px #2f31331f}.reset-dialog h3{font-size:20px}.reset-dialog p{font-size:13px}.reset-dialog-actions{gap:8px}.reset-dialog-actions button{flex:120px;min-width:0;min-height:46px}}.level-audio{width:100%;max-width:280px;margin:6px 0}.audio-url-hint{color:#5c5d60;margin:4px 0 8px;font-size:12px}.audio-url-hint a{color:#1a5fb4;margin-right:6px}.level-preview-panel .preview-toolbar-actions{flex-wrap:wrap;gap:8px;display:flex}.level-preview-panel .preview-code{color:#5c5d60;margin-left:8px}.preview-loading{text-align:center;color:#5c5d60;background:#fff;border:1px dashed #d8d8d5;padding:28px 16px}.preview-frame{gap:12px;display:grid}.preview-banner{background:linear-gradient(90deg,#fff7d6,#f2f3f4);border:2px solid #2f3133;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 14px;display:flex;box-shadow:3px 3px #2f31331f}.preview-banner strong{letter-spacing:.04em;font-size:13px}.preview-banner span{color:#5c5d60;font-size:13px}.level-preview-panel .learn-stage{margin-top:0}.level-preview-panel .learn-hero{box-shadow:none}.col-sort{white-space:nowrap;width:88px}.sort-input{color:#2f3133;text-align:center;background:#fff;border:1px solid #d8d8d5;width:72px;max-width:100%;padding:5px 6px;font-size:13px}.sort-input:focus{border-color:#2f3133;outline:2px solid #2f31332e}.sort-input:disabled{opacity:.55;cursor:wait}.meta-select{color:#2f3133;background:#fff;border:1px solid #d8d8d5;max-width:140px;padding:5px 6px;font-size:12px}.meta-select:disabled{opacity:.55;cursor:wait}.list-filters{background:#fafaf9;border-bottom:1px solid #e7e7e4;flex-wrap:wrap;align-items:end;gap:10px;padding:12px 14px;display:flex}.list-filters label{color:#5c5d60;gap:4px;min-width:120px;font-size:12px;display:grid}.list-filters select,.list-filters input[type=search]{color:#2f3133;background:#fff;border:1px solid #d8d8d5;min-width:140px;padding:6px 8px}.list-filters .filter-q{flex:180px}.list-filters .filter-q input{width:100%;min-width:160px}.name-input{color:#2f3133;background:#fff;border:1px solid #d8d8d5;width:min(220px,100%);padding:5px 8px;font-weight:600}.name-input:focus{border-color:#2f3133;outline:2px solid #2f313329}.name-input:disabled{opacity:.55;cursor:wait}.switch-loading-backdrop{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#20212461;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.switch-loading-card{text-align:center;background:radial-gradient(circle at 18% 12%,#ffcf5666,#0000 34%),linear-gradient(160deg,#fffdf7,#f3fbff);border:2px solid #2f3133;border-radius:22px;justify-items:center;gap:8px;width:min(320px,100%);padding:22px 18px 18px;animation:.16s ease-out pop-in;display:grid;box-shadow:6px 6px #2f313324}.switch-loading-card h3{letter-spacing:-.03em;color:#2f3133;margin:2px 0 0;font-size:20px}.switch-loading-card p{color:#5c5d60;margin:0;font-size:13px;line-height:1.45}.switch-mascot{width:84px;height:84px}.switch-mascot .learn-mascot-face{width:64px;height:64px}.switch-mascot .learn-mascot-face .eye{width:8px!important;height:10px!important;top:22px!important}.switch-mascot .learn-mascot-face .eye.left{left:16px!important}.switch-mascot .learn-mascot-face .eye.right{right:16px!important}.switch-mascot .learn-mascot-face .cheek{width:9px!important;height:6px!important;top:34px!important}.switch-mascot .learn-mascot-face .cheek.left{left:10px!important}.switch-mascot .learn-mascot-face .cheek.right{right:10px!important}.switch-mascot .learn-mascot-face .smile{border-width:2.5px!important;width:22px!important;height:11px!important;bottom:12px!important}.switch-mascot .learn-mascot-body{width:40px;height:14px}
