.mobile-practice-hub{display:grid;gap:18px;margin-bottom:24px}.mph-goal{padding:20px;border:1px solid #dfd4fa;border-radius:22px;background:linear-gradient(135deg,#fff 0%,#f6f1ff 58%,#edf9f6 100%);box-shadow:0 12px 35px rgba(63,35,110,.08)}.mph-goal-head{display:flex;align-items:center;gap:13px}.mph-goal-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#ece4ff;color:#7140d8;font-size:23px}.mph-goal-head div{flex:1}.mph-goal-head small,.mph-toolbar small{color:#7657a8;font-size:10px;font-weight:900;letter-spacing:.1em}.mph-goal-head h2,.mph-toolbar h2{margin:4px 0 0;font-size:21px}.mph-goal-head strong{font-size:25px;color:#7140d8}.mph-track{height:9px;margin:17px 0 10px;border-radius:999px;background:#e7e0f5;overflow:hidden}.mph-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7040d8,#a14fe7,#20b48c)}.mph-goal-meta{display:flex;justify-content:space-between;gap:12px;color:#756c80;font-size:12px;font-weight:800}.mph-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.mph-filters{display:flex;gap:7px;overflow:auto}.mph-filters button{border:1px solid var(--line);border-radius:999px;padding:8px 13px;background:var(--panel);color:var(--soft);font-weight:800;white-space:nowrap;cursor:pointer}.mph-filters button.active{border-color:#7140d8;background:#7140d8;color:#fff}.mph-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:13px!important}.mph-card{min-height:190px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;padding:17px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 6px 20px rgba(35,22,61,.055);cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s}.mph-card:hover{transform:translateY(-3px);border-color:#bca5ee;box-shadow:0 14px 30px rgba(55,31,97,.12)}.mph-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.mph-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#eee8fc;color:#7140d8;font-size:21px;font-weight:950}.mph-card.teal .mph-icon{background:#e5f7f1;color:#09846a}.mph-card.blue .mph-icon{background:#e9f1ff;color:#315fa8}.mph-card.pink .mph-icon{background:#f8eafa;color:#a128a2}.mph-card.amber .mph-icon{background:#fff3da;color:#b46b00}.mph-card.red .mph-icon{background:#ffebea;color:#cf3d38}.mph-premium,.mph-done,.mph-new{padding:5px 8px;border-radius:999px;font-size:9px;font-weight:950}.mph-premium{background:#fff0c7;color:#8f5a00}.mph-done{background:#e4f8f1;color:#087b62}.mph-new{background:#f0ebfc;color:#7040d8}.mph-card h3{margin:16px 0 6px;font-size:17px}.mph-card p{margin:0;color:var(--soft);font-size:12.5px;font-weight:650;line-height:1.45}.mph-open{margin-top:15px;color:#7140d8;font-size:12px;font-weight:900}.adaptive-path{text-align:center;padding:22px 10px}.adaptive-orbit{width:76px;height:76px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;background:linear-gradient(135deg,#7140d8,#b052e3);color:#fff;font-size:30px;box-shadow:0 12px 28px rgba(113,64,216,.3)}.adaptive-path small{color:#7140d8;font-weight:900;letter-spacing:.1em}.adaptive-path h2{font-size:27px;margin:8px 0}.adaptive-path p{max-width:470px;margin:0 auto;color:var(--soft);line-height:1.55}.adaptive-path>div{display:flex;justify-content:center;gap:8px;margin:17px 0}.adaptive-path>div span{padding:7px 11px;border-radius:999px;background:var(--panel-soft);font-size:11px;font-weight:800}.practice-history-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.practice-history-summary span{display:grid;gap:3px;padding:14px;border-radius:14px;background:var(--panel-soft);color:var(--soft);font-size:11px;font-weight:800}.practice-history-summary b{font-size:23px;color:#7140d8}.practice-history-list{display:grid;gap:8px}.practice-history-list button{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:left;cursor:pointer}.practice-history-list button>span{font-size:23px}.practice-history-list button div{display:grid;gap:3px}.practice-history-list small{color:var(--soft)}
#studyOverlay .overlay-card{width:min(760px,calc(100vw - 28px))!important;max-height:92vh}#studyOverlay .overlay-head{padding:17px 20px}#studyOverlay .overlay-body{padding:20px}
@media(max-width:980px){.mph-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.mph-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.mph-grid{grid-template-columns:1fr!important}.mph-card{min-height:165px}.mph-goal{padding:16px}.mph-goal-head h2,.mph-toolbar h2{font-size:18px}.mph-goal-meta{align-items:flex-start;flex-direction:column}.mph-filters{width:100%;padding-bottom:4px}.practice-history-summary{grid-template-columns:1fr}}
.practice-resume{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:16px 19px;border:0;border-radius:18px;background:linear-gradient(110deg,#5f32d7,#a938df);color:#fff;box-shadow:0 12px 28px rgba(98,49,211,.22);cursor:pointer;text-align:left}.practice-resume b{font-size:16px}.practice-resume span{font-size:12px;font-weight:800;opacity:.88}.practice-quick-settings{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.practice-quick-settings button{padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--soft);font-size:11px;font-weight:850;cursor:pointer}.practice-quick-settings button[aria-pressed="true"]{border-color:#8f68e6;background:#f0eaff;color:#6332ce}.speaking-card{text-align:center;padding:18px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#fff,#f7f2ff)}.speaking-card small{color:#7040d8;font-size:10px;font-weight:950;letter-spacing:.11em}.speaking-card h2{margin:12px auto 18px;max-width:520px;font-size:27px;line-height:1.35}.speaking-card .btn{margin:4px}.pronunciation-score{display:grid;gap:10px;margin-top:13px;padding:14px;border-radius:14px;background:#fff}.pronunciation-score strong{font-size:28px;color:#7040d8}.pronunciation-score i{display:inline-block;padding:4px 7px;margin:2px;border-radius:8px;font-style:normal;font-weight:800}.pronunciation-score i.ok{background:#e3f8f0;color:#087d62}.pronunciation-score i.miss{background:#ffe9e8;color:#c83b38}.practice-warning{padding:10px;border-radius:10px;background:#fff3d9;color:#8b5b00;font-weight:750}.practice-reduced-motion *{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}.practice-large-text .mobile-practice-hub{font-size:118%}.practice-large-text .mph-card p{font-size:14px}.practice-large-text #studyOverlay .overlay-body{font-size:118%}@media(max-width:620px){.practice-resume{align-items:flex-start;flex-direction:column}.practice-quick-settings{justify-content:flex-start}.speaking-card h2{font-size:22px}}
.practice-rank-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.practice-rank-strip span{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--soft);font-size:12px;font-weight:750;text-align:center}.practice-rank-strip b{color:#6534d2}@media(max-width:620px){.practice-rank-strip{grid-template-columns:1fr}}

/* Learner Practice uses the friendly, single-feed rhythm of the mobile Hub. */
.learner-practice-panel>.grid-2{display:block}.learner-practice-panel #workspaceSide{display:none}.learner-practice-panel>.section-head{max-width:1180px;margin-inline:auto}.learner-practice-panel .profile-box:has(#workspaceActions){max-width:1180px;margin-inline:auto;padding:22px;border:0;background:linear-gradient(180deg,#fbf9ff 0,#fff 42%);box-shadow:0 18px 50px rgba(78,46,132,.08)}.learner-practice-panel #workspaceActions{gap:22px}.learner-practice-panel #workspaceActions>.mobile-practice-hub{padding:0}.learner-practice-panel .mph-goal{border:0;background:linear-gradient(135deg,#6936dd 0%,#9c47e5 56%,#4dc9b0 145%);color:#fff;box-shadow:0 18px 38px rgba(104,53,214,.24)}.learner-practice-panel .mph-goal small,.learner-practice-panel .mph-goal h2,.learner-practice-panel .mph-goal strong,.learner-practice-panel .mph-goal-meta{color:#fff}.learner-practice-panel .mph-goal-icon{background:rgba(255,255,255,.18);color:#fff}.learner-practice-panel .mph-track{background:rgba(255,255,255,.24)}.learner-practice-panel .mph-track i{background:#fff}.learner-practice-panel .practice-rank-strip span{border:0;background:#f6f0ff}.learner-practice-panel .mph-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.learner-practice-panel .mph-card{min-height:205px;padding:18px;border:0;background:linear-gradient(155deg,#fff 58%,#f5efff);box-shadow:0 10px 28px rgba(62,38,103,.09)}.learner-practice-panel .mph-card:nth-child(4n+2){background:linear-gradient(155deg,#fff 58%,#eaf9f4)}.learner-practice-panel .mph-card:nth-child(4n+3){background:linear-gradient(155deg,#fff 58%,#edf4ff)}.learner-practice-panel .mph-card:nth-child(4n+4){background:linear-gradient(155deg,#fff 58%,#fff3e2)}.learner-practice-panel .mph-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(66,36,113,.15)}
#studyOverlay{backdrop-filter:blur(7px)}#studyOverlay .overlay-card{width:min(600px,calc(100vw - 28px))!important;border:0!important;border-radius:26px!important;overflow:hidden;box-shadow:0 30px 90px rgba(34,17,66,.26)!important}#studyOverlay .overlay-head{padding:19px 22px;background:linear-gradient(110deg,#f6f0ff,#fff)}#studyOverlay .overlay-head h2{font-size:19px}#studyOverlay .overlay-body{padding:22px;background:#fff}#studyOverlay #studyLang{margin:0 0 18px;padding:10px 38px 10px 13px;border-radius:13px;background-color:#f7f4fc}#studyOverlay .opt-btn{min-height:52px;padding:13px 16px!important;border:1px solid #e7e0f2!important;border-radius:15px!important;background:#fbfaff!important;font-size:16px;font-weight:800;transition:transform .15s,background .15s,border-color .15s}#studyOverlay .opt-btn:hover{transform:translateY(-1px);border-color:#9b77e8!important;background:#f3edff!important}#studyOverlay textarea{min-height:180px;border:1px solid #e5ddee;border-radius:16px;background:#fcfbff;padding:15px;font-size:16px;line-height:1.55}#studyOverlay .field label{margin-bottom:8px;color:#4d4260}#studyOverlay .btn.primary{border-radius:14px;background:linear-gradient(100deg,#6736dc,#9a40e2);box-shadow:0 9px 20px rgba(105,53,216,.18)}
@media(max-width:1120px){.learner-practice-panel .mph-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media(max-width:820px){.learner-practice-panel .mph-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.learner-practice-panel .profile-box:has(#workspaceActions){padding:14px}}@media(max-width:560px){.learner-practice-panel .mph-grid{grid-template-columns:1fr!important}.learner-practice-panel .mph-card{min-height:160px}#studyOverlay .overlay-card{width:calc(100vw - 18px)!important;border-radius:22px!important}#studyOverlay .overlay-body{padding:17px}#studyOverlay .opt-btn{min-height:50px}}
.practice-section-title{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:4px}.practice-section-title h2{margin:4px 0 0;font-size:23px}.practice-section-title small{color:#a16207;font-size:10px;font-weight:950;letter-spacing:.13em}.practice-section-title>span{color:var(--soft);font-size:12px;font-weight:750}.learner-practice-panel .premium-grid,.learner-practice-panel .regular-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.learner-practice-panel .mph-card{min-height:180px}.learner-practice-panel .mph-card-copy{align-self:start}.learner-practice-panel .premium-card{border:1px solid #f5c84c;background:linear-gradient(145deg,#fffdf4 0%,#fff7d7 58%,#f3e9ff 130%);box-shadow:0 13px 30px rgba(190,126,12,.15)}.learner-practice-panel .premium-card:hover{border-color:#eba91b;box-shadow:0 18px 40px rgba(190,126,12,.22)}.learner-practice-panel .premium-card .mph-icon{border:1px solid #f4c64d;background:linear-gradient(145deg,#fff3bd,#f3e7ff);color:#8b5a00}.learner-practice-panel .premium-card .mph-open{display:block;padding:11px 14px;border-radius:13px;background:linear-gradient(100deg,#f0a51a,#783ee0);color:#fff;text-align:center}.learner-practice-panel .mph-premium{border:1px solid #f4c64d;background:#fff1bd;color:#8a5200}.learner-practice-panel .regular-grid .mph-card{display:grid;grid-template-columns:58px minmax(0,1fr);grid-template-rows:auto auto;column-gap:15px;align-items:center;text-align:left}.learner-practice-panel .regular-grid .mph-card-top{grid-row:1 / span 2;display:block;align-self:start}.learner-practice-panel .regular-grid .mph-card-top>span:not(.mph-icon){display:none}.learner-practice-panel .regular-grid .mph-card-copy{grid-column:2}.learner-practice-panel .regular-grid .mph-card h3{margin:0 0 6px;font-size:18px}.learner-practice-panel .regular-grid .mph-open{grid-column:2;display:block;margin-top:13px;padding:10px 13px;border-radius:12px;background:linear-gradient(100deg,#7140d8,#a426ad);color:#fff;text-align:center}.learner-practice-panel .regular-grid .mph-icon{width:56px;height:56px;border-radius:16px}@media(max-width:760px){.learner-practice-panel .premium-grid,.learner-practice-panel .regular-grid{grid-template-columns:1fr!important}.practice-section-title{align-items:flex-start;flex-direction:column}.learner-practice-panel .mph-card{min-height:164px}}
.practice-language-bar{display:flex;gap:10px;padding:12px;border-radius:18px;background:#f4efff}.practice-language-bar>div{display:grid;gap:5px;flex:1}.practice-language-bar small{color:#7657a8;font-size:9px;font-weight:950}.practice-language-bar select{min-height:44px;padding:0 13px;border:1px solid #dfd4f5;border-radius:13px;background:#fff;font-weight:850}.practice-daily{padding:18px;border:1px solid #e6def5;border-radius:22px;background:#fff}.practice-daily-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.practice-daily-head small{color:#7b47e6;font-size:9px;font-weight:950}.practice-daily-head h2{margin:3px 0 0}.practice-daily-head>b{padding:8px 11px;border-radius:999px;background:#eee7ff;color:#7040d8}.practice-daily-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.practice-daily-list button{display:grid;grid-template-columns:35px 1fr auto;gap:9px;align-items:center;padding:12px;border:0;border-radius:15px;background:#f8f5ff;text-align:left}.practice-daily-list i{width:33px;height:33px;display:grid;place-items:center;border-radius:11px;background:#e8ddff;color:#7040d8;font-style:normal}.practice-daily-list span{display:grid}.practice-daily-list small{color:var(--soft);font-size:10px}.practice-daily-list em{color:#7040d8;font-style:normal}.premium-paywall{display:grid;justify-items:center;gap:12px;text-align:center}.premium-paywall>span{width:72px;height:72px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(145deg,#fff0a8,#e8dcff);font-size:34px}.premium-paywall p{color:var(--soft)}.premium-paywall>div{display:grid;gap:8px;width:100%;padding:15px;border-radius:16px;background:#fff9e7;text-align:left}.premium-paywall>strong{font-size:30px;color:#7040d8}.dictionary-toolbar{display:flex;gap:10px}.dictionary-toolbar input{flex:1;padding:12px;border:1px solid var(--line);border-radius:13px}.dictionary-list{display:grid;gap:8px;margin-top:14px}.dictionary-list article{display:grid;grid-template-columns:1fr auto 38px 38px;gap:8px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px}.dictionary-list p{margin:4px 0;color:var(--soft)}.dictionary-list article>span{padding:5px;border-radius:99px;background:#edf8f4;font-size:10px}.dictionary-list button{height:36px;border:0;border-radius:11px}.calendar-summary,.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.calendar-summary span,.result-stats span{display:grid;justify-items:center;padding:12px;border-radius:14px;background:#f7f3ff}.activity-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:15px}.calendar-day{aspect-ratio:1;display:grid;place-items:center;border-radius:10px;background:#f5f3f7}.calendar-day small{display:none}.calendar-day.active{background:#ddd0ff}.calendar-day.level-2{background:#b89cff;color:#fff}.calendar-day.level-3{background:#7040d8;color:#fff}.achievement-hero,.academy-head,.exam-hub-head{display:flex;align-items:center;gap:13px;padding:15px;border-radius:17px;background:linear-gradient(120deg,#fff6d8,#f0e8ff)}.achievement-hero>span,.academy-head>span,.exam-hub-head>span{font-size:38px}.achievement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:13px}.achievement-grid article{display:grid;justify-items:center;padding:15px;border-radius:15px;background:#f7f5f9;text-align:center}.achievement-grid article>span{font-size:29px}.achievement-grid .locked{filter:grayscale(1);opacity:.55}.achievement-grid .unlocked{border:1px solid #f3c548;background:#fffaf0}.practice-settings-list{display:grid;gap:8px}.practice-settings-list label{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px}.academy-topics,.exam-modules{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:13px}.academy-topics button,.exam-modules button{display:grid;grid-template-columns:40px 1fr auto;gap:9px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left}.academy-topics i,.exam-modules button>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#eee7ff;font-style:normal}.session-result{display:grid;justify-items:center;gap:11px;text-align:center}.result-burst{width:78px;height:78px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#7b47e6,#27b68e);color:#fff;font-size:36px}.result-stats{width:100%}.result-progress{width:100%;height:9px;border-radius:99px;background:#ebe6f2}.result-progress i{display:block;height:100%;background:linear-gradient(90deg,#7040d8,#26b68e)}.practice-assigned{float:right;padding:5px;border-radius:99px;background:#fff1cf;font-size:10px}.practice-teacher-feedback{margin-top:10px;padding:10px;border-radius:11px;background:#f2edff}
.grammar-hub{display:grid;gap:16px}.grammar-hub-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:14px;padding:20px;border:1px solid #e3daf5;border-radius:24px;background:linear-gradient(135deg,#fff7dc,#fff 45%,#ebeefe)}.grammar-hub-copy small{color:#6f3fdb;font-size:10px;font-weight:950;letter-spacing:.13em}.grammar-hub-copy h2{margin:6px 0 8px;font-size:30px;line-height:1.05}.grammar-hub-copy p{margin:0;max-width:640px;color:#70657c;font-weight:650;line-height:1.5}.grammar-hub-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-self:start}.grammar-hub-stats span{display:grid;justify-items:center;padding:14px 10px;border:1px solid rgba(112,64,216,.14);border-radius:18px;background:rgba(255,255,255,.88);text-align:center}.grammar-hub-stats b{font-size:26px;color:#7040d8;line-height:1}.grammar-hub-stats small{margin-top:4px;color:#72667f;font-size:11px;font-weight:850;line-height:1.2}.grammar-bank-note{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-radius:18px;background:#f7f4fb}.grammar-bank-note strong{color:#2d2437;font-size:16px}.grammar-bank-note p{margin:0;max-width:760px;color:#71667e;line-height:1.5}.grammar-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grammar-topic-card{display:grid;gap:12px;padding:18px;border:1px solid #e7def3;border-radius:22px;background:rgba(255,255,255,.92);box-shadow:0 12px 30px rgba(44,26,78,.06)}.grammar-topic-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.grammar-topic-top i{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#eee6ff;color:#6840d2;font-style:normal;font-size:22px;font-weight:950}.grammar-topic-top span{padding:7px 10px;border-radius:999px;background:#f4efff;color:#7040d8;font-size:11px;font-weight:900}.grammar-topic-card h3{margin:0;font-size:24px;line-height:1.1}.grammar-topic-card p{margin:0;color:#71657e;line-height:1.5}.grammar-topic-card button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 14px;border:0;border-radius:14px;background:linear-gradient(135deg,#7040d8,#9a52f0);color:#fff;font-weight:900;cursor:pointer}.grammar-topic-card button em{font-style:normal}.grammar-bank-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:15px 18px;border:1px solid #e7def3;border-radius:18px;background:#fff}.grammar-bank-strip b{font-size:14px}.grammar-bank-strip>div{display:flex;gap:8px;flex-wrap:wrap}.grammar-bank-strip span{padding:8px 11px;border-radius:999px;background:#f7f3ff;color:#655775;font-size:12px;font-weight:850}
.vocab-hub{display:grid;gap:16px}.vocab-hub-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:14px;padding:20px;border:1px solid #d8ece4;border-radius:24px;background:linear-gradient(135deg,#effff7,#fff 48%,#eef6ff)}.vocab-hub-copy small{color:#17856a;font-size:10px;font-weight:950;letter-spacing:.13em}.vocab-hub-copy h2{margin:6px 0 8px;font-size:30px;line-height:1.05}.vocab-hub-copy p{margin:0;max-width:640px;color:#5f6f6a;font-weight:650;line-height:1.5}.vocab-hub-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-self:start}.vocab-hub-stats span{display:grid;justify-items:center;padding:14px 10px;border:1px solid rgba(18,148,113,.14);border-radius:18px;background:rgba(255,255,255,.9);text-align:center}.vocab-hub-stats b{font-size:26px;color:#109172;line-height:1}.vocab-hub-stats small{margin-top:4px;color:#687872;font-size:11px;font-weight:850;line-height:1.2}.vocab-bank-note{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-radius:18px;background:#f1fbf7}.vocab-bank-note strong{color:#1f4036;font-size:16px}.vocab-bank-note p{margin:0;max-width:760px;color:#60716b;line-height:1.5}.vocab-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vocab-topic-card{display:grid;gap:12px;padding:18px;border:1px solid #dcebe5;border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(22,80,67,.06)}.vocab-topic-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.vocab-topic-top i{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#ddf7ee;color:#0b7e62;font-style:normal;font-size:22px;font-weight:950}.vocab-topic-top span{padding:7px 10px;border-radius:999px;background:#eefaf5;color:#11886c;font-size:11px;font-weight:900}.vocab-topic-card h3{margin:0;font-size:24px;line-height:1.1}.vocab-topic-card p{margin:0;color:#60706b;line-height:1.5}.vocab-topic-card button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 14px;border:0;border-radius:14px;background:linear-gradient(135deg,#129471,#3dc6a0);color:#fff;font-weight:900;cursor:pointer}.vocab-topic-card button em{font-style:normal}
.skills-hub{display:grid;gap:16px}.skills-hub-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:14px;padding:20px;border:1px solid #d9e4f4;border-radius:24px;background:linear-gradient(135deg,#eef6ff,#fff 46%,#f7efff)}.skills-hub-copy small{color:#3568c8;font-size:10px;font-weight:950;letter-spacing:.13em}.skills-hub-copy h2{margin:6px 0 8px;font-size:30px;line-height:1.05}.skills-hub-copy p{margin:0;max-width:640px;color:#617083;font-weight:650;line-height:1.5}.skills-hub-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-self:start}.skills-hub-stats span{display:grid;justify-items:center;padding:14px 10px;border:1px solid rgba(52,118,212,.14);border-radius:18px;background:rgba(255,255,255,.9);text-align:center}.skills-hub-stats b{font-size:26px;color:#3476d4;line-height:1}.skills-hub-stats small{margin-top:4px;color:#667587;font-size:11px;font-weight:850;line-height:1.2}.skills-bank-note{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-radius:18px;background:#f2f6fd}.skills-bank-note strong{color:#223248;font-size:16px}.skills-bank-note p{margin:0;max-width:760px;color:#657384;line-height:1.5}.skills-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.skills-topic-card{display:grid;gap:12px;padding:18px;border:1px solid #dde7f4;border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(36,59,108,.06)}.skills-topic-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.skills-topic-top i{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#e7f0ff;color:#2e65c0;font-style:normal;font-size:22px;font-weight:950}.skills-topic-top span{padding:7px 10px;border-radius:999px;background:#edf3ff;color:#356fcb;font-size:11px;font-weight:900}.skills-topic-card h3{margin:0;font-size:24px;line-height:1.1}.skills-topic-card p{margin:0;color:#607086;line-height:1.5}.skills-topic-card button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 14px;border:0;border-radius:14px;background:linear-gradient(135deg,#3476d4,#6ca5ff);color:#fff;font-weight:900;cursor:pointer}.skills-topic-card button em{font-style:normal}
.progress-hub{display:grid;gap:16px}.progress-hub-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:14px;padding:20px;border:1px solid #eadcbe;border-radius:24px;background:linear-gradient(135deg,#fff7e6,#fff 46%,#fff3d8)}.progress-hub-copy small{color:#ad6c00;font-size:10px;font-weight:950;letter-spacing:.13em}.progress-hub-copy h2{margin:6px 0 8px;font-size:30px;line-height:1.05}.progress-hub-copy p{margin:0;max-width:640px;color:#7a6b57;font-weight:650;line-height:1.5}.progress-hub-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-self:start}.progress-hub-stats span{display:grid;justify-items:center;padding:14px 10px;border:1px solid rgba(214,154,53,.16);border-radius:18px;background:rgba(255,255,255,.9);text-align:center}.progress-hub-stats b{font-size:26px;color:#b67300;line-height:1}.progress-hub-stats small{margin-top:4px;color:#7e705e;font-size:11px;font-weight:850;line-height:1.2}.progress-bank-note{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-radius:18px;background:#fff8ea}.progress-bank-note strong{color:#4b3821;font-size:16px}.progress-bank-note p{margin:0;max-width:760px;color:#7a6b58;line-height:1.5}.progress-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.progress-topic-card{display:grid;gap:12px;padding:18px;border:1px solid #efe2c7;border-radius:22px;background:rgba(255,255,255,.95);box-shadow:0 12px 30px rgba(101,73,18,.06)}.progress-topic-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.progress-topic-top i{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#fff1cf;color:#a66a00;font-style:normal;font-size:22px;font-weight:950}.progress-topic-top span{padding:7px 10px;border-radius:999px;background:#fff7e5;color:#a56a02;font-size:11px;font-weight:900}.progress-topic-card h3{margin:0;font-size:24px;line-height:1.1}.progress-topic-card p{margin:0;color:#786a58;line-height:1.5}.progress-topic-card button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 14px;border:0;border-radius:14px;background:linear-gradient(135deg,#d69424,#f1b850);color:#fff;font-weight:900;cursor:pointer}.progress-topic-card button em{font-style:normal}
@media(max-width:760px){.practice-daily-list,.academy-topics,.exam-modules{grid-template-columns:1fr}.achievement-grid{grid-template-columns:repeat(2,1fr)}.app:has(.learner-practice-panel){padding-bottom:78px}.app:has(.learner-practice-panel) .sidebar{position:fixed;z-index:300;left:0;right:0;bottom:0;top:auto;height:70px;padding:7px;border-top:1px solid var(--line)}.app:has(.learner-practice-panel) .sidebar>.brand,.app:has(.learner-practice-panel) .sidebar>.role-badge,.app:has(.learner-practice-panel) .sidebar>.role-select,.app:has(.learner-practice-panel) .sidebar>.side-foot{display:none}.app:has(.learner-practice-panel) .sidebar .nav{grid-template-columns:repeat(5,1fr)}.app:has(.learner-practice-panel) .sidebar .nav button{display:none}.app:has(.learner-practice-panel) .sidebar .nav button[data-view=home],.app:has(.learner-practice-panel) .sidebar .nav button[data-view=videos],.app:has(.learner-practice-panel) .sidebar .nav button[data-view=workspace],.app:has(.learner-practice-panel) .sidebar .nav button[data-view=messages],.app:has(.learner-practice-panel) .sidebar .nav button[data-view=profile]{display:flex;flex-direction:column}.app:has(.learner-practice-panel) .sidebar .nav button span:last-child{display:block}}
.practice-skeleton{display:grid;gap:9px}.practice-skeleton i{display:block;height:58px;border-radius:14px;background:linear-gradient(90deg,#eeeaf4,#faf8fc,#eeeaf4);background-size:200%;animation:practiceShimmer 1.2s infinite}@keyframes practiceShimmer{to{background-position:-200%}}.ranking-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:end}.ranking-podium article{display:grid;justify-items:center;gap:5px;padding:14px;border-radius:15px;background:#f6f2ff;text-align:center}.ranking-podium article>span{font-size:30px}.ranking-podium .place-1{padding-top:24px;background:#fff5ce}.ranking-list,.recent-session-list{display:grid;gap:7px;margin-top:13px}.ranking-list article,.recent-session-list article{display:grid;grid-template-columns:42px 1fr auto auto;gap:8px;align-items:center;padding:11px;border-radius:12px;background:#f7f5f9}.ranking-list article.me{background:#eee6ff;color:#6030c9}.recent-session-list article{grid-template-columns:1fr auto auto}.recent-session-list article div{display:grid}.recent-session-list small{color:var(--soft)}

/* Learner profile */
.learner-profile-edit>.grid-2{align-items:start;grid-template-columns:minmax(0,1.55fr) minmax(330px,.85fr);gap:20px}.learner-profile-edit .profile-box{border:1px solid #e8e2f2;border-radius:24px;box-shadow:0 18px 48px rgba(57,35,94,.09)}.learner-profile-edit #profileForm{overflow:hidden;padding:0}.learner-profile-edit .profile-intro{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px 18px;align-items:center;padding:108px 24px 24px;background:linear-gradient(135deg,#f1e8ff 0%,#f9f6ff 50%,#e8faf5 100%)}.learner-profile-edit .profile-intro:before{content:"";position:absolute;inset:0 0 auto;height:88px;background:linear-gradient(115deg,#6034da,#a543e3 65%,#42c6a5)}.learner-profile-edit .profile-head{position:relative;z-index:1}.learner-profile-edit .profile-head .avatar{width:82px;height:82px;border:5px solid #fff;box-shadow:0 9px 24px rgba(68,36,121,.2);font-size:26px}.learner-profile-edit .profile-head h2{font-size:24px;margin:0 0 4px}.learner-profile-edit .profile-head p{margin:0;color:#71677e;font-weight:700}.learner-profile-edit .profile-avatar-tools{align-items:flex-start}.learner-profile-edit .profile-kicker{position:absolute;right:22px;top:20px;z-index:1;padding:8px 13px;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;font-size:12px;font-weight:900;letter-spacing:.06em}.learner-profile-summary{grid-column:1/-1}.learner-profile-badges{display:flex;flex-wrap:wrap;gap:8px}.learner-profile-badges span{padding:7px 11px;border:1px solid #e3d9f4;border-radius:999px;background:rgba(255,255,255,.85);color:#5f3ab0;font-size:12px;font-weight:900}.learner-profile-welcome{margin:10px 0 0;color:#6c6278;font-weight:700}.learner-profile-edit .profile-section{margin:0;padding:24px;border-top:1px solid #eee9f4}.learner-profile-edit .profile-section-title h3{font-size:18px}.learner-profile-edit .field input,.learner-profile-edit .field textarea{background:#fbfaff;border-color:#e7e1ef}.learner-profile-edit .field input:focus,.learner-profile-edit .field textarea:focus{background:#fff;border-color:#7840e8;box-shadow:0 0 0 3px rgba(120,64,232,.1)}.learner-profile-edit .danger-zone{margin:0 24px 24px;border-radius:18px}.learner-progress-card{position:sticky;top:18px;padding:22px!important;overflow:hidden}.learner-progress-card:before{content:"";display:block;height:5px;margin:-22px -22px 18px;background:linear-gradient(90deg,#6034da,#bf28d4,#43c6a6)}.learner-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 22px}.learner-stat-grid>div{display:flex;min-height:88px;flex-direction:column;align-items:center;justify-content:center;border-radius:17px;background:linear-gradient(145deg,#f2ebff,#fff);border:1px solid #e9e1f8}.learner-stat-grid>div:nth-child(2){background:linear-gradient(145deg,#fff4dc,#fff)}.learner-stat-grid>div:nth-child(3){background:linear-gradient(145deg,#e8faf4,#fff)}.learner-stat-grid b{font-size:23px;color:#6334d9}.learner-stat-grid span{margin-top:5px;color:#756a82;font-size:11px;font-weight:900;text-transform:uppercase}.learner-progress-card .prog-row{padding:10px 0}.learner-progress-card .prog-bar{height:9px;background:#f0ecf6}.learner-progress-card .prog-bar i{background:linear-gradient(90deg,#6737df,#b735db)}
@media(max-width:1100px){.learner-profile-edit>.grid-2{grid-template-columns:1fr}.learner-progress-card{position:static}}@media(max-width:680px){.learner-profile-edit .profile-intro{grid-template-columns:1fr;padding:100px 17px 20px}.learner-profile-edit .profile-section{padding:20px 17px}.learner-profile-edit .danger-zone{margin:0 17px 20px}.learner-stat-grid>div{min-height:76px}.learner-stat-grid b{font-size:19px}}

/* Full training experience: every tool opens as its own mobile-like screen. */
#studyOverlay.practice-immersive{padding:18px;background:rgba(28,16,48,.72);backdrop-filter:blur(14px)}#studyOverlay.practice-immersive .overlay-card{width:min(1040px,100%)!important;height:min(860px,calc(100vh - 36px));max-height:none!important;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid rgba(255,255,255,.7)!important;border-radius:30px!important;background:#fbf9ff;box-shadow:0 35px 110px rgba(25,10,48,.38)!important}#studyOverlay.practice-immersive .overlay-head{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:center;padding:17px 22px;border:0;background:rgba(255,255,255,.82);backdrop-filter:blur(12px)}#studyOverlay .practice-back{width:46px;height:46px;border:1px solid #e5ddee;border-radius:15px;background:#fff;color:#30263c;font-size:24px;font-weight:900;cursor:pointer;box-shadow:0 5px 14px rgba(45,27,73,.08)}.practice-head-copy{display:grid;gap:2px}.practice-head-copy small{color:#7742dc;font-size:9px;font-weight:950;letter-spacing:.14em}.practice-head-copy h2{margin:0;font-size:19px}.practice-session-xp{padding:9px 13px;border-radius:999px;background:#eee6ff;color:#6936d7;font-size:12px;font-weight:950}#studyOverlay.practice-immersive .overlay-body{overflow:auto;padding:25px 30px 34px;background:transparent}.practice-stage-intro{display:flex;align-items:center;gap:16px;margin-bottom:14px;padding:18px 20px;border:1px solid rgba(115,65,214,.13);border-radius:22px;background:rgba(255,255,255,.74);box-shadow:0 12px 28px rgba(56,33,91,.07)}.practice-stage-intro>span{width:62px;height:62px;display:grid;place-items:center;flex:none;border-radius:19px;background:#eee6ff;color:#6835d3;font-size:27px;font-weight:950}.practice-stage-intro small{color:#7742dc;font-size:9px;font-weight:950;letter-spacing:.13em}.practice-stage-intro h3{margin:4px 0 3px;font-size:22px}.practice-stage-intro p{margin:0;color:#756a82;font-weight:650}.practice-session-line{display:flex;align-items:center;gap:13px;margin:0 2px 18px}.practice-session-line>div{height:9px;flex:1;overflow:hidden;border-radius:99px;background:rgba(87,57,127,.12)}.practice-session-line i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7140d8,#b33be0);transition:width .3s}.practice-session-line span{color:#6e617c;font-size:11px;font-weight:900}.practice-workspace{min-height:410px;padding:26px;border:1px solid rgba(81,55,115,.1);border-radius:24px;background:rgba(255,255,255,.86);box-shadow:0 18px 45px rgba(50,29,82,.08)}
#studyOverlay[data-practice-accent=teal] .overlay-card{background:radial-gradient(circle at 85% 5%,#c9f4e7 0,transparent 34%),#f5fffb}#studyOverlay[data-practice-accent=teal] .practice-stage-intro>span{background:#dff8ef;color:#087b62}#studyOverlay[data-practice-accent=teal] .practice-session-line i{background:linear-gradient(90deg,#0b9b78,#43d0aa)}#studyOverlay[data-practice-accent=blue] .overlay-card{background:radial-gradient(circle at 85% 5%,#d8e8ff 0,transparent 35%),#f7faff}#studyOverlay[data-practice-accent=blue] .practice-stage-intro>span{background:#e2edff;color:#315fa8}#studyOverlay[data-practice-accent=blue] .practice-session-line i{background:linear-gradient(90deg,#3476d4,#70a8ff)}#studyOverlay[data-practice-accent=pink] .overlay-card{background:radial-gradient(circle at 85% 5%,#f7dafa 0,transparent 35%),#fff8ff}#studyOverlay[data-practice-accent=pink] .practice-stage-intro>span{background:#f9e4fb;color:#9d269e}#studyOverlay[data-practice-accent=amber] .overlay-card{background:radial-gradient(circle at 85% 5%,#ffe9b7 0,transparent 35%),#fffdf7}#studyOverlay[data-practice-accent=amber] .practice-stage-intro>span{background:#fff0ce;color:#a96700}#studyOverlay[data-practice-accent=amber] .practice-session-line i{background:linear-gradient(90deg,#e99b17,#ffd05c)}#studyOverlay[data-practice-accent=red] .overlay-card{background:radial-gradient(circle at 85% 5%,#ffd9d7 0,transparent 35%),#fff9f9}#studyOverlay[data-practice-tool=speaking] .practice-workspace{background:linear-gradient(155deg,rgba(255,255,255,.94),rgba(241,231,255,.92))}#studyOverlay[data-practice-tool=memory] .practice-workspace{background:linear-gradient(145deg,#fff,#fff2fb)}#studyOverlay[data-practice-tool=exam] .practice-workspace{border-color:#f2c45c;background:linear-gradient(145deg,#fffdf5,#fff5d9)}#studyOverlay[data-practice-tool=ai] .practice-workspace{background:linear-gradient(145deg,#f9f4ff,#eefaf7)}#studyOverlay[data-practice-tool=reading] .practice-workspace,#studyOverlay[data-practice-tool=readingarticles] .practice-workspace{background:linear-gradient(90deg,#fff 0 72%,#eef5ff 72%)}
@media(max-width:700px){#studyOverlay.practice-immersive{padding:0}#studyOverlay.practice-immersive .overlay-card{width:100%!important;height:100dvh;max-height:none!important;border:0!important;border-radius:0!important}#studyOverlay.practice-immersive .overlay-head{grid-template-columns:46px minmax(0,1fr) auto;padding:12px 14px}#studyOverlay.practice-immersive .overlay-body{padding:16px 14px 28px}.practice-head-copy h2{font-size:16px}.practice-session-xp{padding:7px 9px}.practice-stage-intro{padding:14px}.practice-stage-intro>span{width:50px;height:50px;border-radius:15px;font-size:22px}.practice-stage-intro h3{font-size:18px}.practice-stage-intro p{font-size:12px}.practice-workspace{min-height:calc(100dvh - 285px);padding:17px;border-radius:20px}#studyOverlay #studyLang{width:100%!important}}
.grammar-hub button,.vocab-hub button,.skills-hub button{font:inherit}@media(max-width:900px){.grammar-hub-hero,.vocab-hub-hero,.skills-hub-hero{grid-template-columns:1fr}.grammar-hub-stats,.vocab-hub-stats,.skills-hub-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.grammar-topic-grid,.vocab-topic-grid,.skills-topic-grid{grid-template-columns:1fr}}@media(max-width:640px){.grammar-hub-copy h2,.vocab-hub-copy h2,.skills-hub-copy h2{font-size:24px}.grammar-hub-stats,.vocab-hub-stats,.skills-hub-stats{grid-template-columns:1fr}.grammar-bank-note,.vocab-bank-note,.skills-bank-note{display:grid}.grammar-topic-card h3,.vocab-topic-card h3,.skills-topic-card h3{font-size:20px}}
.practice-gamebar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-5px 0 15px}.practice-gamebar>span,.practice-gamebar button{min-height:36px;padding:8px 11px;border:1px solid rgba(103,62,184,.14);border-radius:12px;background:rgba(255,255,255,.82);color:#62438e;font-size:11px;font-weight:900}.practice-gamebar button{cursor:pointer}.practice-gamebar button:hover{background:#eee6ff}.practice-coach{margin:0 0 14px;padding:13px 15px;border:1px solid #e1d5f7;border-radius:15px;background:#f5f0ff;color:#554667}.practice-coach p{margin:5px 0 0;line-height:1.5}.answer-correct .practice-workspace{animation:practiceCorrect .55s}.answer-wrong .practice-workspace{animation:practiceWrong .42s}@keyframes practiceCorrect{30%{box-shadow:0 0 0 5px rgba(21,181,133,.25),0 18px 45px rgba(50,29,82,.08)}}@keyframes practiceWrong{25%,75%{transform:translateX(-6px)}50%{transform:translateX(6px)}}.sentence-drop{min-height:92px;display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;padding:17px;border:2px dashed #a98ae8;border-radius:18px;background:#f8f4ff}.sentence-drop span{color:#796c87}.sentence-drop b,.sentence-bank button{padding:10px 13px;border-radius:12px;background:#fff;box-shadow:0 5px 13px rgba(52,31,83,.1)}.sentence-bank{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:20px 0}.sentence-bank button{border:1px solid #e0d7ef;font-weight:850;cursor:pointer}.sentence-bank button:disabled{opacity:.25}.category-word{padding:30px;text-align:center;font-size:34px;font-weight:950;color:#087d64}.category-instruction{text-align:center;color:#756a82}.category-zones{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.category-zones button{display:grid;justify-items:center;gap:7px;padding:25px 12px;border:1px solid #d8eee7;border-radius:19px;background:#f3fcf9;cursor:pointer}.category-zones span{font-size:31px}.scenario-scene{text-align:center;padding:28px;border-radius:22px;background:linear-gradient(145deg,#f9e9fb,#fff2f7)}.scenario-scene>span{font-size:50px}.scenario-scene small{display:block;color:#9e279c;font-weight:950;letter-spacing:.13em}.scenario-scene h2{margin:8px 0}.scenario-scene p{color:#685d73}.scenario-options{display:grid;gap:9px;margin-top:14px}.scenario-options button{padding:14px;border:1px solid #ead9ec;border-radius:14px;background:#fff;text-align:left;font-weight:800;cursor:pointer}.social-challenge{display:grid;justify-items:center;gap:13px;padding:25px;text-align:center}.social-challenge>span{font-size:58px}.social-challenge small{color:#7040d8;font-weight:950;letter-spacing:.13em}.social-challenge p{max-width:520px;color:#756a82}.social-score{display:grid;grid-template-columns:1fr auto 1fr;gap:13px;align-items:center;width:min(520px,100%);padding:17px;border-radius:18px;background:#f4efff}.social-score b{padding:12px;border-radius:13px;background:#fff}.answer-review{width:100%;padding:13px;border:1px solid #e6dff0;border-radius:15px;text-align:left}.answer-review summary{cursor:pointer;font-weight:900}.answer-review p{margin:8px 0;padding:8px;border-radius:9px}.answer-review p.ok{background:#e8f8f2;color:#087b62}.answer-review p.bad{background:#fff0ef;color:#bc3935}.result-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;width:100%}@media(max-width:650px){.practice-gamebar{display:grid;grid-template-columns:repeat(2,1fr)}.practice-gamebar>span{text-align:center}.category-zones{grid-template-columns:1fr}.category-zones button{grid-template-columns:40px 1fr;padding:14px}.result-actions{display:grid}.result-actions .btn{width:100%}}
.answer-explanation{margin:10px 0 0;padding:10px;border-radius:11px;background:#f4efff;color:#5d4d70;font-size:12px;font-weight:700;line-height:1.5}.voice-wave{height:48px;display:flex;align-items:center;justify-content:center;gap:5px;margin:10px}.voice-wave i{width:5px;height:12px;border-radius:9px;background:#7140d8;animation:voiceWave .7s ease-in-out infinite alternate}.voice-wave i:nth-child(2n){animation-delay:.15s}.voice-wave i:nth-child(3n){animation-delay:.3s}@keyframes voiceWave{to{height:42px;background:#b33be0}}.writing-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.combo-bonus{padding:9px 13px;border-radius:999px;background:#fff1c9;color:#8b5700;font-weight:950}.weekly-report{display:grid;grid-template-columns:minmax(160px,.7fr) 1.3fr;gap:18px;align-items:center;margin:16px 0;padding:18px;border-radius:18px;background:linear-gradient(130deg,#f0e8ff,#f2fbf8)}.weekly-report small{color:#7040d8;font-weight:950}.weekly-report h3{margin:5px 0}.weekly-bars{height:110px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:8px}.weekly-bars span{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.weekly-bars i{width:70%;min-height:6px;border-radius:8px 8px 3px 3px;background:linear-gradient(#9b49e4,#6737db)}.weekly-bars small{font-size:9px;color:#776b83}.submission-review{display:grid;gap:10px;margin:9px 0;padding:14px;border:1px solid #e5deef;border-radius:16px;background:#fbfaff}.submission-review>div:first-child{display:flex;justify-content:space-between}.submission-review small{color:var(--soft)}.submission-review p{margin:0;padding:10px;border-radius:11px;background:#fff}.submission-review-form{display:grid;grid-template-columns:90px 1fr auto;gap:8px}.submission-review-form input{min-width:0;padding:10px;border:1px solid var(--line);border-radius:11px}@media(max-width:650px){.writing-actions,.weekly-report,.submission-review-form{grid-template-columns:1fr}.weekly-bars{height:90px}}
.answer-review article{margin:9px 0;padding:11px;border-radius:12px}.answer-review article.ok{background:#eaf9f3;color:#087b62}.answer-review article.bad{background:#fff0ef;color:#a93431}.answer-review article p{margin:5px 0;padding:0;background:none;color:inherit}.answer-review article small{display:block;margin-top:7px;color:#655970;line-height:1.45}
.practice-gamebar{justify-content:space-between}.practice-status{display:flex;gap:8px}.practice-status span{min-height:36px;padding:8px 12px;border:1px solid rgba(103,62,184,.14);border-radius:12px;background:rgba(255,255,255,.82);color:#62438e;font-size:12px;font-weight:950}.practice-tools{position:relative}.practice-tools summary{padding:9px 12px;border:1px solid rgba(103,62,184,.14);border-radius:12px;background:#fff;color:#62438e;font-size:11px;font-weight:900;cursor:pointer;list-style:none}.practice-tools[open] summary{border-radius:12px 12px 0 0;background:#f3edff}.practice-tools>div{position:absolute;z-index:5;right:0;top:100%;width:210px;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:9px;border:1px solid #ddd1f2;border-radius:14px 0 14px 14px;background:#fff;box-shadow:0 16px 34px rgba(48,27,80,.16)}.practice-tools button{min-height:38px!important}.answer-continue{display:block;margin:12px auto 0;min-width:180px}.inline-answer{display:grid;gap:8px;margin-top:14px;padding:15px;border-radius:16px;text-align:center}.inline-answer.ok{background:#e9f9f3;color:#087b62}.inline-answer.bad{background:#fff0ef;color:#a93b36}.inline-answer p{margin:0}.inline-answer .btn{justify-self:center}@media(max-width:650px){.practice-gamebar{display:flex}.practice-tools>div{position:fixed;left:12px;right:12px;bottom:12px;top:auto;width:auto;grid-template-columns:1fr 1fr;border-radius:18px;box-shadow:0 18px 60px rgba(30,15,54,.28)}}

/* Duel: live learner first, automatic bot fallback. */
.duel-status{min-height:26px;color:#745f8c;font-size:13px;font-weight:850}.duel-search-dot{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;background:#7a38ea;box-shadow:0 0 0 0 rgba(122,56,234,.45);animation:duelPulse 1.2s infinite}@keyframes duelPulse{70%{box-shadow:0 0 0 10px rgba(122,56,234,0)}}.duel-match-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;margin-bottom:20px;padding:17px;border:1px solid #e8dff5;border-radius:22px;background:linear-gradient(135deg,#f7f2ff,#fff6f1)}.duel-match-head>div{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;gap:1px 10px}.duel-match-head>div:last-child{text-align:right;grid-template-columns:1fr auto}.duel-match-head>div:last-child .duel-avatar{grid-column:2;grid-row:1/3}.duel-match-head>div:last-child small,.duel-match-head>div:last-child b{grid-column:1}.duel-match-head strong{color:#8a70a8}.duel-match-head small{color:#806b99;font-weight:900}.duel-match-head b{font-size:25px}.duel-avatar{grid-row:1/3;display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:#6f39e8;color:#fff;font-size:22px;font-weight:950;box-shadow:0 9px 20px rgba(88,46,173,.2)}.duel-avatar.bot{background:linear-gradient(145deg,#ffae37,#f26c72)}.duel-question{margin-bottom:15px;padding:25px;text-align:center;border:1px solid #eadff5;border-radius:22px;background:#fff}.duel-question small{color:#7b43db;font-weight:950;letter-spacing:.09em}.duel-question h2{margin:9px 0 0;font-size:26px}.duel-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.duel-options button{display:flex;align-items:center;gap:12px;min-height:62px;padding:13px;border:1px solid #e6dcef;border-radius:16px;background:#fff;color:#271f31;text-align:left;font-size:15px;font-weight:850;cursor:pointer;transition:.18s}.duel-options button:hover{border-color:#9d72ec;transform:translateY(-2px)}.duel-options button span{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:10px;background:#f1eaff;color:#7040d8}.duel-options button.correct{border-color:#19a77b;background:#eaf9f3}.duel-options button.wrong{border-color:#df625d;background:#fff0ef}.duel-result{display:grid;justify-items:center;gap:12px;padding:30px;text-align:center}.duel-result>span{font-size:64px}.duel-result>small{color:#7040d8;font-weight:950;letter-spacing:.12em}.duel-result h2{margin:0;font-size:32px}.duel-result p{max-width:500px;margin:0;color:#74677f}.duel-final-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;width:min(370px,100%);padding:16px;border-radius:20px;background:#f4efff}.duel-final-score b{padding:13px;border-radius:14px;background:#fff;font-size:32px}.duel-result>strong{color:#7440df;font-size:22px}@media(max-width:650px){.duel-options{grid-template-columns:1fr}.duel-match-head{gap:8px;padding:12px}.duel-avatar{width:42px;height:42px}.duel-match-head small{font-size:9px}}

/* Exam journey, weak-pattern map and evaluation rubrics. */
.exam-journey{display:grid;grid-template-columns:minmax(260px,.9fr) 1.1fr;gap:14px;padding:18px;border:1px solid #e2d6f7;border-radius:24px;background:linear-gradient(135deg,#f4edff,#fff 55%,#eaf9f4)}.exam-journey-main small,.weak-map small,.exam-plan-hero small,.speaking-mode-head small,.writing-evaluation header small{color:#7040d8;font-size:9px;font-weight:950;letter-spacing:.12em}.exam-journey-main>div{display:flex;align-items:center;justify-content:space-between}.exam-journey-main h2{margin:5px 0}.exam-journey-main strong{font-size:29px;color:#7040d8}.exam-journey-main p{margin:5px 0 12px;color:#71657e}.exam-readiness-track,.skill-readiness i,.weak-topic-grid i,.speaking-rubric i,.writing-evaluation i{display:block;height:7px;overflow:hidden;border-radius:99px;background:#e9e3f1}.exam-readiness-track i,.skill-readiness em,.weak-topic-grid em,.speaking-rubric em,.writing-evaluation em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7140d8,#30b995)}.exam-journey-main .btn{margin-top:13px}.skill-readiness{display:grid;gap:7px}.skill-readiness button{display:grid;gap:6px;padding:8px 11px;border:0;border-radius:12px;background:rgba(255,255,255,.86);cursor:pointer}.skill-readiness span{display:flex;justify-content:space-between}.skill-readiness strong{color:#7040d8}.weak-map{padding:18px;border:1px solid #ece5f4;border-radius:22px;background:#fff}.weak-map-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.weak-map h2{margin:4px 0}.weak-map-head>span{padding:7px 10px;border-radius:99px;background:#fff0d1;color:#865800;font-size:11px;font-weight:900}.weak-topic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px}.weak-topic-grid button{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border:1px solid #e9e1f2;border-radius:15px;background:#fbf9ff;text-align:left;cursor:pointer}.weak-topic-grid button>span{display:grid}.weak-topic-grid small{color:#776b83;letter-spacing:0}.weak-topic-grid strong{color:#7040d8}.weak-topic-grid i{grid-column:1/-1}.weak-empty{grid-column:1/-1;padding:16px;border-radius:14px;background:#eaf9f3;color:#087b62;font-weight:850}.exam-plan-form{display:grid;gap:16px}.exam-plan-hero,.speaking-mode-head{display:flex;align-items:center;gap:14px;padding:17px;border-radius:20px;background:linear-gradient(130deg,#f1e8ff,#eaf9f4)}.exam-plan-hero>span,.speaking-mode-head>span{font-size:38px}.exam-plan-hero h2,.speaking-mode-head h2{margin:4px 0}.exam-plan-hero p{margin:0;color:#71657e}.exam-plan-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.exam-plan-fields label{display:grid;gap:6px;color:#625671;font-size:12px;font-weight:900}.exam-plan-fields select,.exam-plan-fields input{min-height:48px;padding:0 12px;border:1px solid #e2daed;border-radius:13px;background:#fff;font:inherit}.exam-plan-preview{display:flex;justify-content:space-between;gap:10px;padding:14px;border-radius:14px;background:#f8f4ff}.exam-plan-preview span{color:#75697f}.speaking-modes{display:grid;gap:9px;margin-top:13px}.speaking-modes button{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;padding:14px;border:1px solid #e8def5;border-radius:16px;background:#fff;text-align:left;cursor:pointer}.speaking-modes i{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#eee6ff;color:#7040d8;font-style:normal;font-weight:950}.speaking-modes span{display:grid;gap:3px}.speaking-modes small{color:#786c84}.speaking-rubric,.writing-evaluation>div{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}.speaking-rubric>span,.writing-evaluation>div>span{display:grid;grid-template-columns:1fr auto;gap:6px;padding:10px;border-radius:12px;background:#f8f5ff;text-align:left}.speaking-rubric i,.writing-evaluation i{grid-column:1/-1}.writing-evaluation{margin:14px 0;padding:15px;border:1px solid #dfd3f3;border-radius:18px;background:linear-gradient(145deg,#fbf8ff,#f1faf7)}.writing-evaluation header{display:flex;align-items:center;gap:10px}.writing-evaluation header>span{font-size:27px}.writing-evaluation h3{margin:2px 0}.writing-evaluation article{padding:11px;border-radius:12px;background:#fff}.writing-evaluation article p{margin:5px 0;color:#6e6278}.why-panel{display:grid;gap:8px;margin-top:12px;text-align:left}.why-panel header{display:flex;align-items:center;gap:10px;padding:12px;border-radius:14px;background:#f5efff}.why-panel header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#7040d8;color:#fff}.why-panel header div{display:grid}.why-panel header small,.why-panel article small{color:#7040d8;font-size:9px;font-weight:950;letter-spacing:.09em}.why-panel article{padding:11px;border:1px solid #ebe4f2;border-radius:13px;background:#fff}.why-panel article p{margin:5px 0 0;color:#62566f;line-height:1.45}.why-panel .why-tip{border-color:#eed596;background:#fff9e8}.why-panel.ok header{background:#e8f8f2}.why-panel.ok header>span{background:#149974}
@media(max-width:850px){.exam-journey{grid-template-columns:1fr}.weak-topic-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.weak-topic-grid,.exam-plan-fields,.speaking-rubric,.writing-evaluation>div{grid-template-columns:1fr}.exam-plan-preview,.weak-map-head{align-items:flex-start;flex-direction:column}.writing-actions{grid-template-columns:1fr}}
.adaptive-daily .practice-daily-list button span u{display:block;margin-top:5px;color:#7b6f91;font-size:11px;font-style:normal;text-decoration:none}
.ai-checking{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px 0;padding:18px;border:1px solid #e5dcff;border-radius:16px;background:#faf8ff;color:#5d3acb;font-weight:800}
.ai-checking i{width:20px;height:20px;border:3px solid #dfd4ff;border-top-color:#7c36ed;border-radius:50%;animation:practiceAiSpin .8s linear infinite}
@keyframes practiceAiSpin{to{transform:rotate(360deg)}}
.ai-evaluation{margin-top:16px}.ai-evaluation .ai-summary{font-size:14px;line-height:1.55;color:#514763}
.ai-evaluation article ul{margin:8px 0 0;padding-left:20px}.ai-evaluation article li{margin:5px 0}
.ai-evaluation .ai-corrections p{padding:10px 0;border-bottom:1px solid #eee8fa}.ai-evaluation .ai-corrections del{color:#b6475b}.ai-evaluation .ai-corrections strong{color:#087f64}.ai-evaluation .ai-corrections small{display:block;margin-top:5px;color:#746a82}
.ai-result-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}
.mock-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px}.mock-progress span{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;border-radius:12px;background:#f5f1fb;color:#8b8198;font-size:12px}.mock-progress span.active{background:#7534e9;color:#fff;box-shadow:0 10px 25px rgba(117,52,233,.22)}.mock-progress span.done{background:#e4f8ef;color:#087f64}
.mock-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.mock-section-head small{color:#7c36ed;font-weight:900;letter-spacing:.08em}.mock-section-head h2{margin:4px 0 0}.mock-section-head>strong{padding:10px 16px;border-radius:12px;background:#20142e;color:#fff;font-variant-numeric:tabular-nums}
.mock-task,.mock-question{padding:24px;border:1px solid #e5def0;border-radius:20px;background:linear-gradient(145deg,#fff,#fbf8ff)}.mock-task textarea{width:100%;box-sizing:border-box;margin-top:14px;padding:16px;border:1px solid #dcd2eb;border-radius:14px;font:inherit;line-height:1.5;resize:vertical}.mock-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.mock-speaking{text-align:center}.mock-speaking>span{display:block;font-size:42px}.mock-reading-text{max-height:180px;overflow:auto;padding:16px;border-radius:14px;background:#f7f4fb;line-height:1.6}.mock-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.mock-options button{padding:15px;border:1px solid #ded5eb;border-radius:13px;background:#fff;text-align:left;font:inherit;font-weight:750;cursor:pointer}.mock-options button:hover{border-color:#7c36ed;background:#f8f4ff}
.mock-result{text-align:center;padding:28px}.mock-result>span{font-size:52px}.mock-result>small{display:block;margin-top:8px;color:#7c36ed;font-weight:900;letter-spacing:.08em}.mock-result>h2{font-size:52px;margin:8px}.mock-result>p{max-width:620px;margin:0 auto 22px;color:#6d637a}.mock-score-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.mock-score-grid button{display:flex;flex-direction:column;gap:5px;align-items:center;padding:16px;border:1px solid #e4dcef;border-radius:15px;background:#fff;cursor:pointer}.mock-score-grid button span{font-size:24px}.mock-score-grid button strong{color:#7534e9;font-size:20px}.mock-result-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}
@media(max-width:760px){.mock-progress{grid-template-columns:repeat(5,44px);overflow:auto;justify-content:start}.mock-progress span b{display:none}.mock-score-grid{grid-template-columns:1fr 1fr}.mock-options{grid-template-columns:1fr}.mock-section-head h2{font-size:20px}}
.practice-target-switcher{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;padding:10px;margin-bottom:22px;border:1px solid #e8e0f4;border-radius:24px;background:rgba(255,255,255,.72);box-shadow:0 14px 34px rgba(67,42,103,.08)}
.practice-target-switcher button{min-height:76px;display:flex;align-items:center;gap:13px;padding:13px 16px;border:1px solid #e5ddee;border-radius:19px;background:#fff;color:#21192b;text-align:left;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}
.practice-target-switcher button:hover{transform:translateY(-2px);border-color:#9e72ef;box-shadow:0 12px 24px rgba(119,53,231,.12)}
.practice-target-switcher button.active{border-color:transparent;background:linear-gradient(135deg,#7133e7,#ad43f0);color:#fff;box-shadow:0 14px 28px rgba(119,53,231,.25)}
.practice-target-switcher button>span{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:#f1eaff;color:#7040d8;font-size:20px}.practice-target-switcher button.active>span{background:rgba(255,255,255,.18);color:#fff}
.practice-target-switcher button b{display:flex;flex-direction:column;gap:3px;font-size:17px}.practice-target-switcher button small{font-size:12px;opacity:.72}.practice-target-switcher button em{margin-left:auto;font-style:normal;opacity:.55}
.target-chess .exam-journey,.target-chess .weak-map,.target-chess .practice-daily{display:none}
@media(min-width:980px){.practice-target-switcher{grid-template-columns:repeat(3,minmax(210px,1fr));max-width:980px}}
@media(max-width:640px){.practice-target-switcher{grid-template-columns:1fr}.practice-target-switcher button{min-height:68px}}

.practice-home-hero{display:grid;grid-template-columns:1fr;align-items:center;gap:18px;padding:22px;border-radius:28px;background:radial-gradient(circle at 14% 12%,rgba(255,255,255,.28),transparent 28%),linear-gradient(135deg,#5b22c8 0%,#8f38e1 52%,#2db9c8 130%);color:#fff;box-shadow:0 18px 42px rgba(91,34,200,.22)}
.practice-home-hero small{display:block;margin-bottom:6px;color:rgba(255,255,255,.78);font-size:10px;font-weight:950;letter-spacing:.14em}
.practice-home-hero h2{margin:0;font-size:30px;line-height:1.05}
.practice-home-hero p{max-width:620px;margin:8px 0 0;color:rgba(255,255,255,.86);font-weight:750;line-height:1.45}
.practice-home-hero .btn{border-color:rgba(255,255,255,.28);background:#fff;color:#6832d4}
.practice-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));gap:9px;min-width:320px}
.practice-hero-stats span{display:grid;gap:2px;padding:13px 14px;border:1px solid rgba(255,255,255,.22);border-radius:18px;background:rgba(255,255,255,.15);backdrop-filter:blur(10px);font-size:11px;font-weight:850;text-transform:uppercase}
.practice-hero-stats b{font-size:22px;color:#fff;text-transform:none}
.practice-no-target .practice-home-hero{grid-template-columns:1fr auto;background:linear-gradient(135deg,#fff,#f3efff 60%,#e8faf5);color:#21192b;border:1px solid #e6ddf4;box-shadow:0 14px 34px rgba(67,42,103,.08)}
.practice-no-target .practice-home-hero small{color:#7040d8}.practice-no-target .practice-home-hero p{color:#6f657b}.practice-no-target .practice-home-hero .btn{background:#7040d8;color:#fff}
.subject-practice-note{display:flex;gap:16px;align-items:center;padding:18px;border:1px solid #e5daf5;border-radius:24px;background:linear-gradient(135deg,#fff,#f5efff 58%,#eaf9f4)}
.subject-practice-note>span{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#eee6ff;color:#7040d8;font-size:27px}
.subject-practice-note small{color:#7040d8;font-size:10px;font-weight:950;letter-spacing:.12em}
.subject-practice-note h2{margin:3px 0;font-size:22px}.subject-practice-note p{margin:0;color:#6f657b;font-weight:700;line-height:1.45}
.subject-practice .exam-journey,.subject-practice .weak-map{display:none}
.practice-teacher-head{padding-top:6px;border-top:1px solid #ece6f5}
@media(max-width:820px){.practice-home-hero{grid-template-columns:1fr}.practice-hero-stats{min-width:0;width:100%}}
@media(max-width:560px){.practice-hero-stats{grid-template-columns:1fr}.practice-home-hero h2{font-size:25px}.subject-practice-note{align-items:flex-start;flex-direction:column}}

.practice-top-actions{display:grid;grid-template-columns:minmax(280px,.55fr) minmax(620px,1.45fr);gap:14px;align-items:stretch;margin-top:-2px}
.practice-top-actions .practice-quick-settings{justify-content:flex-start;align-content:center;padding:12px;border:1px solid #e8def7;border-radius:22px;background:linear-gradient(135deg,#fff,#f8f4ff);box-shadow:0 12px 28px rgba(69,42,109,.07)}
.practice-top-actions .practice-quick-settings button{min-height:44px;padding:10px 14px;border-color:#e3d8f5;background:#fff;color:#5f536e;font-size:12px;font-weight:950;box-shadow:0 7px 16px rgba(53,33,90,.05)}
.practice-top-actions .practice-quick-settings button[aria-pressed="true"]{border-color:#7b4bea;background:linear-gradient(135deg,#f1eaff,#fff);color:#6534d2}
.practice-rank-strip-top{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.learner-practice-panel .practice-rank-strip-top span,.practice-rank-strip-top span{min-height:70px;display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 18px;border:1px solid #e7ddf7;border-radius:22px;background:linear-gradient(135deg,#fff,#f6f0ff 68%,#eefaf7);color:#5f536e;font-size:15px;font-weight:950;box-shadow:0 12px 28px rgba(69,42,109,.08)}
.practice-rank-strip-top b{font-size:22px;color:#6534d2}
.mobile-practice-hub>.adaptive-daily{border:0;background:linear-gradient(135deg,#ffffff 0%,#fbf8ff 55%,#effaf7 120%);box-shadow:0 16px 38px rgba(73,43,120,.1)}
.mobile-practice-hub>.adaptive-daily .practice-daily-head h2{font-size:24px}
.mobile-practice-hub>.adaptive-daily .practice-daily-list button{min-height:74px;border:1px solid #e7def6;background:#fff;box-shadow:0 9px 20px rgba(55,32,92,.06);cursor:pointer}
.mobile-practice-hub>.adaptive-daily .practice-daily-list i{width:42px;height:42px;border-radius:14px;font-size:16px;font-weight:950}
.mobile-practice-hub>.adaptive-daily .practice-daily-list b{font-size:15px}
@media(max-width:1120px){.practice-top-actions{grid-template-columns:1fr}.practice-top-actions .practice-quick-settings{justify-content:flex-start}.practice-rank-strip-top{grid-template-columns:repeat(4,1fr)}}
@media(max-width:860px){.practice-rank-strip-top{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.practice-rank-strip-top{grid-template-columns:1fr}.practice-top-actions .practice-quick-settings{display:grid;grid-template-columns:1fr}.practice-top-actions .practice-quick-settings button{width:100%}}

/* Learner profile: one coherent hero, quieter forms and a useful progress rail. */
.learner-profile-edit>.grid-2{
  align-items:start;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);
  gap:20px
}
.learner-profile-edit #profileForm{
  display:grid;
  gap:14px;
  padding:0;
  overflow:visible;
  border:0;
  background:transparent;
  box-shadow:none
}
.learner-profile-edit #profileForm .profile-intro{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,300px);
  grid-template-rows:auto auto;
  gap:18px 28px;
  align-items:end;
  min-height:260px;
  padding:84px 30px 30px;
  overflow:hidden;
  border:0;
  border-radius:26px;
  color:#fff;
  background:
    radial-gradient(circle at 87% 5%,rgba(75,211,194,.7),transparent 31%),
    radial-gradient(circle at 10% 110%,rgba(204,77,241,.45),transparent 38%),
    linear-gradient(128deg,#2b0d66 0%,#6734d8 54%,#277fa1 118%);
  box-shadow:0 24px 58px rgba(52,27,102,.22)
}
.learner-profile-edit #profileForm .profile-intro::before{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  right:-105px;
  top:-240px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  background:transparent
}
.learner-profile-edit #profileForm .profile-intro::after{
  content:"";
  position:absolute;
  width:210px;
  height:210px;
  right:55px;
  top:-145px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:50%
}
.learner-profile-edit #profileForm .profile-head{
  position:relative;
  z-index:1;
  align-items:center;
  align-self:end;
  min-width:0
}
.learner-profile-edit #profileForm .profile-head .avatar{
  width:94px;
  height:94px;
  flex:0 0 94px;
  border:5px solid rgba(255,255,255,.95);
  background:#6d3fe0;
  box-shadow:0 14px 34px rgba(24,8,56,.32);
  color:#fff;
  font-size:30px
}
.learner-profile-edit #profileForm .profile-head h2,
.learner-profile-edit #profileForm .profile-intro #profileName{
  margin:0 0 5px;
  overflow:hidden;
  color:#fff;
  font-size:27px;
  font-weight:850;
  line-height:1.1;
  text-overflow:ellipsis;
  white-space:nowrap
}
.learner-profile-edit #profileForm .profile-head p,
.learner-profile-edit #profileForm .profile-intro #profileMeta{
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:12.5px;
  font-weight:700
}
.learner-profile-edit #profileForm .profile-avatar-tools{
  position:relative;
  z-index:1;
  align-self:center;
  justify-self:center;
  gap:7px;
  width:min(360px,100%);
  padding:14px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:17px;
  background:rgba(255,255,255,.12);
  text-align:center;
  backdrop-filter:blur(10px)
}
.learner-profile-edit #profileForm .profile-avatar-tools .btn{
  width:100%;
  min-height:42px;
  justify-content:center;
  border-color:rgba(255,255,255,.85);
  background:#fff;
  color:#4f25b4;
  font-weight:850
}
.learner-profile-edit #profileForm .profile-avatar-tools .btn.ghost{
  min-height:36px;
  border-color:rgba(255,255,255,.3);
  background:rgba(255,255,255,.12);
  color:#fff
}
.learner-profile-edit #profileForm .profile-avatar-tools #avatarUploadHint{
  display:block;
  color:rgba(255,255,255,.68)!important;
  font-size:10.5px!important
}
.learner-profile-edit #profileForm .profile-avatar-tools .avatar-upload-status{
  display:block;
  min-height:17px;
  color:rgba(255,255,255,.82);
  font-size:11px;
  font-weight:800;
  line-height:1.35
}
.learner-profile-edit #profileForm .profile-avatar-tools .avatar-upload-status[data-tone="error"]{
  color:#ffe0e0
}
.learner-profile-edit #profileForm .profile-avatar-tools .avatar-upload-status[data-tone="saved"]{
  color:#d7fff0
}
.learner-profile-edit #profileForm .profile-kicker{
  position:absolute;
  z-index:2;
  right:24px;
  top:22px;
  padding:8px 13px;
  border-color:rgba(255,255,255,.38);
  background:rgba(255,255,255,.12);
  color:#fff;
  letter-spacing:.08em;
  backdrop-filter:blur(8px)
}
.learner-profile-edit #profileForm .learner-profile-summary{
  position:relative;
  z-index:1;
  grid-column:1;
  align-self:start
}
.learner-profile-edit #profileForm .learner-profile-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px
}
.learner-profile-edit #profileForm .learner-profile-badges span{
  padding:7px 11px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  font-size:11px;
  font-weight:850;
  backdrop-filter:blur(8px)
}
.learner-profile-edit #profileForm .learner-profile-welcome{
  margin:10px 0 0;
  max-width:560px;
  color:rgba(255,255,255,.74);
  font-size:12.5px;
  font-weight:700;
  line-height:1.45
}
.learner-profile-edit #profileForm .profile-section{
  display:grid;
  gap:16px;
  margin:0;
  padding:24px;
  border:1px solid #e9e3f1;
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 38px rgba(53,34,85,.055)
}
.learner-profile-edit #profileForm .profile-section+.profile-section{
  padding-top:24px
}
.learner-profile-edit #profileForm .profile-section-title{
  position:relative;
  display:grid;
  gap:5px;
  min-height:42px;
  padding-left:54px;
  padding-bottom:14px;
  border-bottom:1px solid #f0ecf5
}
.learner-profile-edit #profileForm .profile-section-title::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  display:grid;
  width:40px;
  height:40px;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(135deg,#6d3fe0,#b743df);
  color:#fff;
  box-shadow:0 10px 22px rgba(109,63,224,.2);
  font-size:18px;
  font-weight:950
}
.learner-profile-edit #profileForm .profile-identity-section .profile-section-title::before{
  content:"👤"
}
.learner-profile-edit #profileForm .profile-public-section .profile-section-title::before{
  content:"✨";
  background:linear-gradient(135deg,#36b99b,#4a79d9)
}
.learner-profile-edit #profileForm .profile-contacts-section .profile-section-title::before{
  content:"@";
  background:linear-gradient(135deg,#111827,#7c3aed)
}
.learner-profile-edit #profileForm .profile-section-title h3{
  color:#211a2d;
  font-size:20px;
  font-weight:950;
  letter-spacing:-.02em
}
.learner-profile-edit #profileForm .profile-section-title p{
  max-width:620px;
  color:#7b7287;
  font-size:13px;
  font-weight:750;
  line-height:1.5
}
.learner-profile-edit #profileForm .form-grid{
  gap:16px
}
.learner-profile-edit #profileForm .field{
  gap:8px
}
.learner-profile-edit #profileForm .field label{
  color:#62586f;
  font-size:12px;
  font-weight:900
}
.learner-profile-edit #profileForm .field input,
.learner-profile-edit #profileForm .field textarea,
.learner-profile-edit #profileForm .field select{
  width:100%;
  min-height:58px;
  padding:15px 16px;
  border:1px solid #e2dbe9;
  border-radius:16px;
  background:#fcfbff;
  color:#1f1829;
  font-size:15px;
  font-weight:650;
  transition:border-color .16s,box-shadow .16s,background .16s
}
.learner-profile-edit #profileForm .field textarea{
  min-height:150px;
  resize:vertical;
  line-height:1.6
}
.learner-profile-edit #profileForm .field select{
  appearance:auto;
  cursor:pointer
}
.learner-profile-edit #profileForm .field:focus-within label{
  color:#6d3fe0
}
.learner-profile-edit #profileForm .field input:focus,
.learner-profile-edit #profileForm .field textarea:focus,
.learner-profile-edit #profileForm .field select:focus{
  outline:0;
  border-color:#7945e5;
  background:#fff;
  box-shadow:0 0 0 4px rgba(121,69,229,.1)
}
.learner-profile-edit #profileForm .field input[readonly],
.learner-profile-edit #profileForm .field select:disabled{
  color:#766c82;
  background:linear-gradient(180deg,#f6f3fb,#f9f7fc)
}
.learner-profile-edit #profileForm .profile-identity-section{
  background:
    radial-gradient(circle at 0 0,rgba(109,63,224,.08),transparent 34%),
    #fff
}
.learner-profile-edit #profileForm .profile-public-section{
  background:
    radial-gradient(circle at 100% 0,rgba(54,185,155,.1),transparent 38%),
    #fff
}
.learner-profile-edit #profileForm .profile-contacts-section{
  background:
    radial-gradient(circle at 0 0,rgba(17,24,39,.06),transparent 34%),
    radial-gradient(circle at 100% 0,rgba(124,58,237,.08),transparent 36%),
    #fff
}
.learner-profile-edit #profileForm .profile-contacts-section .form-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.learner-profile-edit #profileForm .profile-contacts-section .field input{
  padding-left:18px;
  background:#fff
}
.learner-profile-edit #profileForm .profile-contacts-section .field:nth-child(1) input:focus{
  border-color:#2aabee;
  box-shadow:0 0 0 4px rgba(42,171,238,.12)
}
.learner-profile-edit #profileForm .profile-contacts-section .field:nth-child(2) input:focus{
  border-color:#d946ef;
  box-shadow:0 0 0 4px rgba(217,70,239,.12)
}
.learner-profile-edit #profileForm .profile-contacts-section .field:nth-child(3) input:focus{
  border-color:#111827;
  box-shadow:0 0 0 4px rgba(17,24,39,.1)
}
.learner-profile-edit #profileForm .profile-public-section .field textarea{
  border-radius:18px;
  background:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9)
}
.learner-profile-edit #profileForm .profile-actions{
  gap:9px
}
.learner-profile-edit #profileForm .profile-actions .btn{
  min-height:42px;
  border-radius:12px;
  font-weight:800
}
.learner-profile-edit #profileForm .account-actions-section{
  background:linear-gradient(180deg,#fff,#fbf9ff)
}
.learner-profile-edit #profileForm .learner-account-actions{
  display:grid;
  grid-template-columns:1fr 1fr 150px;
  gap:10px;
  align-items:stretch;
  padding-top:0
}
.learner-profile-edit #profileForm .learner-account-actions .btn{
  position:relative;
  min-height:56px;
  justify-content:center;
  gap:9px;
  padding:12px 16px;
  border-radius:15px;
  box-shadow:0 10px 24px rgba(51,31,88,.06);
  transition:transform .16s,border-color .16s,box-shadow .16s,background .16s
}
.learner-profile-edit #profileForm .learner-account-actions .btn::before{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:10px;
  font-size:14px;
  font-weight:900
}
.learner-profile-edit #profileForm .learner-account-actions .btn:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(51,31,88,.1)
}
.learner-profile-edit #profileForm .learner-account-actions button[type="submit"]::before{
  content:"✓";
  background:rgba(255,255,255,.18);
  color:#fff
}
.learner-profile-edit #profileForm .learner-account-actions #publicProfileLink::before{
  content:"↗";
  background:#f1ebff;
  color:#6d3fe0
}
.learner-profile-edit #profileForm .learner-account-actions #signOut::before{
  content:"⎋";
  background:#fff0ef;
  color:#df3b32
}
.learner-profile-edit #profileForm .learner-account-actions #profileSaved{
  grid-column:1/-1;
  justify-self:start;
  padding:7px 10px;
  border-radius:999px;
  background:#eafaf4;
  color:#168a69!important;
  font-size:12px;
  font-weight:900!important
}
.learner-profile-edit #profileForm .danger-zone{
  margin:0;
  padding:18px 20px;
  border-radius:20px;
  background:#fffafa;
  box-shadow:none
}
.learner-profile-edit #profileForm .learner-danger-zone{
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  border-color:rgba(217,45,32,.16);
  background:linear-gradient(135deg,#fff,#fff7f6)
}
.learner-profile-edit #profileForm .learner-danger-zone .danger-zone-copy{
  position:relative;
  min-width:0;
  padding-left:46px
}
.learner-profile-edit #profileForm .learner-danger-zone .danger-zone-copy::before{
  content:"!";
  position:absolute;
  left:0;
  top:1px;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#fff0ef;
  color:#df3b32;
  font-weight:950
}
.learner-profile-edit #profileForm .learner-danger-zone .profile-actions{
  padding-top:0;
  justify-content:flex-end
}
.learner-profile-edit #profileForm .learner-danger-zone .btn.danger{
  min-height:44px;
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 24px rgba(217,45,32,.06)
}
.learner-profile-edit #progressCard.learner-progress-card{
  position:sticky;
  top:18px;
  padding:22px!important;
  overflow:hidden;
  border:1px solid #e9e3f1;
  border-radius:24px;
  background:#fff;
  box-shadow:0 18px 48px rgba(53,34,85,.08)
}
.learner-profile-edit #progressCard.learner-progress-card::before{
  content:"";
  display:block;
  height:5px;
  margin:-22px -22px 18px;
  background:linear-gradient(90deg,#6334dc,#b63ddd,#36b99b)
}
.learner-profile-edit .learner-stat-grid{
  gap:8px
}
.learner-profile-edit .learner-stat-grid>div{
  min-height:82px;
  border-radius:16px
}
.learner-profile-edit #progressCard .leaderboard-panel{
  margin-top:18px;
  padding:16px;
  border:1px solid #ece6f5;
  border-radius:20px;
  background:linear-gradient(180deg,#fff,#fbf9ff);
  box-shadow:0 12px 30px rgba(70,43,111,.06)
}
.learner-profile-edit #progressCard .leaderboard-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:13px
}
.learner-profile-edit #progressCard .leaderboard-head h3{
  margin:0;
  font-size:17px;
  line-height:1.2
}
.learner-profile-edit #progressCard .leaderboard-head p{
  margin:5px 0 0;
  color:#7b7287;
  font-size:12px;
  font-weight:750;
  line-height:1.4
}
.learner-profile-edit #progressCard .leaderboard-head .role-select{
  width:auto;
  min-width:132px;
  min-height:38px;
  padding:8px 34px 8px 12px;
  border-radius:12px;
  background-color:#fff;
  font-weight:900
}
.learner-profile-edit #progressCard .rank-list{
  display:grid;
  gap:8px;
  margin-top:0
}
.learner-profile-edit #progressCard .rank-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 11px;
  border-radius:14px;
  background:#f3edff;
  color:#6d3fe0;
  font-size:12px;
  font-weight:900
}
.learner-profile-edit #progressCard .rank-summary span,
.learner-profile-edit #progressCard .rank-summary strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.learner-profile-edit #progressCard .rank-row{
  display:grid;
  grid-template-columns:28px 38px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px;
  border:1px solid #eee8f6;
  border-radius:15px;
  background:#fff
}
.learner-profile-edit #progressCard .rank-row.me{
  border-color:#d6c5ff;
  background:#f3edff
}
.learner-profile-edit #progressCard .rank-num{
  color:#9a91a6;
  font-weight:950;
  text-align:center
}
.learner-profile-edit #progressCard .rank-row .avatar{
  width:38px!important;
  height:38px!important;
  border:2px solid #fff;
  font-size:13px!important;
  box-shadow:0 4px 14px rgba(54,38,80,.12)
}
.learner-profile-edit #progressCard .rank-person{
  min-width:0;
  display:grid;
  gap:2px
}
.learner-profile-edit #progressCard .rank-person b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#191323;
  font-size:13px
}
.learner-profile-edit #progressCard .rank-person span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#83778f;
  font-size:11px;
  font-weight:850
}
.learner-profile-edit #progressCard .rank-score{
  display:grid;
  gap:1px;
  min-width:42px;
  color:#6d3fe0;
  text-align:right
}
.learner-profile-edit #progressCard .rank-score b{
  font-size:15px;
  line-height:1
}
.learner-profile-edit #progressCard .rank-score span{
  color:#8b8195;
  font-size:10px;
  font-weight:950
}
@media(max-width:1180px){
  .learner-profile-edit>.grid-2{grid-template-columns:1fr}
  .learner-profile-edit #progressCard.learner-progress-card{position:static}
}
@media(max-width:720px){
  .learner-profile-edit #profileForm .profile-intro{
    grid-template-columns:1fr;
    min-height:0;
    padding:74px 20px 22px
  }
  .learner-profile-edit #profileForm .profile-avatar-tools{
    align-self:stretch;
    justify-self:stretch;
    width:100%
  }
  .learner-profile-edit #profileForm .learner-account-actions{
    grid-template-columns:1fr
  }
  .learner-profile-edit #profileForm .learner-account-actions #profileSaved{
    justify-self:stretch;
    text-align:center
  }
  .learner-profile-edit #profileForm .learner-danger-zone{
    grid-template-columns:1fr
  }
  .learner-profile-edit #progressCard .leaderboard-head{
    display:grid
  }
  .learner-profile-edit #progressCard .leaderboard-head .role-select{
    width:100%
  }
  .learner-profile-edit #profileForm .profile-contacts-section .form-grid{
    grid-template-columns:1fr
  }
  .learner-profile-edit #progressCard .rank-summary{
    align-items:flex-start;
    flex-direction:column
  }
  .learner-profile-edit #progressCard .rank-summary span,
  .learner-profile-edit #progressCard .rank-summary strong{
    max-width:100%
  }
  .learner-profile-edit #profileForm .learner-danger-zone .profile-actions,
  .learner-profile-edit #profileForm .learner-danger-zone .btn.danger{
    width:100%
  }
  .learner-profile-edit #profileForm .learner-profile-summary{
    grid-column:1
  }
  .learner-profile-edit #profileForm .profile-section{
    padding:19px 17px
  }
}
@media(max-width:500px){
  .learner-profile-edit #profileForm .profile-head{
    align-items:flex-start
  }
  .learner-profile-edit #profileForm .profile-head .avatar{
    width:78px;
    height:78px;
    flex-basis:78px;
    font-size:25px
  }
  .learner-profile-edit #profileForm .profile-head h2,
  .learner-profile-edit #profileForm .profile-intro #profileName{
    max-width:calc(100vw - 150px);
    font-size:22px
  }
  .learner-profile-edit #profileForm .profile-kicker{
    right:16px;
    top:16px
  }
}

/* Student ranking page */
.student-rank-page{display:grid;gap:20px}
.student-rank-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,330px);gap:22px;align-items:end;padding:28px;border-radius:28px;background:radial-gradient(circle at 12% 10%,rgba(255,255,255,.2),transparent 24%),radial-gradient(circle at 92% 12%,rgba(67,198,166,.28),transparent 28%),linear-gradient(135deg,#3b158e 0%,#7134e6 48%,#3374c8 100%);color:#fff;box-shadow:0 22px 60px rgba(69,40,129,.18)}
.student-rank-hero::before{content:"";position:absolute;inset:-120px auto auto -60px;width:260px;height:260px;border:1px solid rgba(255,255,255,.18);border-radius:50%}
.student-rank-hero>div{position:relative;z-index:1}
.student-rank-hero span{display:inline-flex;margin-bottom:10px;padding:8px 12px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(255,255,255,.14);font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.student-rank-hero h2{max-width:720px;margin:0;color:#fff;font-size:34px;font-weight:950;letter-spacing:-.04em}
.student-rank-hero p{max-width:680px;margin:10px 0 0;color:rgba(255,255,255,.82);font-size:14px;font-weight:750;line-height:1.55}
.student-rank-control{display:grid;gap:8px;padding:16px;border:1px solid rgba(255,255,255,.22);border-radius:20px;background:rgba(255,255,255,.14);backdrop-filter:blur(12px)}
.student-rank-control label{display:grid;gap:6px;color:rgba(255,255,255,.8);font-size:12px;font-weight:950}
.student-rank-control .role-select{min-height:48px;border-color:rgba(255,255,255,.34);background:#fff;color:#20172d;border-radius:15px;font-weight:950}
.student-rank-control input.role-select{font:inherit;font-weight:850}
.rank-control-grid{grid-template-columns:1fr 1fr}
.rank-control-grid label:first-child{grid-column:1/-1}
.student-rank-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:10px;border:1px solid #e8e2f2;border-radius:22px;background:rgba(255,255,255,.76);box-shadow:0 14px 34px rgba(67,42,103,.07)}
.student-rank-tabs button{display:flex;align-items:center;gap:10px;min-height:58px;padding:12px 14px;border:1px solid #ece6f5;border-radius:17px;background:#fff;color:#5f556d;font:inherit;font-weight:900;cursor:pointer;text-align:left;transition:transform .16s,box-shadow .16s,border-color .16s,background .16s,color .16s}
.student-rank-tabs button span{display:grid;width:34px;height:34px;place-items:center;border-radius:12px;background:#f4efff;font-size:18px}
.student-rank-tabs button b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-rank-tabs button:hover{transform:translateY(-2px);border-color:#d9caf8;box-shadow:0 10px 22px rgba(67,42,103,.08)}
.student-rank-tabs button.active{border-color:transparent;background:linear-gradient(135deg,#6d3fe0,#a642df);color:#fff;box-shadow:0 14px 28px rgba(109,63,224,.22)}
.student-rank-tabs button.active span{background:rgba(255,255,255,.18)}
.student-rank-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:20px;align-items:start}
.student-rank-card{border:1px solid #e8e2f2;border-radius:24px;background:#fff;box-shadow:0 18px 48px rgba(57,35,94,.08)}
.student-rank-main{padding:22px}
.student-rank-side{display:grid;gap:12px;padding:18px;position:sticky;top:18px;background:radial-gradient(circle at 100% 0,rgba(109,63,224,.08),transparent 38%),#fff}
.student-rank-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}
.student-rank-section-head h3{margin:0;color:#211a2d;font-size:22px;font-weight:950;letter-spacing:-.025em}
.student-rank-section-head p{margin:4px 0 0;color:#7b7287;font-size:13px;font-weight:850}
.student-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;margin-bottom:18px}
.student-podium-card{display:grid;justify-items:center;gap:8px;min-height:178px;padding:18px 12px;border:1px solid #ece6f5;border-radius:22px;background:linear-gradient(180deg,#fff,#fbf9ff);text-align:center}
.student-podium-card.place-1{min-height:204px;background:linear-gradient(180deg,#fff7d7,#fff);box-shadow:0 16px 32px rgba(199,139,18,.12)}
.student-podium-card.place-2{background:linear-gradient(180deg,#f3f0ff,#fff)}
.student-podium-card.place-3{background:linear-gradient(180deg,#ecfaf5,#fff)}
.student-medal{font-size:28px}
.student-podium-card .avatar{width:62px;height:62px;border:4px solid #fff;box-shadow:0 10px 22px rgba(45,28,75,.14)}
.student-podium-card b{max-width:100%;overflow:hidden;color:#1f1829;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:950}
.student-podium-card strong{color:#6d3fe0;font-size:13px}
.student-rank-list{display:grid;gap:9px}
.student-rank-row{display:grid;grid-template-columns:34px 46px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px;border:1px solid #eee8f6;border-radius:18px;background:#fff;transition:transform .16s,box-shadow .16s,border-color .16s}
.student-rank-row:hover{transform:translateY(-2px);border-color:#d9caf8;box-shadow:0 12px 28px rgba(67,42,103,.08)}
.student-rank-row.me{border-color:#cdb7ff;background:linear-gradient(90deg,#f3edff,#fff)}
.student-rank-number{color:#9a91a6;font-size:16px;font-weight:950;text-align:center}
.student-rank-row .avatar{width:46px;height:46px;border:2px solid #fff;box-shadow:0 6px 16px rgba(45,28,75,.1)}
.student-rank-person{min-width:0;display:grid;gap:3px}
.student-rank-person b{overflow:hidden;color:#1f1829;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:950}
.student-rank-person span{overflow:hidden;color:#81768e;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:850}
.student-rank-score{display:grid;min-width:66px;color:#6d3fe0;text-align:right}
.student-rank-score b{font-size:18px;line-height:1;font-weight:950}
.student-rank-score span{margin-top:3px;color:#8b8195;font-size:10px;font-weight:950}
.student-rank-profile{min-height:38px;padding:8px 11px;border-radius:12px;white-space:nowrap}
.student-rank-stat{padding:16px;border:1px solid #ece6f5;border-radius:18px;background:linear-gradient(145deg,#fff,#fbf9ff)}
.student-rank-stat span{color:#83778f;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.student-rank-stat b{display:block;margin-top:6px;color:#6d3fe0;font-size:28px;font-weight:950}
.student-rank-stat p{margin:5px 0 0;color:#796f86;font-size:12px;font-weight:750;line-height:1.45}
.student-rank-note{padding:16px;border-radius:18px;background:#191323;color:#fff}
.student-rank-note b{display:block;margin-bottom:6px}
.student-rank-note p{margin:0;color:rgba(255,255,255,.72);font-size:12px;font-weight:700;line-height:1.5}
.student-rank-note span{display:block;margin-top:12px;color:#cfc3ff;font-size:11px;font-weight:900}
.student-rank-loading,.student-rank-empty{padding:24px;border:1px dashed #ded4ef;border-radius:18px;background:#fbf9ff;color:#796f86;font-weight:850;text-align:center}
@media(max-width:1080px){.student-rank-grid,.student-rank-hero{grid-template-columns:1fr}.student-rank-side{position:static}.student-rank-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.student-rank-hero{padding:22px 18px;border-radius:24px}.student-rank-hero h2{font-size:26px}.rank-control-grid{grid-template-columns:1fr}.rank-control-grid label:first-child{grid-column:auto}.student-rank-tabs{grid-template-columns:1fr}.student-podium{grid-template-columns:1fr}.student-podium-card,.student-podium-card.place-1{min-height:0}.student-rank-row{grid-template-columns:28px 40px minmax(0,1fr) auto;gap:9px}.student-rank-profile{grid-column:3/-1;justify-self:start}}

/* Practice library mobile hub */
.learner-practice-panel>.section-head{display:none}
.learner-practice-panel .profile-box:has(#workspaceActions){max-width:596px;margin-inline:auto;padding:0;border:0;border-radius:0;background:#f4f1f8;box-shadow:none}
.learner-practice-panel #workspaceActions{gap:0}
.practice-library-mobile{gap:18px;margin:0;padding:18px 22px 32px;background:#f4f1f8;color:#20172d}
.practice-language-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:9px;border-radius:30px;background:#f7f5fb;box-shadow:inset 0 0 0 1px rgba(138,118,166,.12)}
.practice-language-tabs button{display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;min-height:74px;padding:14px 16px;border:1px solid #e2ddea;border-radius:23px;background:#fff;color:#1e1727;font:inherit;text-align:left;cursor:pointer;box-shadow:0 5px 14px rgba(43,31,69,.04)}
.practice-language-tabs button:first-child:last-child,.practice-language-tabs button:nth-child(3){grid-column:1/-1}
.practice-language-tabs button.active{border-color:transparent;background:linear-gradient(100deg,#7541e8,#a044f0);color:#fff;box-shadow:0 12px 26px rgba(116,65,232,.22)}
.practice-language-tabs span{grid-row:1/span 2;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#f2eaff;color:#7845e8}
.practice-language-tabs span svg{width:24px;height:24px}
.practice-language-tabs button.active span{background:rgba(255,255,255,.17);color:#fff}
.practice-language-tabs b{align-self:end;font-size:19px;font-weight:950;line-height:1}
.practice-language-tabs small{align-self:start;color:inherit;font-size:14px;font-weight:950;opacity:.76}
.practice-goal-progress,.practice-exam-journey{display:grid;gap:16px;padding:22px;border-radius:28px;background:#fff;color:#181221;box-shadow:0 10px 28px rgba(42,31,64,.06)}
.practice-goal-head{display:flex;align-items:center;gap:14px}
.practice-goal-head>span{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#f1eaff;color:#7744e6}
.practice-goal-head svg{width:30px;height:30px}
.practice-goal-head div{flex:1;min-width:0}
.practice-goal-head small,.practice-exam-title small,.practice-quick-head small{display:block;color:#7544e6;font-size:12px;font-weight:950;letter-spacing:.18em}
.practice-goal-head h2{margin:3px 0 0;color:#171020;font-size:25px;font-weight:950;line-height:1.06}
.practice-goal-head>strong{color:#12a77b;font-size:25px;font-weight:950}
.practice-goal-track{height:13px;border-radius:999px;background:#ece8f3;overflow:hidden}
.practice-goal-track i{display:block;height:100%;border-radius:inherit;background:#16ad83}
.practice-goal-track.exam i{background:linear-gradient(90deg,#7040d8,#a442e7)}
.practice-goal-stats{display:grid;grid-template-columns:1fr 1fr 2.35fr;gap:11px}
.practice-goal-stats>span{display:grid;align-content:start;min-height:105px;padding:15px;border-radius:18px;background:#f8f4ff}
.practice-goal-stats small{color:#787184;font-size:12px;font-weight:950;letter-spacing:.08em}
.practice-goal-stats b{margin-top:5px;color:#171020;font-size:20px;font-weight:950}
.practice-goal-stats .wide{position:relative;overflow:hidden}
.practice-goal-stats .wide>em{position:absolute;right:15px;top:31px;display:inline-flex;align-items:center;height:30px;padding:0 13px;border-radius:999px;background:#be792c;color:#fff;font-style:normal;font-size:13px;font-weight:950}
.practice-goal-stats .wide>i{height:7px;margin:8px 0 14px;border-radius:999px;background:#eadff0;overflow:hidden}
.practice-goal-stats .wide>i u{display:block;height:100%;border-radius:inherit;background:#c47a2c;text-decoration:none}
.practice-goal-stats strong{color:#7544e6;font-size:19px;font-weight:950}
.practice-goal-progress>p{display:flex;align-items:center;gap:10px;margin:0;padding:14px 16px;border-radius:17px;background:#f7f3ff;color:#615970;font-size:16px;font-weight:950}
.practice-goal-progress>p span{display:grid;width:24px;height:24px;color:#7040d8}
.practice-exam-journey{border:1px solid #d8cceb;background:#fbf9ff;box-shadow:none}
.practice-exam-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.practice-exam-title h2{margin:22px 0 0;color:#09070d;font-size:40px;font-weight:950;line-height:1;letter-spacing:0}
.practice-exam-title>strong{color:#7340df;font-size:56px;font-weight:950;line-height:1}
.practice-exam-journey>p{margin:0;color:#5f596b;font-size:22px;font-weight:800;line-height:1.35}
.practice-exam-date{display:grid;grid-template-columns:54px 1fr auto;gap:14px;align-items:center;padding:13px;border-radius:20px;background:#f0e7fb}
.practice-exam-date>span{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;background:#fff;color:#7544e6}
.practice-exam-date svg{width:27px;height:27px}
.practice-exam-date small{color:#756a84;font-size:12px;font-weight:950;letter-spacing:.08em}
.practice-exam-date b{display:block;color:#15101c;font-size:18px;font-weight:950}
.practice-exam-date em{justify-self:end;padding:10px 14px;border-radius:999px;background:#fff;color:#7544e6;font-style:normal;font-size:15px;font-weight:950}
.practice-exam-actions{display:flex;align-items:center;gap:18px}
.practice-exam-actions button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:62px;padding:0 24px;border:1px solid #ded5e9;border-radius:18px;background:#fff;color:#0f0a15;font:inherit;font-size:20px;font-weight:950;cursor:pointer}
.practice-exam-actions button svg{width:23px;height:23px}
.practice-exam-actions button:last-child{border:0;background:transparent;color:#7544e6}
.practice-exam-actions button:last-child span{font-size:25px}
.practice-skill-readiness{display:grid;gap:18px;margin-top:4px}
.practice-skill-readiness button{display:grid;gap:9px;padding:16px;border:0;border-radius:19px;background:#fff;color:#100b16;font:inherit;text-align:left;cursor:pointer}
.practice-skill-readiness span{display:flex;align-items:center;justify-content:space-between;gap:12px}
.practice-skill-readiness b,.practice-skill-readiness strong{font-size:23px;font-weight:950}
.practice-skill-readiness strong{color:#7544e6}
.practice-skill-readiness i{height:10px;border-radius:999px;background:#ebe3f1;overflow:hidden}
.practice-skill-readiness em{display:block;height:100%;border-radius:inherit;background:#7544e6}
.practice-quick-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:6px 2px -2px}
.practice-quick-head h2{margin:3px 0 0;color:#171020;font-size:29px;font-weight:950;line-height:1}
.practice-quick-head>span{display:grid;place-items:center;min-width:40px;height:40px;border-radius:50%;background:#efe9ff;color:#7040d8;font-size:16px;font-weight:950}
.practice-quick-start{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;overflow:hidden}
.practice-quick-card{display:grid;align-content:start;justify-items:start;gap:20px;min-height:132px;padding:18px 16px;border:0;border-radius:24px;background:#fff;color:#171020;font:inherit;text-align:left;box-shadow:0 10px 26px rgba(42,31,64,.06);cursor:pointer}
.practice-quick-card span{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:#e8fff8;color:#14a982}
.practice-quick-card:nth-child(2) span{background:#eef5ff;color:#3b72b5}
.practice-quick-card:nth-child(3) span{background:#fff0fb;color:#bb35a4}
.practice-quick-card svg{width:30px;height:30px}
.practice-quick-card b{font-size:18px;font-weight:950;line-height:1.1}
.practice-library-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:4px 2px 0}
.practice-library-head small{display:block;margin-bottom:3px;color:#7140d8;font-size:12px;font-weight:950;letter-spacing:.18em}
.practice-library-head h2{margin:0;color:#171020;font-size:31px;font-weight:950;line-height:1;letter-spacing:0}
.practice-library-head>span{display:grid;place-items:center;min-width:44px;height:44px;border-radius:50%;background:#efe9ff;color:#7040d8;font-size:17px;font-weight:950}
.practice-exercise-bank{display:grid;gap:18px}
.mph-exercise-card{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr);column-gap:18px;row-gap:16px;align-items:start;width:100%;min-height:0;padding:22px 22px 20px;border:0;border-radius:28px;background:#fff;color:#20172d;text-align:left;font:inherit;box-shadow:0 8px 24px rgba(42,31,64,.06);cursor:pointer}
.mph-exercise-card.premium-exercise{border:1.5px solid #f2c929;background:#fffdee;box-shadow:none}
.mph-exercise-card.regular-exercise{box-shadow:0 11px 26px rgba(38,28,61,.07)}
.mph-exercise-top{display:contents}
.mph-exercise-icon{grid-column:1;grid-row:1;display:grid;place-items:center;width:68px;height:68px;border:1.5px solid #f2c929;border-radius:19px;background:#f7eefc;color:#7d42e7}
.mph-exercise-icon svg{width:34px;height:34px}
.premium-exercise:nth-child(3) .mph-exercise-icon{color:#e14a58}
.premium-exercise:nth-child(4) .mph-exercise-icon{color:#df4f83}
.premium-exercise:nth-child(5) .mph-exercise-icon{color:#1791ad}
.premium-exercise:nth-child(6) .mph-exercise-icon{color:#8242e6}
.regular-exercise .mph-exercise-icon{border:0;background:#e9fff9;color:#13a982}
.regular-exercise:nth-child(9) .mph-exercise-icon{background:#f1e9ff;color:#7544e6}
.regular-exercise:nth-child(10) .mph-exercise-icon{background:#fff7e5;color:#b17116}
.regular-exercise:nth-child(11) .mph-exercise-icon{background:#eaf8ff;color:#2794c4}
.regular-exercise:nth-child(12) .mph-exercise-icon{background:#fff2e5;color:#ef8a28}
.mph-premium-badge{grid-column:2;grid-row:1;justify-self:end;align-self:start;display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 16px;border:1.5px solid #f2c929;border-radius:999px;background:#fffdf1;color:#8a4c0c;font-size:15px;font-weight:950;line-height:1;white-space:nowrap}
.mph-exercise-copy{grid-column:2;grid-row:1;min-width:0;padding-right:132px}
.regular-exercise .mph-exercise-copy{padding-right:0}
.mph-exercise-copy h3{margin:5px 0 3px;color:#20170d;font-size:25px;font-weight:950;line-height:1.03;letter-spacing:0}
.mph-exercise-copy strong{display:block;color:#a94300;font-size:18px;font-weight:950;line-height:1.12}
.regular-exercise .mph-exercise-copy strong{color:#7544e6}
.mph-exercise-copy p{margin:28px 0 0 -88px;color:#5f596b;font-size:19px;font-weight:500;line-height:1.38;letter-spacing:0}
.mph-exercise-action{grid-column:1/-1;display:grid;place-items:center;min-height:58px;border-radius:18px;background:linear-gradient(100deg,#ffa300 0%,#b65aa7 55%,#753ee8 100%);color:#fff;font-size:21px;font-weight:950;text-align:center}
.regular-exercise .mph-exercise-action{background:linear-gradient(100deg,#7d45ed 0%,#b215a6 100%)}
@media(min-width:980px){
  .learner-practice-panel .profile-box:has(#workspaceActions){max-width:1080px}
  .practice-exercise-bank{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mph-exercise-card{grid-template-columns:58px minmax(0,1fr);column-gap:14px;row-gap:14px;padding:18px;border-radius:24px}
  .mph-exercise-icon{width:56px;height:56px;border-radius:17px}
  .mph-exercise-icon svg{width:29px;height:29px}
  .mph-premium-badge{position:absolute;right:18px;top:18px;height:34px;padding:0 12px;font-size:13px}
  .premium-exercise .mph-exercise-copy{padding-right:108px}
  .regular-exercise .mph-exercise-copy{padding-right:0}
  .mph-exercise-copy h3{margin-top:4px;font-size:21px;line-height:1.08}
  .mph-exercise-copy strong{font-size:15px}
  .mph-exercise-copy p{margin:20px 0 0 -72px;font-size:16px;line-height:1.36}
  .mph-exercise-action{min-height:50px;border-radius:16px;font-size:18px}
}
#workspaceActions:not(.show-practice-db) .practice-library-mobile ~ .section-head,
#workspaceActions:not(.show-practice-db) .practice-library-mobile ~ .practice-filterbar,
#workspaceActions:not(.show-practice-db) .practice-library-mobile ~ .practice-tabs,
#workspaceActions:not(.show-practice-db) .practice-library-mobile ~ .practice-card-grid,
#workspaceActions:not(.show-practice-db) .practice-library-mobile ~ .practice-no-results,
#workspaceActions:not(.show-practice-db) .practice-library-mobile ~ .challenge-card-grid{display:none!important}
@media(max-width:700px){
  body:not(.business-mode) .sidebar{position:fixed;left:0;right:0;bottom:0;z-index:220;height:74px;padding:0;border:0;border-top:1px solid rgba(31,23,44,.08);background:rgba(255,255,255,.96);box-shadow:0 -10px 30px rgba(28,20,43,.08);backdrop-filter:blur(14px)}
  body:not(.business-mode) .brand,body:not(.business-mode) .side-status,body:not(.business-mode) .side-foot,body:not(.business-mode) .user-chip,body:not(.business-mode) .role-switcher{display:none!important}
  body:not(.business-mode) .nav{height:100%;display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:0}
  body:not(.business-mode) .nav button{display:none}
  body:not(.business-mode) .nav button[data-view="home"],body:not(.business-mode) .nav button[data-view="videos"],body:not(.business-mode) .nav button[data-view="workspace"],body:not(.business-mode) .nav button[data-view="messages"],body:not(.business-mode) .nav button[data-view="profile"]{display:flex;min-width:0;height:74px;flex-direction:column;justify-content:center;gap:4px;padding:0 4px;border-radius:0;background:transparent;color:#908a9c;font-size:13px;font-weight:600}
  body:not(.business-mode) .nav button span:last-child{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body:not(.business-mode) .nav button.active{color:#7140d8}
  body:not(.business-mode) .nav .nav-icon{width:25px;height:25px}
  body:not(.business-mode) .main{padding:0 0 74px;background:#f4f1f8}
  .learner-practice-panel{background:#f4f1f8}
  .learner-practice-panel .grid-2{gap:0}
  .practice-library-mobile{min-height:calc(100dvh - 74px);padding:16px 22px 32px}
}
@media(max-width:430px){
  .practice-library-mobile{padding-inline:16px}
  .mph-exercise-card{grid-template-columns:62px minmax(0,1fr);gap:15px;padding:20px;border-radius:25px}
  .mph-exercise-icon{width:62px;height:62px;border-radius:18px}
  .mph-exercise-copy{padding-right:0}
  .mph-premium-badge{position:absolute;right:20px;top:28px;height:34px;padding:0 12px;font-size:13px}
  .premium-exercise .mph-exercise-copy{padding-right:112px}
  .mph-exercise-copy h3{font-size:22px}
  .mph-exercise-copy strong{font-size:16px}
  .mph-exercise-copy p{margin-top:24px;margin-left:-77px;font-size:17px}
  .mph-exercise-action{min-height:54px;font-size:19px}
}

/* Focused listening session: compact, sequential and usable without dead space. */
#studyOverlay.practice-immersive .overlay-card{height:min(760px,calc(100vh - 36px))}
#studyOverlay.practice-immersive .overlay-body{padding:20px 26px 28px}
#studyOverlay.practice-immersive .practice-stage-intro{margin-bottom:11px;padding:14px 17px;border-radius:18px}
#studyOverlay.practice-immersive .practice-stage-intro>span{width:52px;height:52px;border-radius:16px;font-size:23px}
#studyOverlay.practice-immersive .practice-stage-intro h3{font-size:19px}
#studyOverlay.practice-immersive .practice-session-line{margin-bottom:13px}
#studyOverlay.practice-immersive .practice-gamebar{margin-bottom:11px}
.practice-language-row{display:flex;justify-content:flex-start;margin-bottom:12px}
.practice-language-select{display:grid;gap:5px;min-width:190px}
.practice-language-select>span{color:#755d96;font-size:9px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}
#studyOverlay .practice-language-select select{width:100%!important;min-height:40px;margin:0!important;padding:0 36px 0 12px;border:1px solid #ded3ef;border-radius:12px;background-color:rgba(255,255,255,.9);font-weight:850}
#studyOverlay[data-practice-tool=listening] .practice-workspace{min-height:0;padding:0;border:0;background:transparent;box-shadow:none}
.listening-lab{width:min(820px,100%);display:grid;gap:14px;margin:0 auto}
.listening-task-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.listening-task-head span,.listening-player-copy span,.listening-context span,.listening-answer label span{display:block;color:#7440d8;font-size:9px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}
.listening-task-head h2{margin:5px 0 3px;font-size:23px;line-height:1.15}
.listening-task-head p{margin:0;color:#766b81;font-size:12px;font-weight:650;line-height:1.5}
.listening-task-head>b{padding:8px 11px;border-radius:999px;background:#eee7ff;color:#7040d8;font-size:11px;white-space:nowrap}
.listening-player{display:grid;grid-template-columns:minmax(130px,.6fr) minmax(190px,1fr) auto;gap:14px;align-items:center;padding:19px;border:1px solid #ded4f0;border-radius:22px;background:linear-gradient(145deg,#f8f3ff,#fff 55%,#ebfaf5);box-shadow:0 14px 34px rgba(58,33,96,.08)}
.listening-player-copy{display:grid;gap:5px}
.listening-player-copy strong{color:#30273b;font-size:15px}
.listening-wave{height:46px;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 8px}
.listening-wave i{width:4px;height:12px;border-radius:99px;background:#a184df;opacity:.52;transform-origin:center;transition:height .18s,opacity .18s}
.listening-wave i:nth-child(3n){height:28px}.listening-wave i:nth-child(4n){height:38px}.listening-wave i:nth-child(5n){height:20px}
.listening-player.is-playing .listening-wave i{opacity:1;animation:listeningPulse .7s ease-in-out infinite alternate}
.listening-player.is-playing .listening-wave i:nth-child(2n){animation-delay:-.18s}.listening-player.is-playing .listening-wave i:nth-child(3n){animation-delay:-.36s}
@keyframes listeningPulse{to{height:42px;background:#18a984}}
.listening-play{min-width:178px;min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 18px;border:0;border-radius:15px;background:linear-gradient(100deg,#6735dc,#983de2);color:#fff;font:inherit;font-size:14px;font-weight:900;cursor:pointer;box-shadow:0 10px 24px rgba(104,52,217,.24)}
.listening-play:hover{transform:translateY(-1px)}.listening-play:disabled{cursor:wait;opacity:.78}
.listening-play-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.18);font-size:10px}
.listening-player-meta{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:11px;border-top:1px solid rgba(100,70,140,.11);color:#74677f;font-size:11px;font-weight:750}
.listening-player-meta button{min-width:52px;min-height:34px;border:1px solid #d9cbed;border-radius:10px;background:#fff;color:#6840ad;font-weight:900;cursor:pointer}
.listening-context{grid-column:1/-1;padding:11px 13px;border-radius:13px;background:rgba(255,255,255,.78)}
.listening-context p{margin:5px 0 0;color:#554b61;font-size:12.5px;font-weight:750}
.listening-answer{display:grid;gap:9px;padding:17px;border:1px solid #e5deef;border-radius:20px;background:#fff}
.listening-answer label{display:grid;gap:4px}.listening-answer label b{font-size:14px}
#studyOverlay .listening-answer input{width:100%;min-height:50px;padding:0 14px;border:1px solid #ddd3eb;border-radius:13px;background:#fbfaff;font:inherit;font-size:15px;outline:none}
#studyOverlay .listening-answer input:focus{border-color:#8b64de;box-shadow:0 0 0 4px rgba(113,64,216,.1)}
.listening-answer-foot{display:flex;align-items:center;justify-content:space-between;gap:14px}
.listening-answer-foot small{color:#83788d;font-size:10.5px;font-weight:700}
.listening-answer-foot .btn{min-width:190px;min-height:44px}.listening-answer-foot .btn:disabled{box-shadow:none;cursor:not-allowed;filter:saturate(.35);opacity:.5}
.listening-feedback:empty{display:none}.listening-feedback{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:16px;font-weight:800}
.listening-feedback>div{display:flex;align-items:flex-start;gap:11px}.listening-feedback>div>span{width:30px;height:30px;display:grid;place-items:center;flex:none;border-radius:50%;font-weight:950}
.listening-feedback b{display:block}.listening-feedback p{margin:5px 0 0;font-weight:750}.listening-feedback .btn{min-width:145px}
.listening-feedback.ok{background:#e7f8f1;color:#08775e}.listening-feedback.ok>div>span{background:#c6efdf}
.listening-feedback.bad{background:#fff0ef;color:#a53c37}.listening-feedback.bad>div>span{background:#ffd9d6}
@media(max-width:700px){
  #studyOverlay.practice-immersive .overlay-card{height:100dvh}
  #studyOverlay.practice-immersive .overlay-body{padding:14px 12px 24px}
  #studyOverlay.practice-immersive .practice-stage-intro{padding:12px}
  .practice-language-row{margin-bottom:10px}.practice-language-select{width:100%}
  .listening-task-head h2{font-size:20px}.listening-task-head p{font-size:11px}
  .listening-player{grid-template-columns:1fr;padding:15px}
  .listening-player-copy{text-align:center}.listening-wave{grid-row:2}.listening-play{width:100%;grid-row:3}
  .listening-player-meta,.listening-context{grid-column:1}
  .listening-answer{padding:14px}.listening-answer-foot{align-items:stretch;flex-direction:column}.listening-answer-foot .btn{width:100%}
  .listening-feedback{align-items:stretch;flex-direction:column}.listening-feedback .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.listening-player.is-playing .listening-wave i{animation:none}.listening-play{transition:none}}

/* TikTok LIVE duel stage: a focused 9:16 capture surface with broadcast-safe type. */
.duel-live-masthead,.duel-live-audience{display:none}.duel-live-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:0 0 12px}.duel-live-toolbar>span{color:#7b6e88;font-size:11px;font-weight:750}.duel-live-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid #e3d7f4;border-radius:999px;background:#fff;color:#6940bc;font:inherit;font-size:12px;font-weight:950;cursor:pointer;box-shadow:0 7px 18px rgba(62,35,105,.09)}.duel-live-toolbar button>span{color:#e21f53;font-size:15px}.duel-live-toolbar button:hover{border-color:#956ce8;background:#f7f2ff}.duel-options button:focus-visible,.duel-live-toolbar button:focus-visible{outline:3px solid rgba(38,210,255,.58);outline-offset:3px}

#studyOverlay.practice-live-mode{padding:0;background:radial-gradient(circle at 50% 0,#43206f 0,transparent 38%),linear-gradient(135deg,#080712,#16102a 52%,#071522);backdrop-filter:none}
#studyOverlay.practice-live-mode .overlay-card{position:relative;width:min(100vw,calc(100dvh * .5625))!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden;border:0!important;border-radius:0!important;background:radial-gradient(circle at 12% 24%,rgba(139,63,225,.24),transparent 32%),radial-gradient(circle at 92% 70%,rgba(18,185,240,.19),transparent 31%),linear-gradient(180deg,#0d0917 0%,#151020 52%,#07131d 100%)!important;box-shadow:0 0 90px rgba(0,0,0,.68)!important;color:#fff}
#studyOverlay.practice-live-mode .overlay-card:before{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid rgba(218,182,107,.52);box-shadow:inset 0 0 42px rgba(89,42,155,.34)}
#studyOverlay.practice-live-mode .overlay-head{display:none}
#studyOverlay.practice-live-mode .overlay-body{height:100%;overflow:auto;padding:clamp(16px,2.3vh,28px) clamp(17px,3vw,28px) max(34px,env(safe-area-inset-bottom));background:transparent;scrollbar-width:none}
#studyOverlay.practice-live-mode .overlay-body::-webkit-scrollbar{display:none}
#studyOverlay.practice-live-mode .practice-stage-intro,#studyOverlay.practice-live-mode .practice-gamebar,#studyOverlay.practice-live-mode .practice-language-row{display:none}
#studyOverlay.practice-live-mode .practice-session-line{display:none}
#studyOverlay.practice-live-mode .practice-session-line>div{height:7px;background:rgba(255,255,255,.14)}
#studyOverlay.practice-live-mode .practice-session-line i{background:linear-gradient(90deg,#9b54ff,#d85aea,#29ccf4);box-shadow:0 0 16px rgba(168,78,255,.65)}
#studyOverlay.practice-live-mode .practice-session-line span{color:#d7cae7;font-size:12px}
#studyOverlay.practice-live-mode .practice-workspace{min-height:0;padding:0;border:0;background:transparent;box-shadow:none;color:#fff}
#studyOverlay.practice-live-mode .duel-live-masthead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:clamp(14px,2.2vh,24px);padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.12)}
#studyOverlay.practice-live-mode .duel-live-masthead>div{display:grid;gap:2px}
#studyOverlay.practice-live-mode .duel-live-masthead small{color:#d5af68;font-size:clamp(13px,1.8vh,18px);font-weight:950;letter-spacing:.24em}
#studyOverlay.practice-live-mode .duel-live-masthead strong{font-size:clamp(18px,2.4vh,25px);letter-spacing:.04em}
#studyOverlay.practice-live-mode .duel-live-masthead>span{display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#d91f50;color:#fff;font-size:12px;font-weight:950;box-shadow:0 0 22px rgba(226,31,83,.38)}
#studyOverlay.practice-live-mode .duel-live-masthead i{width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.12);animation:duelLiveDot 1.15s ease-in-out infinite}
@keyframes duelLiveDot{50%{opacity:.42;transform:scale(.76)}}
#studyOverlay.practice-live-mode .duel-live-toolbar{position:absolute;z-index:4;right:12px;bottom:12px;margin:0}
#studyOverlay.practice-live-mode .duel-live-toolbar>span{display:none}
#studyOverlay.practice-live-mode .duel-live-toolbar button{width:40px;height:40px;min-height:0;padding:0;border-color:rgba(255,255,255,.18);background:rgba(9,8,18,.7);color:#fff;font-size:0;box-shadow:none;backdrop-filter:blur(10px)}
#studyOverlay.practice-live-mode .duel-live-toolbar button>span{color:#fff;font-size:25px;line-height:1}
#studyOverlay.practice-live-mode .duel-live-audience{display:block;margin:0 0 clamp(12px,1.8vh,20px);color:#d9ccea;font-size:clamp(13px,1.7vh,17px);font-weight:850;text-align:center}
#studyOverlay.practice-live-mode .duel-match-head{gap:10px;margin-bottom:clamp(13px,2vh,22px);padding:clamp(12px,1.8vh,19px);border-color:rgba(210,180,255,.24);border-radius:22px;background:linear-gradient(120deg,rgba(130,62,221,.24),rgba(255,255,255,.07),rgba(16,180,230,.18));box-shadow:0 14px 34px rgba(0,0,0,.19)}
#studyOverlay.practice-live-mode .duel-match-head strong{color:#d7aef8;font-size:16px}
#studyOverlay.practice-live-mode .duel-match-head small{color:#cfc0df;font-size:10px}
#studyOverlay.practice-live-mode .duel-match-head b{color:#fff;font-size:clamp(27px,4vh,42px);line-height:1}
#studyOverlay.practice-live-mode .duel-avatar{width:clamp(48px,6.5vh,68px);height:clamp(48px,6.5vh,68px);border:1px solid rgba(255,255,255,.22);border-radius:20px;background:linear-gradient(145deg,#7841ef,#a63de1);font-size:clamp(22px,3vh,30px);box-shadow:0 8px 24px rgba(118,55,229,.34)}
#studyOverlay.practice-live-mode .duel-avatar.bot{background:linear-gradient(145deg,#ffb13b,#ed4e74)}
#studyOverlay.practice-live-mode .duel-question{margin-bottom:clamp(13px,2vh,22px);padding:clamp(21px,3.2vh,36px) 17px;border-color:rgba(255,255,255,.16);border-radius:24px;background:rgba(255,255,255,.09);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 15px 34px rgba(0,0,0,.16);backdrop-filter:blur(12px)}
#studyOverlay.practice-live-mode .duel-question small{color:#d3a5ff;font-size:clamp(10px,1.45vh,14px)}
#studyOverlay.practice-live-mode .duel-question h2{margin-top:11px;color:#fff;font-size:clamp(26px,4vh,42px);line-height:1.15;text-wrap:balance}
#studyOverlay.practice-live-mode .duel-options{grid-template-columns:1fr;gap:clamp(9px,1.35vh,14px)}
/* Duel options in LIVE mode used to be near-transparent white on the dark
   backdrop, which read as a stack of greyed-out buttons. Give them a solid
   premium gradient so each option is legibly punchy on stream. */
#studyOverlay.practice-live-mode .duel-options button{min-height:clamp(58px,7.6vh,78px);padding:10px 15px;border:1px solid rgba(255,255,255,.28);border-radius:18px;background:linear-gradient(135deg,#7d45ea 0%,#b542dd 55%,#ff6b9a 100%);color:#fff;font-size:clamp(17px,2.2vh,23px);font-weight:900;letter-spacing:.01em;box-shadow:0 12px 28px rgba(89,32,181,.42),inset 0 1px 0 rgba(255,255,255,.22);text-shadow:0 1px 2px rgba(0,0,0,.35)}
#studyOverlay.practice-live-mode .duel-options button:hover{border-color:#ffe6ff;background:linear-gradient(135deg,#9256ff 0%,#d356ff 55%,#ff7fac 100%);transform:translateY(-2px);box-shadow:0 16px 34px rgba(89,32,181,.55),inset 0 1px 0 rgba(255,255,255,.32)}
#studyOverlay.practice-live-mode .duel-options button span{flex-basis:clamp(38px,5vh,50px);height:clamp(38px,5vh,50px);border-radius:13px;background:rgba(255,255,255,.28);color:#fff;font-size:clamp(16px,2.2vh,22px);font-weight:950;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),0 5px 15px rgba(0,0,0,.18)}
#studyOverlay.practice-live-mode .duel-options button.correct{border-color:#28d39f;background:linear-gradient(135deg,#0f9866 0%,#14b884 55%,#28d39f 100%);box-shadow:0 14px 32px rgba(20,152,112,.55),inset 0 1px 0 rgba(255,255,255,.28)}
#studyOverlay.practice-live-mode .duel-options button.wrong{border-color:#ff6d79;background:linear-gradient(135deg,#ab1f34 0%,#e33750 55%,#ff6d79 100%);box-shadow:0 14px 32px rgba(190,48,67,.55),inset 0 1px 0 rgba(255,255,255,.24)}
#studyOverlay.practice-live-mode .inline-answer{margin-top:12px;padding:12px;border:1px solid rgba(255,255,255,.15);background:rgba(10,10,18,.72);color:#fff}
#studyOverlay.practice-live-mode .inline-answer p{color:#dcd1e6}
#studyOverlay.practice-live-mode .inline-answer .btn{min-height:44px;background:linear-gradient(100deg,#7b3fe1,#cf3bd8);color:#fff}
#studyOverlay.practice-live-mode .duel-result{min-height:85vh;align-content:center;color:#fff}
#studyOverlay.practice-live-mode .duel-result p{color:#d3c6de}
#studyOverlay.practice-live-mode .duel-final-score{background:rgba(255,255,255,.1)}
#studyOverlay.practice-live-mode .duel-final-score b{background:rgba(255,255,255,.1);color:#fff}

@media(max-height:760px){#studyOverlay.practice-live-mode .duel-live-audience{display:none}#studyOverlay.practice-live-mode .duel-live-masthead{margin-bottom:10px;padding-bottom:10px}#studyOverlay.practice-live-mode .duel-question{padding-block:18px}#studyOverlay.practice-live-mode .duel-options button{min-height:54px}}

#studyOverlay.practice-live-mode .duel-live-masthead small,#studyOverlay.practice-live-mode .duel-live-masthead strong,#studyOverlay.practice-live-mode .duel-live-bank{letter-spacing:0}
#studyOverlay.practice-live-mode .duel-live-bank{display:block;margin-top:3px;color:#72d8f5;font-size:11px;font-style:normal;font-weight:950}
#studyOverlay.practice-live-mode #duelAnswerFeedback{flex:0 0 auto}
#studyOverlay.practice-live-mode .inline-answer b{font-size:16px}
#studyOverlay.practice-live-mode .inline-answer p{margin:5px 0 8px}
#studyOverlay.practice-live-mode .duel-question h2{overflow-wrap:anywhere}
#studyOverlay.practice-live-mode .practice-workspace:has(#duelAnswerFeedback .inline-answer) .duel-live-audience{display:none}
#studyOverlay.practice-live-mode .practice-workspace:has(#duelAnswerFeedback .inline-answer) .duel-live-masthead{margin-bottom:8px;padding-bottom:8px}
#studyOverlay.practice-live-mode .practice-workspace:has(#duelAnswerFeedback .inline-answer) .duel-match-head{margin-bottom:8px}
#studyOverlay.practice-live-mode .practice-workspace:has(#duelAnswerFeedback .inline-answer) .duel-question{margin-bottom:8px;padding-block:14px}
#studyOverlay.practice-live-mode .practice-workspace:has(#duelAnswerFeedback .inline-answer) .duel-options{gap:7px}
#studyOverlay.practice-live-mode .practice-workspace:has(#duelAnswerFeedback .inline-answer) .duel-options button{min-height:52px}
#studyOverlay.practice-live-mode .practice-workspace:has(#duelAnswerFeedback .inline-answer) .inline-answer{margin-top:8px;padding:10px 12px}
#studyOverlay.practice-live-mode .practice-workspace:has(#duelAnswerFeedback .inline-answer) .inline-answer .btn{min-height:38px;padding:7px 15px}

@media(max-height:1100px){
  #studyOverlay.practice-live-mode .overlay-body{padding:12px clamp(16px,3vw,34px) 14px}
  #studyOverlay.practice-live-mode .practice-session-line{margin-bottom:8px}
  #studyOverlay.practice-live-mode .duel-live-masthead{margin-bottom:9px;padding-bottom:9px}
  #studyOverlay.practice-live-mode .duel-live-audience{margin-bottom:9px;font-size:14px}
  #studyOverlay.practice-live-mode .duel-match-head{margin-bottom:9px;padding:11px;border-radius:18px}
  #studyOverlay.practice-live-mode .duel-match-head b{font-size:34px}
  #studyOverlay.practice-live-mode .duel-avatar{width:54px;height:54px;border-radius:16px}
  #studyOverlay.practice-live-mode .duel-question{margin-bottom:9px;padding:16px 14px;border-radius:20px}
  #studyOverlay.practice-live-mode .duel-question h2{margin-top:7px;font-size:31px;line-height:1.1}
  #studyOverlay.practice-live-mode .duel-options{gap:8px}
  #studyOverlay.practice-live-mode .duel-options button{min-height:56px;padding:8px 15px}
  #studyOverlay.practice-live-mode .duel-options button span{flex-basis:44px;height:44px}
  #studyOverlay.practice-live-mode .inline-answer{margin-top:8px;padding:10px 12px}
  #studyOverlay.practice-live-mode .inline-answer .btn{min-height:38px;padding:7px 15px}
}

.vocab-hub-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.vocab-hub-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.vocab-hub-stats{grid-template-columns:1fr}}
#studyOverlay.practice-live-mode .practice-coach{display:none!important}
#studyOverlay.practice-live-mode .duel-result{position:relative;min-height:72vh;padding:clamp(24px,4vh,44px) 16px;align-content:center;border:1px solid rgba(255,255,255,.12);border-radius:30px;background:radial-gradient(circle at 50% 18%,rgba(165,73,229,.24),transparent 30%),linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03));box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 46px rgba(0,0,0,.22)}
#studyOverlay.practice-live-mode .duel-result>span{display:grid;place-items:center;width:94px;height:94px;border-radius:31px;background:linear-gradient(145deg,#ffd76b,#8a46ef);font-size:52px;box-shadow:0 18px 44px rgba(125,70,230,.35)}
#studyOverlay.practice-live-mode .duel-result>small{color:#bd7dff;font-size:13px}
#studyOverlay.practice-live-mode .duel-result h2{font-size:clamp(34px,5vh,52px);letter-spacing:-.04em}
#studyOverlay.practice-live-mode .duel-final-score{width:min(420px,100%);padding:18px;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(255,255,255,.1)}
#studyOverlay.practice-live-mode .duel-final-score b{padding:16px;border-radius:16px;background:rgba(255,255,255,.12);font-size:42px}
#studyOverlay.practice-live-mode .duel-result>strong{color:#9d54ff;font-size:30px;text-shadow:0 0 24px rgba(157,84,255,.35)}
.duel-search-card{position:relative;overflow:hidden;min-height:min(620px,70vh);align-content:center;gap:16px;padding:clamp(30px,5vw,58px);border:1px solid rgba(123,64,216,.2);border-radius:30px;background:radial-gradient(circle at 20% 16%,rgba(122,64,216,.18),transparent 34%),radial-gradient(circle at 84% 82%,rgba(32,184,218,.14),transparent 36%),linear-gradient(145deg,#fff,#fbf8ff 50%,#eef9ff);box-shadow:0 22px 60px rgba(50,28,88,.1)}
.duel-search-card:before{content:"";position:absolute;inset:18px;border:1px solid rgba(123,64,216,.08);border-radius:24px;pointer-events:none}
.duel-search-card>small{position:relative;color:#7b43db}
.duel-search-card h2{position:relative;margin:0;font-size:clamp(34px,4vw,54px);line-height:1;letter-spacing:-.04em}
.duel-search-card p{position:relative;max-width:640px;margin:0 auto;color:#6b6079;font-size:clamp(15px,1.3vw,18px);font-weight:750;line-height:1.45}
.duel-search-orbit{position:relative;width:120px;height:120px;display:grid;place-items:center;margin:0 auto 2px;border-radius:38px;background:linear-gradient(145deg,#7440e5,#bd42db);color:#fff;box-shadow:0 18px 42px rgba(115,64,216,.28)}
.duel-search-orbit span{font-size:56px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.2))}
.duel-search-orbit i{position:absolute;width:12px;height:12px;border-radius:50%;background:#28c8e9;box-shadow:0 0 0 8px rgba(40,200,233,.12)}
.duel-search-orbit i:nth-child(2){top:12px;right:20px;background:#ffd76b}
.duel-search-orbit i:nth-child(3){left:13px;bottom:27px;background:#26d69a}
.duel-search-orbit i:nth-child(4){right:15px;bottom:18px;background:#ff5b78}
.duel-search-stats{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(620px,100%);margin:2px auto}
.duel-search-stats span{display:grid;gap:4px;padding:14px;border:1px solid rgba(123,64,216,.12);border-radius:18px;background:rgba(255,255,255,.82)}
.duel-search-stats b{color:#21182d;font-size:28px;line-height:1}
.duel-search-stats small{color:#7b6a91;font-size:11px;font-weight:900}
.duel-search-score{position:relative;width:min(560px,100%);padding:14px;border:0;background:linear-gradient(100deg,#f0e9ff,#f5f9ff)}
.duel-search-score b{font-size:24px;box-shadow:0 10px 24px rgba(50,30,90,.06)}
.duel-search-score span{color:#4e405f;font-weight:950}
.duel-search-status{position:relative;min-height:auto;padding:9px 14px;border-radius:999px;background:#f4efff;color:#6940ca}
.duel-search-flow{position:relative;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.duel-search-flow span{padding:8px 11px;border:1px solid rgba(123,64,216,.12);border-radius:999px;background:#fff;color:#665b74;font-size:12px;font-weight:850}
.duel-search-card .btn.primary{position:relative;min-width:min(330px,100%);min-height:54px;border-radius:17px;background:linear-gradient(100deg,#7040d8,#ce3bd8);font-size:16px;box-shadow:0 14px 32px rgba(115,64,216,.24)}
@media(max-width:640px){.duel-search-card{min-height:0;padding:24px 16px}.duel-search-orbit{width:94px;height:94px;border-radius:30px}.duel-search-orbit span{font-size:44px}.duel-search-stats{grid-template-columns:1fr}.duel-search-flow{display:grid}.duel-search-flow span{text-align:center}}
.duel-search-orbit{animation:duelSearchFloat 3.8s ease-in-out infinite}
.duel-search-orbit i{animation:duelSearchDot 1.8s ease-in-out infinite}
.duel-search-orbit i:nth-child(3){animation-delay:.22s}
.duel-search-orbit i:nth-child(4){animation-delay:.44s}
.duel-search-card h2,.duel-search-card p,.duel-search-stats,.duel-search-score,.duel-search-status,.duel-search-flow,.duel-search-card .btn.primary{animation:duelSearchRise .55s ease both}
.duel-search-card p{animation-delay:.06s}
.duel-search-stats{animation-delay:.12s}
.duel-search-score{animation:duelSearchRise .55s ease .18s both,duelScoreGlow 2.4s ease-in-out 1s infinite}
.duel-search-status{animation-delay:.24s}
.duel-search-flow{animation-delay:.3s}
.duel-search-card .btn.primary{overflow:hidden;animation-delay:.36s}
.duel-search-card .btn.primary:after{content:"";position:absolute;inset:-40% auto -40% -30%;width:28%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.44),transparent);animation:duelButtonShine 2.8s ease-in-out infinite}
@keyframes duelSearchFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1.5deg)}}
@keyframes duelSearchDot{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.45);opacity:.62}}
@keyframes duelSearchRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes duelScoreGlow{0%,100%{box-shadow:0 10px 26px rgba(115,64,216,.06)}50%{box-shadow:0 18px 44px rgba(115,64,216,.18)}}
@keyframes duelButtonShine{0%,58%{left:-35%}100%{left:120%}}
@media(prefers-reduced-motion:reduce){.duel-search-orbit,.duel-search-orbit i,.duel-search-card h2,.duel-search-card p,.duel-search-stats,.duel-search-score,.duel-search-status,.duel-search-flow,.duel-search-card .btn.primary,.duel-search-card .btn.primary:after{animation:none!important}}
.practice-quick-start{grid-template-columns:repeat(4,minmax(0,1fr))}
.practice-quick-card[data-study="duel"]{position:relative;overflow:hidden;background:linear-gradient(145deg,#6f37df,#c43ade);color:#fff;box-shadow:0 18px 42px rgba(112,64,216,.22)}
.practice-quick-card[data-study="duel"]:after{content:"LIVE";position:absolute;right:13px;top:13px;padding:6px 9px;border-radius:999px;background:#ef245b;color:#fff;font-size:10px;font-weight:950;letter-spacing:.08em}
.practice-quick-card[data-study="duel"] span{background:rgba(255,255,255,.18);color:#fff;animation:studentDuelPulse 1.8s ease-in-out infinite}
.practice-quick-card[data-study="duel"] b{color:#fff}
.mph-exercise-card[data-mobile-card="duel"]{overflow:hidden;border:1.5px solid rgba(239,36,91,.24);background:radial-gradient(circle at 92% 20%,rgba(239,36,91,.18),transparent 30%),linear-gradient(145deg,#fff,#f8f1ff 62%,#eefaff);box-shadow:0 16px 38px rgba(112,64,216,.12)}
.mph-exercise-card[data-mobile-card="duel"] .mph-exercise-icon{background:linear-gradient(145deg,#7440e5,#d33bd9);color:#fff;animation:studentDuelPulse 1.8s ease-in-out infinite}
.mph-exercise-card[data-mobile-card="duel"] .mph-exercise-copy h3{color:#2a1638}
.mph-exercise-card[data-mobile-card="duel"] .mph-exercise-copy strong{color:#d72661}
.mph-exercise-card[data-mobile-card="duel"] .mph-exercise-action{background:linear-gradient(100deg,#7040d8,#ef245b);box-shadow:0 12px 28px rgba(239,36,91,.18)}
@keyframes studentDuelPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(239,36,91,.28)}50%{transform:scale(1.04);box-shadow:0 0 0 10px rgba(239,36,91,0)}}
@media(max-width:980px){.practice-quick-start{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.practice-quick-start{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.practice-quick-card[data-study="duel"] span,.mph-exercise-card[data-mobile-card="duel"] .mph-exercise-icon{animation:none!important}}

/* Compact Duel lobby: fits the teacher/student screen before going LIVE. */
#studyOverlay[data-practice-tool=duel] .overlay-body{padding:18px 24px 24px}
#studyOverlay[data-practice-tool=duel] .practice-stage-intro,#studyOverlay[data-practice-tool=duel] .practice-gamebar{display:none}
#studyOverlay[data-practice-tool=duel] .practice-session-line{margin:0 2px 12px}
#studyOverlay[data-practice-tool=duel] .practice-language-row{margin-bottom:12px}
#studyOverlay[data-practice-tool=duel] #studyLang{width:min(240px,100%)!important;margin:0;min-height:42px;padding-block:9px}
#studyOverlay[data-practice-tool=duel] .practice-workspace{min-height:0;padding:16px;border-radius:24px;background:rgba(255,255,255,.72);box-shadow:0 14px 36px rgba(50,29,82,.07)}
#studyOverlay[data-practice-tool=duel] .duel-search-card{min-height:0;gap:10px;padding:22px clamp(20px,3.5vw,38px);border-radius:24px;box-shadow:0 16px 42px rgba(50,28,88,.09)}
#studyOverlay[data-practice-tool=duel] .duel-search-card:before{inset:12px;border-radius:20px}
#studyOverlay[data-practice-tool=duel] .duel-search-orbit{width:84px;height:84px;margin-bottom:0;border-radius:27px;box-shadow:0 14px 32px rgba(115,64,216,.24)}
#studyOverlay[data-practice-tool=duel] .duel-search-orbit span{font-size:38px}
#studyOverlay[data-practice-tool=duel] .duel-search-orbit i{width:10px;height:10px;box-shadow:0 0 0 6px rgba(40,200,233,.1)}
#studyOverlay[data-practice-tool=duel] .duel-search-card h2{font-size:clamp(30px,3.1vw,42px);letter-spacing:-.035em}
#studyOverlay[data-practice-tool=duel] .duel-search-card p{max-width:560px;font-size:14px;line-height:1.35}
#studyOverlay[data-practice-tool=duel] .duel-search-stats{width:min(520px,100%);gap:8px;margin:0 auto}
#studyOverlay[data-practice-tool=duel] .duel-search-stats span{padding:10px 12px;border-radius:15px}
#studyOverlay[data-practice-tool=duel] .duel-search-stats b{font-size:24px}
#studyOverlay[data-practice-tool=duel] .duel-search-stats small{font-size:10px}
#studyOverlay[data-practice-tool=duel] .duel-search-score{width:min(460px,100%);padding:10px;border-radius:16px}
#studyOverlay[data-practice-tool=duel] .duel-search-score b{padding:10px;font-size:22px}
#studyOverlay[data-practice-tool=duel] .duel-search-status{padding:7px 12px;font-size:12px}
#studyOverlay[data-practice-tool=duel] .duel-search-flow{gap:6px}
#studyOverlay[data-practice-tool=duel] .duel-search-flow span{padding:6px 9px;font-size:11px}
#studyOverlay[data-practice-tool=duel] .duel-search-card .btn.primary{min-width:min(300px,100%);min-height:48px;border-radius:15px;font-size:15px}
@media(max-height:760px){
  #studyOverlay[data-practice-tool=duel] .overlay-body{padding:14px 20px 18px}
  #studyOverlay[data-practice-tool=duel] .practice-session-line{margin-bottom:9px}
  #studyOverlay[data-practice-tool=duel] .practice-language-row{margin-bottom:9px}
  #studyOverlay[data-practice-tool=duel] .practice-workspace{padding:12px}
  #studyOverlay[data-practice-tool=duel] .duel-search-card{gap:8px;padding:18px 20px}
  #studyOverlay[data-practice-tool=duel] .duel-search-orbit{width:72px;height:72px;border-radius:23px}
  #studyOverlay[data-practice-tool=duel] .duel-search-orbit span{font-size:32px}
  #studyOverlay[data-practice-tool=duel] .duel-search-card h2{font-size:clamp(27px,3vw,36px)}
  #studyOverlay[data-practice-tool=duel] .duel-search-stats span{padding:8px 10px}
}

.duel-teacher-panel{position:relative;width:min(820px,100%);padding:14px;border:1px solid rgba(123,64,216,.14);border-radius:21px;background:rgba(255,255,255,.78);box-shadow:0 14px 34px rgba(56,32,94,.08);text-align:left}
.duel-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}
.duel-panel-head small{display:block;color:#7040d8;font-size:9px;font-weight:950;letter-spacing:.13em}
.duel-panel-head b{font-size:15px}.duel-panel-head>strong{padding:9px 12px;border-radius:13px;background:#171020;color:#fff;font-size:16px;letter-spacing:.04em}
.duel-control-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px}
/* Author display:flex was silently beating the browser's [hidden]{display:none}
   default, so the "Pack" row stayed visible under Bank/AI source and misled
   the teacher with a "No MCQ packs yet" line that did not belong there. */
.duel-control-row[hidden]{display:none!important}
.duel-control-row>span{min-width:46px;color:#72657f;font-size:11px;font-weight:950;text-transform:uppercase}
.duel-control-row button{min-height:30px;padding:0 10px;border:1px solid #e4d9f4;border-radius:999px;background:#fff;color:#5d526c;font-size:11px;font-weight:900;cursor:pointer}
.duel-control-row button.active{border-color:#7040d8;background:linear-gradient(100deg,#7040d8,#c53ada);color:#fff;box-shadow:0 7px 17px rgba(112,64,216,.18)}
.duel-join-strip{position:relative;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;width:min(760px,100%);margin:0 auto}
.duel-join-strip span{padding:8px 11px;border:1px solid rgba(123,64,216,.12);border-radius:999px;background:#fff;color:#5f536e;font-size:12px;font-weight:850}.duel-join-strip b{color:#171020}
#studyOverlay[data-practice-tool=duel] .duel-search-stats{grid-template-columns:repeat(4,minmax(0,1fr));width:min(720px,100%)}
.duel-teacher-live-panel{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:10px;border:1px solid #eadff6;border-radius:18px;background:linear-gradient(100deg,#fff,#f8f2ff);box-shadow:0 10px 24px rgba(55,30,92,.07)}
.duel-teacher-live-panel>div{display:grid;gap:1px;text-align:left}.duel-teacher-live-panel small{color:#7040d8;font-size:9px;font-weight:950;letter-spacing:.1em}.duel-teacher-live-panel b{font-size:13px}.duel-teacher-live-panel>span{flex:1;color:#655970;font-size:12px;font-weight:850;text-align:center}.duel-teacher-live-panel strong{color:#7040d8}
.duel-teacher-live-panel button,.duel-poll-actions button{min-height:32px;padding:0 10px;border:1px solid #e0d4f1;border-radius:999px;background:#fff;color:#614c86;font-size:11px;font-weight:950;cursor:pointer}.duel-teacher-live-panel button.active{background:#261735;color:#fff}
.duel-chat-poll{margin:0 0 11px;padding:12px;border:1px solid #e9dff5;border-radius:18px;background:linear-gradient(135deg,#fff,#f8f4ff)}
.duel-poll-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}.duel-poll-head small{display:block;color:#7040d8;font-size:9px;font-weight:950;letter-spacing:.12em}.duel-poll-head b{font-size:13px}.duel-poll-head strong{padding:6px 9px;border-radius:999px;background:#eee7ff;color:#7040d8}
.duel-poll-bars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.duel-poll-bars button{display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;min-height:34px;padding:6px 8px;border:1px solid #e2d6f0;border-radius:12px;background:#fff;color:#31243e;cursor:pointer}.duel-poll-bars span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#8b42e8;color:#fff;font-weight:950}.duel-poll-bars i{height:7px;overflow:hidden;border-radius:999px;background:#eee7f7}.duel-poll-bars em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7040d8,#26caee);transition:width .18s}.duel-poll-bars strong{font-size:11px}.duel-poll-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:8px}
.duel-result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;width:min(500px,100%)}.duel-result-stats span{display:grid;gap:2px;padding:12px;border-radius:16px;background:#f5efff;color:#776b82}.duel-result-stats b{color:#7040d8;font-size:23px}.duel-result-stats small{font-size:10px;font-weight:900;text-transform:uppercase}.duel-follow-card{display:grid;gap:5px;width:min(520px,100%);padding:15px 17px;border-radius:18px;background:linear-gradient(100deg,#171020,#35204d);color:#fff;box-shadow:0 14px 34px rgba(30,16,50,.2)}.duel-follow-card span{color:#e7ddf4;font-weight:850}
#studyOverlay.practice-live-mode .duel-teacher-live-panel{margin-bottom:8px;padding:8px;border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.07);color:#fff;box-shadow:none;backdrop-filter:blur(10px)}
#studyOverlay.practice-live-mode .duel-teacher-live-panel small{color:#d9adff}#studyOverlay.practice-live-mode .duel-teacher-live-panel b,#studyOverlay.practice-live-mode .duel-teacher-live-panel span,#studyOverlay.practice-live-mode .duel-teacher-live-panel strong{color:#fff}
#studyOverlay.practice-live-mode .duel-teacher-live-panel button{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.1);color:#fff}
#studyOverlay.practice-live-mode .duel-chat-poll{margin-bottom:8px;padding:9px;border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.07);color:#fff}
#studyOverlay.practice-live-mode .duel-poll-head{margin-bottom:7px}#studyOverlay.practice-live-mode .duel-poll-head small{color:#d0a3ff}#studyOverlay.practice-live-mode .duel-poll-head b,#studyOverlay.practice-live-mode .duel-poll-head strong{color:#fff}#studyOverlay.practice-live-mode .duel-poll-head strong{background:rgba(255,255,255,.11)}
#studyOverlay.practice-live-mode .duel-poll-bars button{min-height:30px;border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.07);color:#fff}#studyOverlay.practice-live-mode .duel-poll-bars span{width:22px;height:22px;background:linear-gradient(145deg,#7d45ea,#c83bdc)}#studyOverlay.practice-live-mode .duel-poll-bars i{background:rgba(255,255,255,.14)}
#studyOverlay.practice-live-mode .duel-poll-actions button{min-height:28px;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.09);color:#fff}
#studyOverlay.practice-live-mode .duel-result-stats span{background:rgba(255,255,255,.1);color:#d8cae8}#studyOverlay.practice-live-mode .duel-result-stats b{color:#fff}#studyOverlay.practice-live-mode .duel-follow-card{background:linear-gradient(100deg,rgba(255,255,255,.12),rgba(134,70,230,.18));border:1px solid rgba(255,255,255,.12)}
@media(max-height:760px){#studyOverlay.practice-live-mode .duel-teacher-live-panel{display:grid;grid-template-columns:1fr auto auto auto}#studyOverlay.practice-live-mode .duel-teacher-live-panel>span{display:none}#studyOverlay.practice-live-mode .duel-poll-actions{display:none}#studyOverlay.practice-live-mode .duel-chat-poll{padding:7px}#studyOverlay.practice-live-mode .duel-poll-head{display:none}#studyOverlay.practice-live-mode .duel-poll-bars{gap:5px}#studyOverlay.practice-live-mode .duel-poll-bars button{grid-template-columns:auto 1fr;gap:5px}#studyOverlay.practice-live-mode .duel-poll-bars strong{display:none}}
@media(max-width:640px){#studyOverlay[data-practice-tool=duel] .duel-search-stats,.duel-poll-bars,.duel-result-stats{grid-template-columns:1fr}.duel-panel-head,.duel-teacher-live-panel{align-items:flex-start;flex-direction:column}.duel-teacher-live-panel>span{text-align:left}.duel-control-row>span{width:100%}}

/* Duel lobby polish: no duplicate progress bar, tighter first screen. */
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .overlay-body{padding:12px 20px 20px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .practice-session-line{display:none}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .practice-language-row{align-items:center;margin:0 0 10px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .practice-language-row:before{content:"LANGUAGE";margin-right:10px;color:#7b5fad;font-size:10px;font-weight:950;letter-spacing:.12em}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) #studyLang{width:220px!important;min-height:38px;padding:8px 36px 8px 12px;border-radius:13px;font-size:14px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .practice-workspace{padding:12px;border-radius:22px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-card{gap:8px;padding:18px clamp(18px,3vw,30px);border-radius:22px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-card:before{inset:10px;border-radius:18px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-orbit{width:70px;height:70px;border-radius:22px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-orbit span{font-size:31px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-card>small{font-size:11px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-card h2{font-size:clamp(30px,3vw,40px)}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-card p{max-width:590px;font-size:13px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-panel{padding:12px;border-radius:18px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-panel-head{margin-bottom:8px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-control-row{margin-top:6px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-control-row button{min-height:28px;padding:0 9px;font-size:10.5px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-stats span{padding:8px 10px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-stats b{font-size:22px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-score,#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-search-flow{display:none}

/* Teacher LIVE lobby: two-column compact board, no giant orbit / empty QR slot. */
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode).practice-immersive .overlay-card{height:auto;max-height:min(860px,calc(100vh - 36px))!important}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .practice-workspace{padding:0;border:0;background:transparent;box-shadow:none}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .overlay-body{padding:10px 16px 14px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(240px,.82fr);
  grid-template-areas:"hero hero" "panel side";
  align-items:start;
  align-content:start;
  justify-items:stretch;
  gap:10px;
  min-height:0;
  padding:12px;
  text-align:left;
}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby:before{display:none}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-lobby-hero{grid-area:hero;display:flex;align-items:center;gap:10px;width:100%}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-lobby-hero-copy{flex:1;min-width:0;text-align:left}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-orbit{width:42px;height:42px;margin:0;border-radius:14px;box-shadow:0 8px 18px rgba(115,64,216,.22);animation:none}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-orbit span{font-size:20px;filter:none}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-orbit i{display:none}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-hero small{display:block;margin:0;font-size:9px;font-weight:950;letter-spacing:.12em}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-hero h2{margin:2px 0 0;font-size:18px;line-height:1.15;letter-spacing:-.02em}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby>p,
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-flow,
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-join-strip{display:none}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-teacher-panel{grid-area:panel;width:100%;padding:18px;border-radius:20px;box-shadow:none}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-panel-head{margin-bottom:10px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-panel-head small{font-size:12px;letter-spacing:.16em}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-panel-head b{font-size:20px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-control-row{margin-top:12px;gap:10px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-control-row>span{min-width:80px;font-size:12px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-control-row button{min-height:38px;padding:0 16px;font-size:14px;border-radius:999px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-pack-select{min-height:30px;min-width:min(220px,100%);font-size:12px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-lobby-side{grid-area:side;display:grid;gap:8px;align-content:start;width:100%}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-share{grid-template-columns:88px minmax(0,1fr);gap:8px;margin:0;padding:8px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-share img{width:88px;height:88px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-share:has(img[hidden]){grid-template-columns:1fr}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-share img[hidden]{display:none}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-url{font-size:12px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-share-actions{margin-top:6px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:6px;margin:0}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-stats span{padding:6px 8px;border-radius:12px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-stats b{font-size:16px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-stats small{font-size:9px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-roster{width:100%;margin:0}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-roster-empty{padding:8px;font-size:11px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-status{min-height:0;padding:6px 10px;font-size:11px;justify-self:stretch}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .btn.primary{min-width:0;width:100%;min-height:44px;margin:0;font-size:14px;border-radius:14px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-code-chip strong{padding:7px 10px;font-size:14px}
#studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-copy-btn{min-height:28px;padding:0 10px}
@media(max-width:860px){
  #studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby{grid-template-columns:1fr;grid-template-areas:"hero" "panel" "side";padding:10px;gap:8px}
  #studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-lobby-hero{flex-wrap:wrap}
  #studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-code-chip{margin-left:auto}
}
@media(max-width:640px){
  #studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-lobby-share{grid-template-columns:1fr}
  #studyOverlay[data-practice-tool=duel]:not(.practice-live-mode) .duel-teacher-lobby .duel-search-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* LIVE Duel fit: remove duplicate progress and keep all answers inside 9:16. */
#studyOverlay.practice-live-mode .practice-session-line{display:none!important}
#studyOverlay.practice-live-mode .overlay-body{padding:10px 17px 14px}
#studyOverlay.practice-live-mode .duel-live-masthead{margin-bottom:8px;padding-bottom:8px}
#studyOverlay.practice-live-mode .duel-live-masthead small{font-size:12px}
#studyOverlay.practice-live-mode .duel-live-masthead strong{font-size:20px}
#studyOverlay.practice-live-mode .duel-live-masthead>span{padding:7px 11px}
#studyOverlay.practice-live-mode .duel-live-bank{font-size:10px}
#studyOverlay.practice-live-mode .duel-teacher-live-panel{margin-bottom:7px;padding:7px;border-radius:15px}
#studyOverlay.practice-live-mode .duel-teacher-live-panel b{font-size:12px}
#studyOverlay.practice-live-mode .duel-teacher-live-panel>span{font-size:11px}
#studyOverlay.practice-live-mode .duel-teacher-live-panel button{min-height:30px;padding:0 9px;font-size:10px}
#studyOverlay.practice-live-mode .duel-live-audience{margin-bottom:7px;font-size:13px}
#studyOverlay.practice-live-mode .duel-match-head{margin-bottom:8px;padding:9px;border-radius:17px}
#studyOverlay.practice-live-mode .duel-match-head b{font-size:30px}
#studyOverlay.practice-live-mode .duel-avatar{width:50px;height:50px;border-radius:15px}
#studyOverlay.practice-live-mode .duel-question{margin-bottom:8px;padding:14px 13px;border-radius:18px}
#studyOverlay.practice-live-mode .duel-question small{font-size:10px}
#studyOverlay.practice-live-mode .duel-question h2{margin-top:6px;font-size:29px;line-height:1.06}
#studyOverlay.practice-live-mode .duel-chat-poll{margin-bottom:8px;padding:8px;border-radius:16px}
#studyOverlay.practice-live-mode .duel-poll-head{margin-bottom:6px}
#studyOverlay.practice-live-mode .duel-poll-head b{font-size:12px}
#studyOverlay.practice-live-mode .duel-poll-bars{gap:5px}
#studyOverlay.practice-live-mode .duel-poll-bars button{min-height:28px;padding:4px 6px;border-radius:10px}
#studyOverlay.practice-live-mode .duel-poll-bars span{width:22px;height:22px;border-radius:7px}
#studyOverlay.practice-live-mode .duel-poll-actions{margin-top:6px}
#studyOverlay.practice-live-mode .duel-poll-actions button{min-height:26px;font-size:10px}
#studyOverlay.practice-live-mode .duel-options{gap:7px}
#studyOverlay.practice-live-mode .duel-options button{min-height:48px;padding:7px 12px;border-radius:15px;font-size:18px}
#studyOverlay.practice-live-mode .duel-options button span{flex-basis:38px;height:38px;border-radius:12px}
@media(max-height:900px){#studyOverlay.practice-live-mode .duel-live-audience{display:none}#studyOverlay.practice-live-mode .duel-chat-poll{padding:7px}#studyOverlay.practice-live-mode .duel-question h2{font-size:27px}#studyOverlay.practice-live-mode .duel-options button{min-height:45px}}
@media(max-height:760px){#studyOverlay.practice-live-mode .duel-teacher-live-panel button[data-duel-teacher-action=answer]{display:none}#studyOverlay.practice-live-mode .duel-chat-poll{display:none}#studyOverlay.practice-live-mode .duel-options button{min-height:43px}}

/* LIVE Duel contrast polish: darker canvas, clearer cards, less washed-out capture. */
#studyOverlay.practice-live-mode .overlay-card{background:radial-gradient(circle at 18% 4%,rgba(142,70,255,.42),transparent 35%),radial-gradient(circle at 92% 78%,rgba(24,202,245,.26),transparent 34%),linear-gradient(180deg,#080610 0%,#120d22 50%,#06131f 100%)!important;box-shadow:0 0 100px rgba(0,0,0,.74)!important}
#studyOverlay.practice-live-mode .overlay-card:before{border-color:rgba(255,214,128,.46);box-shadow:inset 0 0 34px rgba(145,76,255,.28)}
#studyOverlay.practice-live-mode .duel-live-masthead{border-bottom-color:rgba(255,255,255,.18)}
#studyOverlay.practice-live-mode .duel-live-masthead small{color:#ffd36a;text-shadow:0 0 18px rgba(255,185,62,.2)}
#studyOverlay.practice-live-mode .duel-live-bank{color:#38d9ff;text-shadow:0 0 18px rgba(56,217,255,.24)}
#studyOverlay.practice-live-mode .duel-teacher-live-panel,#studyOverlay.practice-live-mode .duel-chat-poll,#studyOverlay.practice-live-mode .duel-question{border-color:rgba(255,255,255,.2);background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(255,255,255,.055));box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 10px 28px rgba(0,0,0,.2)}
#studyOverlay.practice-live-mode .duel-match-head{border-color:rgba(164,104,255,.38);background:linear-gradient(105deg,rgba(130,62,221,.48),rgba(21,30,51,.7),rgba(28,196,238,.24));box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 12px 28px rgba(0,0,0,.24)}
#studyOverlay.practice-live-mode .duel-question{background:linear-gradient(135deg,rgba(127,67,230,.25),rgba(255,255,255,.08));backdrop-filter:blur(8px)}
#studyOverlay.practice-live-mode .duel-question h2{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.34)}
#studyOverlay.practice-live-mode .duel-poll-actions{display:none}
#studyOverlay.practice-live-mode .duel-poll-bars button{border-color:rgba(255,255,255,.16);background:rgba(9,8,20,.34)}
#studyOverlay.practice-live-mode .duel-poll-bars i{background:rgba(255,255,255,.13)}
/* Duvela LIVE arena style: solid deep-purple pill + solid violet A/B/C/D
   badge. Solid (not translucent) so the option never picks up the page
   colour through it and reads grey. */
#studyOverlay.practice-live-mode .duel-options button,
#studyOverlay.practice-live-mode .duel-options button:nth-child(1),
#studyOverlay.practice-live-mode .duel-options button:nth-child(2),
#studyOverlay.practice-live-mode .duel-options button:nth-child(3),
#studyOverlay.practice-live-mode .duel-options button:nth-child(4){
  border:1px solid rgba(197,99,234,.28);
  border-radius:20px;
  background:linear-gradient(135deg,#1a1636 0%,#251b46 55%,#2b1e4c 100%);
  color:#fff;
  font-weight:900;
  text-shadow:none;
  box-shadow:0 14px 32px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.06);
}
#studyOverlay.practice-live-mode .duel-options button:hover{
  border-color:rgba(197,99,234,.7);
  background:linear-gradient(135deg,#231b45 0%,#2f2358 55%,#3a2564 100%);
  transform:translateY(-1px);
  box-shadow:0 18px 40px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.1);
}
#studyOverlay.practice-live-mode .duel-options button span{
  flex-basis:clamp(40px,5.4vh,54px);
  height:clamp(40px,5.4vh,54px);
  border-radius:16px;
  background:linear-gradient(145deg,#7d45ea 0%,#b542dd 100%);
  color:#fff;
  font-weight:950;
  font-size:clamp(17px,2.3vh,23px);
  box-shadow:0 8px 20px rgba(129,55,232,.65),inset 0 1px 0 rgba(255,255,255,.28);
}
#studyOverlay.practice-live-mode .duel-options button span{box-shadow:0 8px 22px rgba(134,62,231,.42)}

/* Match the LIVE game light exactly to the teacher duel preview card. */
#studyOverlay.practice-live-mode .overlay-card{
  background:
    radial-gradient(circle at 16% 12%, rgba(133, 64, 236, .42), transparent 34%),
    radial-gradient(circle at 90% 70%, rgba(30, 190, 220, .28), transparent 34%),
    linear-gradient(145deg, #120822 0%, #161024 46%, #071923 100%)!important;
}
#studyOverlay.practice-live-mode .overlay-card:before{
  border-color:rgba(136,102,230,.28);
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:44px 44px;
  box-shadow:none;
  mask-image:linear-gradient(135deg,#000,transparent 72%);
}
#studyOverlay.practice-live-mode .duel-live-masthead small{color:#f8d778;letter-spacing:.22em;text-shadow:none}
#studyOverlay.practice-live-mode .duel-live-bank{color:#38d9ff;text-shadow:none}
#studyOverlay.practice-live-mode .duel-live-masthead>span{background:#df2455;box-shadow:0 0 22px rgba(223,36,85,.38)}
#studyOverlay.practice-live-mode .duel-teacher-live-panel,
#studyOverlay.practice-live-mode .duel-chat-poll{
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:none;
}
#studyOverlay.practice-live-mode .duel-match-head{
  border:1px solid rgba(210,180,255,.28);
  background:linear-gradient(110deg,rgba(123,64,232,.28),rgba(255,255,255,.08),rgba(23,169,213,.16));
  box-shadow:none;
}
#studyOverlay.practice-live-mode .duel-question{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.1);
  box-shadow:none;
  backdrop-filter:none;
}
#studyOverlay.practice-live-mode .duel-question h2{text-shadow:none}
#studyOverlay.practice-live-mode .duel-poll-bars button{
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.08);
  box-shadow:none;
}
#studyOverlay.practice-live-mode .duel-options button,
#studyOverlay.practice-live-mode .duel-options button:nth-child(1),
#studyOverlay.practice-live-mode .duel-options button:nth-child(2),
#studyOverlay.practice-live-mode .duel-options button:nth-child(3),
#studyOverlay.practice-live-mode .duel-options button:nth-child(4){
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.08);
  box-shadow:none;
}
#studyOverlay.practice-live-mode .duel-options button:hover{
  border-color:rgba(255,255,255,.26);
  background:rgba(255,255,255,.12);
  box-shadow:none;
}
#studyOverlay.practice-live-mode .duel-avatar,
#studyOverlay.practice-live-mode .duel-poll-bars span,
#studyOverlay.practice-live-mode .duel-options button span{
  background:linear-gradient(145deg,#7d45ea,#ba42db);
  box-shadow:none;
}

/* Remove the grey veil in real LIVE capture: do not let bright cyan background
   bleed through the cards. These values keep the same preview lighting but use
   solid glass surfaces for readable TikTok capture. */
#studyOverlay.practice-live-mode .overlay-card{
  background:
    radial-gradient(circle at 16% 12%, rgba(133,64,236,.38), transparent 30%),
    radial-gradient(circle at 90% 70%, rgba(30,190,220,.18), transparent 31%),
    linear-gradient(145deg,#120822 0%,#161024 50%,#071923 100%)!important;
}
#studyOverlay.practice-live-mode .duel-teacher-live-panel,
#studyOverlay.practice-live-mode .duel-chat-poll,
#studyOverlay.practice-live-mode .duel-question{
  border-color:rgba(255,255,255,.16);
  background:linear-gradient(180deg,rgba(45,35,66,.98),rgba(35,31,52,.98));
  color:#fff;
}
#studyOverlay.practice-live-mode .duel-match-head{
  border-color:rgba(210,180,255,.28);
  background:linear-gradient(110deg,rgba(63,38,105,.98),rgba(31,29,50,.98),rgba(20,61,74,.96));
}
#studyOverlay.practice-live-mode .duel-poll-bars button{
  border-color:rgba(255,255,255,.14);
  background:linear-gradient(180deg,rgba(48,43,66,.96),rgba(38,36,54,.96));
}
#studyOverlay.practice-live-mode .duel-options button,
#studyOverlay.practice-live-mode .duel-options button:nth-child(1),
#studyOverlay.practice-live-mode .duel-options button:nth-child(2),
#studyOverlay.practice-live-mode .duel-options button:nth-child(3),
#studyOverlay.practice-live-mode .duel-options button:nth-child(4){
  border-color:rgba(255,255,255,.14);
  background:linear-gradient(180deg,#242039 0%,#201b35 100%);
  color:#fff;
}
#studyOverlay.practice-live-mode .duel-options button:hover{
  background:linear-gradient(180deg,#2d2548 0%,#251f3d 100%);
}

/* Absolute no-grey LIVE skin: every visible panel is dark, no white veil. */
#studyOverlay.practice-live-mode .overlay-card{
  background:
    radial-gradient(circle at 17% 12%,rgba(124,64,232,.34),transparent 32%),
    radial-gradient(circle at 88% 76%,rgba(23,169,213,.18),transparent 34%),
    linear-gradient(145deg,#120822 0%,#161024 48%,#071923 100%)!important;
}
#studyOverlay.practice-live-mode .duel-live-masthead{
  background:transparent!important;
  border-bottom-color:rgba(255,255,255,.14)!important;
}
#studyOverlay.practice-live-mode .duel-teacher-live-panel,
#studyOverlay.practice-live-mode .duel-chat-poll,
#studyOverlay.practice-live-mode .duel-question,
#studyOverlay.practice-live-mode .duel-poll-bars button,
#studyOverlay.practice-live-mode .duel-options button,
#studyOverlay.practice-live-mode .duel-options button:nth-child(1),
#studyOverlay.practice-live-mode .duel-options button:nth-child(2),
#studyOverlay.practice-live-mode .duel-options button:nth-child(3),
#studyOverlay.practice-live-mode .duel-options button:nth-child(4){
  background:#241b37!important;
  background-image:linear-gradient(180deg,#2b2240 0%,#201930 100%)!important;
  border-color:rgba(255,255,255,.14)!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(0,0,0,.26)!important;
  backdrop-filter:none!important;
}
#studyOverlay.practice-live-mode .duel-match-head{
  background:#211a34!important;
  background-image:linear-gradient(110deg,#3b2864 0%,#211a34 56%,#123747 100%)!important;
  border-color:rgba(210,180,255,.24)!important;
  box-shadow:0 10px 22px rgba(0,0,0,.28)!important;
}
#studyOverlay.practice-live-mode .duel-teacher-live-panel button{
  background:#34284b!important;
  border-color:rgba(255,255,255,.18)!important;
}
#studyOverlay.practice-live-mode .duel-poll-bars i{background:#3b334c!important}
#studyOverlay.practice-live-mode .duel-options button:hover{
  background:#302247!important;
  background-image:linear-gradient(180deg,#362750 0%,#281f3c 100%)!important;
}
/* The purple-veil rule above wins with !important, so the correct/wrong
   feedback needs to shout back at the same volume — otherwise a wrong tap
   paints nothing and the animation looks broken. */
#studyOverlay.practice-live-mode .duel-options button.correct{
  background:#0f9866!important;
  background-image:linear-gradient(135deg,#0f9866 0%,#14b884 55%,#28d39f 100%)!important;
  border-color:#28d39f!important;
  box-shadow:0 14px 32px rgba(20,152,112,.55),inset 0 1px 0 rgba(255,255,255,.28)!important;
}
#studyOverlay.practice-live-mode .duel-options button.wrong{
  background:#ab1f34!important;
  background-image:linear-gradient(135deg,#ab1f34 0%,#e33750 55%,#ff6d79 100%)!important;
  border-color:#ff6d79!important;
  box-shadow:0 14px 32px rgba(190,48,67,.55),inset 0 1px 0 rgba(255,255,255,.24)!important;
  animation:duelWrongShake .38s ease-in-out;
}
#studyOverlay.practice-live-mode .duel-options button.correct span{
  background:rgba(255,255,255,.32)!important;
}
#studyOverlay.practice-live-mode .duel-options button.wrong span{
  background:rgba(255,255,255,.32)!important;
}
@keyframes duelWrongShake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-6px)}
  40%{transform:translateX(6px)}
  60%{transform:translateX(-4px)}
  80%{transform:translateX(4px)}
}

/* Zero grey veil: remove the full-card pseudo mask and keep the 9:16 stage dark. */
#studyOverlay.practice-live-mode .overlay-card{
  background:#120822!important;
  background-image:linear-gradient(145deg,#120822 0%,#161024 52%,#071923 100%)!important;
}
#studyOverlay.practice-live-mode .overlay-card:before{
  display:none!important;
  content:none!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  mask-image:none!important;
}
#studyOverlay.practice-live-mode .overlay-body,
#studyOverlay.practice-live-mode .practice-workspace{
  background:transparent!important;
}

/* ── LIVE duel room roster ────────────────────────────────────────────────
   Shows who actually joined by code and how many each got right, replacing
   the bot score that used to stand in for a class. */
.duel-roster{margin:10px 0 12px}
.duel-roster-empty{padding:12px 14px;border:1px dashed rgba(197,99,234,.35);border-radius:14px;background:rgba(26,22,54,.5);color:#c9bfe4;font-size:12px;font-weight:800;text-align:center}
.duel-roster-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.duel-roster-head small{color:#b98cf0;font-size:10px;font-weight:950;letter-spacing:.1em}
.duel-roster-head strong{color:#fff;font-size:16px;font-weight:950}
.duel-roster-list{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.duel-roster-list li{display:grid;grid-template-columns:24px minmax(0,1fr) auto 12px auto;gap:9px;align-items:center;padding:7px 11px;border-radius:12px;background:rgba(26,22,54,.62)}
.duel-roster-list b{color:#b98cf0;font-size:11px;font-weight:950;text-align:center}
.duel-roster-list span{color:#fff;font-size:13px;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.duel-roster-list em{color:#28d39f;font-size:14px;font-style:normal;font-weight:950}
.duel-answered-dot{width:9px;height:9px;border-radius:50%;background:#d7cce8}
.duel-roster-list li.answered .duel-answered-dot{background:#28d39f;box-shadow:0 0 0 4px rgba(40,211,159,.18)}
.duel-kick{width:28px;height:28px;border:1px solid rgba(255,255,255,.16);border-radius:9px;background:rgba(255,255,255,.08);color:#ffd0d0;font-size:16px;font-weight:900;line-height:1;cursor:pointer}
.duel-kick:hover{background:#d64545;border-color:#d64545;color:#fff}
#studyOverlay.practice-live-mode .duel-roster-list li{background:rgba(11,10,32,.72)}
@media(max-height:760px){.duel-roster{display:none}}

.duel-code-chip{display:flex;align-items:center;gap:8px}
.duel-code-chip strong{padding:9px 12px;border-radius:13px;background:#171020;color:#fff;font-size:16px;letter-spacing:.04em}
.duel-copy-btn{min-height:32px;padding:0 12px;border:1px solid #e0d4f1;border-radius:999px;background:#fff;color:#614c86;font:inherit;font-size:11px;font-weight:950;cursor:pointer}
.duel-copy-btn:hover{border-color:#7040d8;color:#7040d8}
.duel-lobby-share{display:grid;grid-template-columns:140px minmax(0,1fr);gap:14px;align-items:center;margin-top:12px;padding:12px;border:1px solid rgba(123,64,216,.12);border-radius:16px;background:#fff}
.duel-lobby-share img{width:140px;height:140px;border-radius:12px;background:#f7f2ff;object-fit:contain}
.duel-lobby-url{color:#3d3150;font-size:13px;font-weight:850;word-break:break-all}
.duel-lobby-share-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.duel-lobby-roster{position:relative;width:min(820px,100%);margin:4px auto 0;text-align:left}
.duel-lobby-roster .duel-roster-empty{border-color:rgba(123,64,216,.2);background:#f7f2ff;color:#5f536e}
.duel-lobby-roster .duel-roster-head small{color:#7040d8}
.duel-lobby-roster .duel-roster-head strong{color:#171020}
.duel-lobby-roster .duel-roster-list li{background:#fff;border:1px solid #eadff6}
.duel-lobby-roster .duel-roster-list b{color:#7040d8}
.duel-lobby-roster .duel-roster-list span{color:#31243e}
.duel-lobby-roster .duel-roster-list em{color:#0f9d73}
.duel-lobby-roster .duel-kick{border-color:#eadff6;background:#fff;color:#a15b5b}
@media(max-width:640px){
  .duel-lobby-share{grid-template-columns:1fr;justify-items:center;text-align:center}
  .duel-panel-head .duel-code-chip{width:100%;justify-content:space-between}
}

.duel-pack-select{min-height:34px;min-width:min(280px,100%);padding:0 12px;border:1px solid #e4d9f4;border-radius:12px;background:#fff;color:#31243e;font:inherit;font-size:13px;font-weight:800}
.duel-question-meta{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 10px}
.duel-question-timer{display:grid;place-items:center;width:54px;height:54px;border:3px solid #7040d8;border-radius:50%;background:#fff;color:#7040d8;font-size:22px;font-weight:950}
.duel-question-timer.urgent{border-color:#e21f53;color:#e21f53;animation:duelPulse 1s infinite}
.duel-question-timer.done{border-color:#25b296;color:#25b296}
.duel-answered-meta{padding:8px 12px;border-radius:999px;background:#f3edff;color:#5b4878;font-size:13px;font-weight:850}
.duel-answered-meta b{color:#7040d8}
.duel-podium{display:grid;gap:8px;width:min(520px,100%);margin:8px auto 0;padding:0;list-style:none;text-align:left}
.duel-podium li{display:grid;grid-template-columns:28px 1fr auto auto;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;background:#f5efff}
.duel-podium li.place-1{background:linear-gradient(100deg,#fff6d8,#f5efff)}
.duel-podium b{color:#7040d8;font-size:14px}
.duel-podium span{font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.duel-podium em{font-style:normal;font-weight:950;color:#0f9d73}
.duel-podium small{color:#7a6b8e;font-size:11px;font-weight:800}
#studyOverlay.practice-live-mode .duel-question-timer{border-color:rgba(255,255,255,.35);background:rgba(0,0,0,.28);color:#fff}
#studyOverlay.practice-live-mode .duel-answered-meta{background:rgba(255,255,255,.1);color:#efe7ff}
#studyOverlay.practice-live-mode .duel-answered-meta b{color:#fff}
#studyOverlay.practice-live-mode .duel-podium li{background:rgba(255,255,255,.08);color:#fff}
#studyOverlay.practice-live-mode .duel-podium em{color:#7dffc4}
#studyOverlay.practice-live-mode .duel-podium small{color:#d8cae8}

.duel-duvi{position:absolute;right:8px;bottom:56px;width:min(28vw,160px);height:auto;pointer-events:none;z-index:5;filter:drop-shadow(0 12px 24px rgba(0,0,0,.35));transform-origin:80% 100%}
.duel-duvi.pop{animation:duelDuviPop .45s cubic-bezier(.2,1.4,.3,1)}
@keyframes duelDuviPop{0%{transform:scale(.6) translateY(18px);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.duel-confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}
.duel-gift-rank{padding:6px 10px;border-radius:999px;background:#f5c542;color:#3b2708;font-size:11px;font-weight:900;letter-spacing:.02em}
#studyOverlay.practice-live-mode .practice-workspace{position:relative}
#studyOverlay.practice-live-mode .duel-gift-rank{margin-right:auto}

.duel-stage-overlay{position:absolute;inset:0;z-index:7;display:grid;grid-template-rows:auto auto 1fr auto auto auto;align-content:start;gap:8px;padding:14px 16px 18px;background:linear-gradient(180deg,rgba(8,6,16,.2),rgba(8,6,16,.55) 70%);color:#fff;pointer-events:none}
.duel-stage-overlay[hidden]{display:none!important}
.duel-stage-overlay .dso-top{display:flex;align-items:center;gap:10px}
.duel-stage-overlay .dso-live{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#d91f50;font-size:11px;font-weight:950}
.duel-stage-overlay .dso-live i{width:7px;height:7px;border-radius:50%;background:#fff;animation:duelLiveDot 1.15s ease-in-out infinite}
.duel-stage-overlay #dsoCode{font-size:18px;letter-spacing:.06em}
.duel-stage-overlay .dso-timer{display:grid;place-items:center;width:48px;height:48px;border:3px solid #fff;border-radius:50%;font-size:20px;font-weight:950}
.duel-stage-overlay .dso-timer.urgent{border-color:#e21f53;color:#ff9d9d}
.duel-stage-overlay .dso-join{margin:0;color:#d9ccea;font-size:12px;font-weight:800}
.duel-stage-overlay h2{margin:0;font-size:clamp(20px,3.2vw,34px);line-height:1.2}
.duel-stage-overlay .dso-poll{display:grid;gap:6px;pointer-events:auto}
.duel-stage-overlay .dso-poll button{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;min-height:38px;padding:6px 10px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(12,10,24,.72);color:#fff;text-align:left;cursor:pointer}
.duel-stage-overlay .dso-poll button.correct{border-color:#25b296;background:rgba(37,178,150,.28)}
.duel-stage-overlay .dso-poll span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#8b42e8;font-weight:950}
.duel-stage-overlay .dso-poll i{display:none}
.duel-stage-overlay .dso-poll b{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.duel-stage-overlay .dso-controls{display:flex;gap:8px;pointer-events:auto}
.duel-stage-overlay .dso-controls button{min-height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(12,10,24,.8);color:#fff;font-weight:850;cursor:pointer}
.duel-stage-overlay .dso-duvi{right:12px;bottom:12px;width:min(22%,140px)}
.practice-workspace{position:relative}

/* Practice-for-LIVE efficiency polish: Quick-Start splash, auto-pilot toggle,
   adaptive-difficulty toast, join-CTA panel on the winner screen, next-duel
   countdown. Kept tight to reuse the existing hub palette. */
.duel-quickstart-splash{display:grid;gap:8px;justify-items:center;padding:56px 24px;text-align:center;color:#4c377a}
.duel-quickstart-splash span{font-size:56px;filter:drop-shadow(0 8px 22px rgba(124,58,237,.35))}
.duel-quickstart-splash b{font-size:20px;font-weight:900}
.duel-quickstart-splash small{color:#7a6d99;font-weight:800;letter-spacing:.02em}
.duel-autopilot-toggle{min-height:36px;padding:6px 12px;border:1px solid rgba(103,62,184,.22);border-radius:12px;background:#fff;color:#5b2fc9;font-size:12px;font-weight:900;cursor:pointer;margin-left:auto}
.duel-autopilot-toggle.active{background:linear-gradient(120deg,#7c3aed,#5b2fc9);border-color:transparent;color:#fff;box-shadow:0 8px 22px rgba(124,58,237,.28)}
.duel-adaptive-toast{margin:0 0 10px;padding:10px 14px;border-radius:14px;font-weight:900;letter-spacing:.02em;text-align:center;animation:duelAdaptiveIn .5s ease-out}
.duel-adaptive-toast.up{background:linear-gradient(120deg,#7c3aed,#a35be5);color:#fff}
.duel-adaptive-toast.down{background:#fef1d1;color:#8a5900}
@keyframes duelAdaptiveIn{from{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}
.duel-join-cta{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:center;width:min(560px,100%);padding:14px 16px;border-radius:20px;background:linear-gradient(120deg,#241537,#3d1e63);color:#fff;box-shadow:0 18px 40px rgba(30,16,50,.25)}
.duel-join-cta .duel-join-qr{border-radius:14px;background:#fff;padding:6px}
.duel-join-cta-copy{display:grid;gap:2px;min-width:0}
.duel-join-cta-copy small{color:#f5c56b;font-weight:900;letter-spacing:.09em;font-size:10px}
.duel-join-cta-copy b{font-size:16px;font-weight:900}
.duel-join-cta-copy span{color:#c9bfe4;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.duel-join-cta-copy em{color:#a586d9;font-style:normal;font-size:11px;font-weight:800}
.duel-next-countdown{display:grid;justify-items:center;gap:3px;padding:8px 14px;border-radius:14px;background:rgba(124,58,237,.12);color:#5b2fc9;width:min(300px,100%)}
.duel-next-countdown small{font-size:10px;font-weight:900;letter-spacing:.13em}
.duel-next-countdown b{font-size:26px;font-weight:900;font-variant-numeric:tabular-nums}
#studyOverlay.practice-live-mode .duel-join-cta{background:linear-gradient(120deg,rgba(255,255,255,.12),rgba(124,58,237,.24));border:1px solid rgba(255,255,255,.12)}
#studyOverlay.practice-live-mode .duel-next-countdown{background:rgba(255,255,255,.1);color:#e6d9ff}
@media(max-width:640px){.duel-join-cta{grid-template-columns:1fr;justify-items:center;text-align:center}}

/* Topic group tabs — collapse the 11-chip row into 3 groups + chips. */
.duel-topic-groups>[data-duel-topic-group]{min-height:34px;padding:5px 12px;border:1px solid rgba(103,62,184,.18);border-radius:11px;background:#fff;color:#5b2fc9;font-size:12px;font-weight:900;cursor:pointer}
.duel-topic-groups>[data-duel-topic-group].active{background:linear-gradient(120deg,#7c3aed,#5b2fc9);border-color:transparent;color:#fff;box-shadow:0 6px 16px rgba(124,58,237,.22)}
.duel-topic-chips>[data-duel-topic][hidden]{display:none}
/* Honest-demo styling for the "chat wave" simulator so it doesn't look
   like it's tied to a real chat feed. */
.duel-poll-demo{border-color:#e0d7ef!important;background:#f5f0ff!important;color:#7a63a8!important;font-weight:850!important}
.duel-poll-demo::before{content:'demo · ';font-weight:900;letter-spacing:.05em;color:#a58ad0}
