html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}html,body,#root{min-height:100%;margin:0}:root{--ink: #172033;--ink-soft: #4b5563;--muted: #7b8496;--accent: #22c55e;--accent-strong: #16a34a;--accent-soft: rgba(34, 197, 94, .14);--accent-blue: #2563eb;--accent-blue-soft: rgba(37, 99, 235, .12);--accent-yellow: #f59e0b;--accent-red: #ef4444;--line-soft: rgba(148, 163, 184, .24);--panel-line: rgba(148, 163, 184, .22);--panel: rgba(255, 255, 255, .74);--panel-soft: rgba(255, 255, 255, .58);--panel-tint: rgba(240, 253, 244, .62);--glass: rgba(255, 255, 255, .58);--glass-strong: rgba(255, 255, 255, .78);--glass-soft: rgba(255, 255, 255, .42);--glass-edge: rgba(148, 163, 184, .24);--glass-edge-soft: rgba(148, 163, 184, .16);--glass-highlight: rgba(255, 255, 255, .56);--shadow-lg: 0 28px 70px -46px rgba(15, 23, 42, .34), 0 8px 24px -20px rgba(34, 197, 94, .16);--shadow-md: 0 18px 42px -32px rgba(15, 23, 42, .24), 0 4px 14px -12px rgba(37, 99, 235, .14);--button-3d-shadow: 0 8px 18px -14px rgba(15, 23, 42, .28), inset 0 1px 0 rgba(255, 255, 255, .54);--button-3d-shadow-hover: 0 12px 28px -18px rgba(34, 197, 94, .32), inset 0 1px 0 rgba(255, 255, 255, .66);--button-3d-shadow-active: 0 4px 12px -12px rgba(15, 23, 42, .28), inset 0 1px 0 rgba(255, 255, 255, .46);--button-primary-3d-shadow: 0 14px 28px -18px rgba(34, 197, 94, .48), inset 0 1px 0 rgba(255, 255, 255, .3)}*,*:before,*:after{box-sizing:border-box}body{background:linear-gradient(135deg,#e6efffe0,#fafbfdfa 38%,#e0f5f1b8),#f4f5f9;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Inter,PingFang SC,Helvetica Neue,sans-serif;font-feature-settings:"cv11","ss01","ss02";letter-spacing:0}button,input,textarea{font:inherit}.app-shell{position:relative;min-height:100vh;background:radial-gradient(1200px 620px at 15% -12%,rgba(207,220,255,.55),transparent 62%),radial-gradient(980px 560px at 92% 0%,rgba(240,216,255,.42),transparent 58%),radial-gradient(1080px 640px at 84% 110%,rgba(205,238,231,.56),transparent 62%),linear-gradient(180deg,#fafbfd,#f4f5f9);overflow:hidden;isolation:isolate}.app-shell[class*=weather-],.learner-login-page[class*=weather-]{background:linear-gradient(180deg,#f8fafc3d,#ffffff4d)}.app-shell:before,.app-shell:after,.learner-login-page:before,.learner-login-page:after{content:"";position:absolute;pointer-events:none}.app-shell:before,.learner-login-page:before{top:-18%;right:-18%;bottom:-18%;left:-18%;z-index:0;background:radial-gradient(620px 420px at 18% 18%,rgba(56,189,248,.34),transparent 68%),radial-gradient(680px 460px at 82% 8%,rgba(168,85,247,.22),transparent 64%),radial-gradient(740px 500px at 72% 94%,rgba(34,197,94,.2),transparent 66%);filter:blur(8px)}.app-shell[class*=weather-]:before,.learner-login-page[class*=weather-]:before{opacity:0}.app-shell[class*=weather-]:after,.learner-login-page[class*=weather-]:after{opacity:.72;background:radial-gradient(900px 620px at 12% 8%,rgba(255,255,255,.62),transparent 70%),radial-gradient(820px 560px at 88% 16%,rgba(255,255,255,.44),transparent 68%),linear-gradient(180deg,#ffffff61,#f8fafc8f);mix-blend-mode:normal}.app-shell:after,.learner-login-page:after{top:0;right:0;bottom:0;left:0;z-index:0;opacity:.36;background:linear-gradient(115deg,transparent 0 32%,rgba(255,255,255,.34) 45%,transparent 62%),radial-gradient(circle at 26% 18%,rgba(255,255,255,.34),transparent 22%);mix-blend-mode:screen}.weather-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;opacity:1;pointer-events:none}.weather-backdrop canvas,.weather-sky-layer,.weather-stars-layer,.weather-light-layer,.weather-sun-rays,.weather-cloudfield,.weather-rain-depth,.weather-horizon-layer,.weather-ground-layer,.weather-lightning-layer,.weather-fog-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.weather-sky-layer{background:linear-gradient(180deg,#ffffff2e,#ffffff47),url(https://lsky.alosha.cn/AkjIOy.jpeg) center top / max(100vw,180vh) auto no-repeat,linear-gradient(180deg,#a5d8ff,#dff5ff);transition:background .6s ease}.weather-scene-night .weather-sky-layer{background:radial-gradient(circle at 76% 18%,rgba(186,230,253,.28),transparent 15%),linear-gradient(180deg,#070a1aeb,#141e3ab3 52%,#3b82f63d)}.weather-scene-cloudy .weather-sky-layer,.weather-scene-fog .weather-sky-layer{background:radial-gradient(900px 420px at 16% 6%,rgba(255,255,255,.28),transparent 64%),linear-gradient(180deg,#5e6b7cad,#919eae8c 52%,#cdd6dd75)}.weather-scene-rain .weather-sky-layer,.weather-scene-thunder .weather-sky-layer{background:radial-gradient(900px 460px at 78% 14%,rgba(186,211,229,.34),transparent 54%),radial-gradient(980px 500px at 12% 0%,rgba(15,23,42,.42),transparent 66%),linear-gradient(180deg,#0f172ae6,#27364bc7 45%,#51697e8a)}.weather-scene-snow .weather-sky-layer{background:radial-gradient(760px 380px at 22% 10%,rgba(255,255,255,.68),transparent 62%),linear-gradient(180deg,#bfdbfed1,#e2e8f0b8 48%,#ffffffa8)}.weather-stars-layer{opacity:0;background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 1px,transparent 1.5px),radial-gradient(circle,rgba(186,230,253,.7) 0 1px,transparent 1.5px);background-position:18px 26px,62px 86px;background-size:92px 92px,138px 138px;transition:opacity .5s ease}.weather-scene-night .weather-stars-layer{opacity:.8}.weather-light-layer{opacity:.26;background:radial-gradient(860px 540px at 86% 38%,rgba(255,255,255,.5),transparent 62%),linear-gradient(112deg,transparent 0 30%,rgba(255,255,255,.2) 42%,transparent 56%),radial-gradient(600px 360px at 77% 18%,rgba(255,231,128,.34),transparent 68%);mix-blend-mode:screen}.weather-sun-rays{opacity:.36;background:conic-gradient(from 242deg at 84% 42%,transparent 0deg,rgba(255,255,255,.24) 10deg,transparent 22deg,transparent 46deg,rgba(255,231,160,.3) 58deg,transparent 72deg,transparent 100deg,rgba(255,255,255,.2) 112deg,transparent 132deg),radial-gradient(780px 460px at 82% 42%,rgba(255,255,255,.34),transparent 64%);filter:none;mix-blend-mode:screen}.weather-scene-cloudy .weather-light-layer,.weather-scene-fog .weather-light-layer{opacity:.22}.weather-scene-rain .weather-light-layer,.weather-scene-thunder .weather-light-layer,.weather-scene-night .weather-light-layer{opacity:.12}.weather-scene-rain .weather-sun-rays,.weather-scene-thunder .weather-sun-rays,.weather-scene-night .weather-sun-rays{opacity:0}.weather-horizon-layer{top:auto;height:42%;background:radial-gradient(720px 260px at 16% 68%,rgba(255,255,255,.54),transparent 66%),radial-gradient(860px 300px at 78% 58%,rgba(224,242,254,.5),transparent 70%),linear-gradient(180deg,transparent 0%,rgba(245,249,252,.46) 44%,rgba(163,204,213,.2) 100%);transform:translateY(1px)}.weather-scene-rain .weather-horizon-layer,.weather-scene-thunder .weather-horizon-layer{background:radial-gradient(680px 240px at 24% 70%,rgba(15,23,42,.22),transparent 68%),linear-gradient(180deg,transparent 0%,rgba(15,23,42,.18) 54%,rgba(37,99,235,.22) 100%)}.weather-scene-snow .weather-horizon-layer{background:radial-gradient(740px 260px at 22% 66%,rgba(255,255,255,.74),transparent 68%),linear-gradient(180deg,transparent 0%,rgba(255,255,255,.54) 48%,rgba(226,232,240,.48) 100%)}.weather-scene-night .weather-horizon-layer{background:radial-gradient(640px 240px at 18% 72%,rgba(59,130,246,.16),transparent 66%),linear-gradient(180deg,transparent 0%,rgba(15,23,42,.28) 52%,rgba(30,41,59,.38) 100%)}.weather-ground-layer{top:auto;height:22%;opacity:.58;background:linear-gradient(180deg,transparent,rgba(231,238,242,.3)),repeating-linear-gradient(105deg,rgba(255,255,255,.14) 0 2px,transparent 2px 30px);animation:ground-shimmer 9s ease-in-out infinite alternate}.weather-scene-rain .weather-ground-layer,.weather-scene-thunder .weather-ground-layer{opacity:.86;background:linear-gradient(180deg,transparent,rgba(15,23,42,.18)),repeating-linear-gradient(100deg,rgba(147,197,253,.28) 0 2px,transparent 2px 24px)}.weather-lightning-layer{opacity:0;background:linear-gradient(112deg,transparent 0 47%,rgba(255,255,255,.92) 48%,transparent 49%),radial-gradient(circle at 64% 18%,rgba(255,255,255,.62),transparent 16%)}.weather-scene-thunder .weather-lightning-layer{animation:lightning-flash 6.5s steps(1,end) infinite}.weather-sun,.weather-moon{position:absolute;border-radius:999px;transition:opacity .5s ease,transform .5s ease}.weather-sun{top:28%;right:9%;width:210px;height:210px;background:radial-gradient(circle,rgba(255,255,255,.96) 0 15%,rgba(255,238,163,.88) 26%,rgba(251,191,36,.42) 52%,transparent 70%);filter:none;mix-blend-mode:screen;animation:sun-breathe 7s ease-in-out infinite}.weather-moon{top:10%;right:15%;width:112px;height:112px;opacity:0;background:radial-gradient(circle at 34% 34%,rgba(255,255,255,.96),rgba(226,232,240,.44) 58%,transparent 70%);box-shadow:0 0 56px #bae6fd80}.weather-scene-night .weather-sun,.weather-scene-rain .weather-sun,.weather-scene-thunder .weather-sun{opacity:0}.weather-scene-night .weather-moon{opacity:1}.weather-cloud{position:absolute;width:330px;height:92px;opacity:.34;background:#eef4f98a;border-radius:999px;filter:blur(3px)}.weather-cloudfield{opacity:.72;filter:none;transform:translateZ(0)}.weather-cloudfield-back{opacity:.52;background:radial-gradient(420px 140px at 12% 60%,rgba(255,255,255,.46),transparent 70%),radial-gradient(520px 170px at 42% 54%,rgba(241,247,252,.5),transparent 72%),radial-gradient(520px 180px at 78% 48%,rgba(210,231,241,.42),transparent 74%)}.weather-cloudfield-mid{top:auto;height:62%;bottom:-14%;background:radial-gradient(460px 170px at 4% 64%,rgba(255,255,255,.68),transparent 74%),radial-gradient(620px 210px at 25% 58%,rgba(246,249,252,.72),transparent 76%),radial-gradient(700px 230px at 58% 52%,rgba(232,242,249,.66),transparent 78%),radial-gradient(560px 210px at 92% 46%,rgba(255,255,255,.58),transparent 74%)}.weather-cloudfield-front{top:auto;bottom:-23%;height:55%;opacity:.82;filter:blur(2px);background:radial-gradient(440px 150px at 0% 44%,rgba(255,255,255,.8),transparent 72%),radial-gradient(640px 210px at 33% 36%,rgba(255,255,255,.7),transparent 76%),radial-gradient(780px 250px at 70% 30%,rgba(235,244,250,.72),transparent 78%),radial-gradient(620px 210px at 104% 40%,rgba(255,255,255,.72),transparent 72%)}.weather-cloud:before,.weather-cloud:after{content:"";position:absolute;bottom:20px;background:inherit;border-radius:999px}.weather-cloud:before{left:42px;width:112px;height:112px}.weather-cloud:after{left:122px;width:152px;height:136px}.weather-cloud-a{top:18%;left:-18%}.weather-cloud-b{top:34%;left:46%;width:260px;height:72px;opacity:.48;animation-duration:48s;animation-delay:-18s}.weather-cloud-c{top:8%;left:64%;width:230px;height:64px;opacity:.34;animation-duration:58s;animation-delay:-30s}.weather-cloud-d{top:22%;left:18%;width:420px;height:104px;opacity:0;animation-duration:62s;animation-delay:-44s}.weather-cloud-e{top:44%;left:-8%;width:360px;height:86px;opacity:0;animation-duration:72s;animation-delay:-10s}.weather-scene-clear .weather-cloud-b,.weather-scene-clear .weather-cloud-c,.weather-scene-clear .weather-cloud-d,.weather-scene-clear .weather-cloud-e{opacity:.12}.weather-scene-cloudy .weather-cloud,.weather-scene-fog .weather-cloud{background:#e2e8f09e;opacity:.78}.weather-scene-cloudy .weather-cloud-a,.weather-scene-fog .weather-cloud-a{width:520px;height:122px}.weather-scene-cloudy .weather-cloud-d,.weather-scene-cloudy .weather-cloud-e,.weather-scene-fog .weather-cloud-d,.weather-scene-fog .weather-cloud-e{opacity:.58}.weather-scene-rain .weather-cloud,.weather-scene-thunder .weather-cloud{background:#182435b3;opacity:.72}.weather-scene-rain .weather-cloudfield,.weather-scene-thunder .weather-cloudfield{animation-duration:18s}.weather-scene-rain .weather-cloudfield-back,.weather-scene-thunder .weather-cloudfield-back{opacity:.86;background:radial-gradient(560px 180px at 6% 22%,rgba(8,13,24,.72),transparent 72%),radial-gradient(720px 230px at 34% 18%,rgba(18,28,43,.78),transparent 74%),radial-gradient(620px 210px at 70% 16%,rgba(64,82,99,.62),transparent 74%),radial-gradient(480px 170px at 100% 24%,rgba(191,207,219,.28),transparent 70%)}.weather-scene-rain .weather-cloudfield-mid,.weather-scene-thunder .weather-cloudfield-mid{top:-9%;bottom:auto;height:50%;opacity:.9;filter:blur(1px);background:radial-gradient(520px 180px at 4% 30%,rgba(4,9,20,.76),transparent 74%),radial-gradient(680px 220px at 36% 32%,rgba(25,39,57,.84),transparent 76%),radial-gradient(760px 250px at 72% 26%,rgba(59,78,96,.78),transparent 78%),radial-gradient(520px 190px at 102% 34%,rgba(210,222,231,.26),transparent 72%)}.weather-scene-rain .weather-cloudfield-front,.weather-scene-thunder .weather-cloudfield-front{bottom:42%;height:42%;opacity:.48;filter:blur(2px);background:radial-gradient(520px 200px at 12% 70%,rgba(30,41,59,.36),transparent 74%),radial-gradient(720px 250px at 54% 62%,rgba(71,85,105,.36),transparent 78%),radial-gradient(560px 210px at 96% 56%,rgba(203,213,225,.2),transparent 72%)}.weather-rain-depth{opacity:0;background:repeating-linear-gradient(108deg,transparent 0 13px,rgba(226,232,240,.34) 14px 15px,transparent 16px 26px),repeating-linear-gradient(108deg,transparent 0 34px,rgba(148,163,184,.28) 35px 37px,transparent 38px 64px);background-size:180px 180px,260px 260px;filter:none;mix-blend-mode:screen;animation:rain-sheet .62s linear infinite}.weather-scene-rain .weather-rain-depth,.weather-scene-thunder .weather-rain-depth{opacity:.58}.weather-scene-fog .weather-fog-layer{background:linear-gradient(180deg,#ffffff1a,#ffffff5c),repeating-linear-gradient(0deg,rgba(255,255,255,.1) 0 12px,transparent 12px 36px);animation:fog-drift 18s ease-in-out infinite alternate}.weather-scene-thunder .weather-fog-layer{background:linear-gradient(180deg,#0f172a29,#1e293b14)}@keyframes sun-breathe{0%,to{transform:scale(.96)}50%{transform:scale(1.05)}}@keyframes sun-rays-breathe{0%{transform:translate3d(-1%,-1%,0) scale(.98);opacity:.54}to{transform:translate3d(1.5%,1%,0) scale(1.04);opacity:.84}}@keyframes cloud-drift{0%{transform:translate(-20vw)}to{transform:translate(132vw)}}@keyframes cloudfield-drift{0%{transform:translate3d(-1.4%,-.6%,0) scale(1.02)}to{transform:translate3d(1.4%,.8%,0) scale(1.06)}}@keyframes rain-sheet{0%{background-position:0 0,0 0}to{background-position:-90px 180px,-130px 260px}}@keyframes fog-drift{0%{transform:translate(-2%);opacity:.58}to{transform:translate(2%);opacity:.78}}@keyframes daylight-shift{0%{transform:translate(-2%) skew(-4deg)}to{transform:translate(3%) skew(-2deg)}}@keyframes stars-twinkle{0%{filter:brightness(.82)}to{filter:brightness(1.22)}}@keyframes ground-shimmer{0%{transform:translateY(0)}to{transform:translateY(5px)}}@keyframes lightning-flash{0%,92%,to{opacity:0}93%{opacity:.84}94%{opacity:.1}95%{opacity:.68}96%{opacity:0}}@media(prefers-reduced-motion:reduce){.weather-backdrop *,.weather-backdrop{animation:none!important}}.weather-clear:before{background:radial-gradient(680px 460px at 18% 10%,rgba(125,211,252,.48),transparent 68%),radial-gradient(720px 520px at 84% 4%,rgba(250,204,21,.2),transparent 62%),radial-gradient(780px 540px at 72% 96%,rgba(52,211,153,.22),transparent 66%)}.weather-cloudy:before{background:radial-gradient(760px 480px at 12% 8%,rgba(203,213,225,.62),transparent 68%),radial-gradient(820px 520px at 82% 18%,rgba(147,197,253,.24),transparent 64%),radial-gradient(780px 540px at 70% 94%,rgba(226,232,240,.46),transparent 68%)}.weather-rain:after{opacity:.42;background:repeating-linear-gradient(115deg,transparent 0 15px,rgba(59,130,246,.2) 16px 18px),linear-gradient(180deg,#dbeafe33,#0f172a0a);background-size:160px 160px,100% 100%;animation:rain-fall .85s linear infinite}.weather-snow:after{opacity:.58;background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 1px,transparent 1.5px),radial-gradient(circle,rgba(255,255,255,.78) 0 1px,transparent 1.5px);background-position:0 0,36px 54px;background-size:82px 82px,118px 118px;animation:snow-drift 11s linear infinite}.weather-night:before{background:radial-gradient(520px 360px at 18% 10%,rgba(96,165,250,.28),transparent 68%),radial-gradient(680px 460px at 82% 14%,rgba(129,140,248,.22),transparent 64%),linear-gradient(135deg,#0f172a5c,#1e293b2e)}@keyframes ambient-drift{0%{transform:translate3d(-1.5%,-1%,0) scale(1)}to{transform:translate3d(1.5%,1%,0) scale(1.04)}}@keyframes light-sweep{0%,to{transform:translate(-8%);opacity:.26}50%{transform:translate(7%);opacity:.44}}@keyframes rain-fall{0%{background-position:0 0,0 0}to{background-position:-62px 116px,0 0}}@keyframes snow-drift{0%{background-position:0 -120px,36px -80px}to{background-position:40px 100vh,-12px 100vh}}.learner-login-page{position:relative;min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,#ffffffd6,#ecfdf580),linear-gradient(45deg,#e0f2feeb,#f8fafcf0);isolation:isolate}.learner-login-card{position:relative;z-index:1;width:min(400px,100%);display:flex;flex-direction:column;gap:20px;padding:36px 32px;color:#111827;background:#ffffff8f;border:1px solid var(--glass-edge);border-radius:12px;box-shadow:0 24px 60px #0f172a1f;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.login-card-brand{display:flex;flex-direction:column;align-items:center;gap:10px}.login-brand-mark{width:56px;height:56px;filter:drop-shadow(0 8px 16px rgba(14,165,233,.2))}.login-card-brand h1{margin:0;font-size:22px;line-height:1.2;text-align:center}.login-language-switch{align-self:center}.login-card-form{display:flex;flex-direction:column;gap:12px}.login-card-form strong{font-size:16px}.login-register-done{text-align:center;padding:18px 0}.login-register-done strong{display:block;font-size:15px;font-weight:600;color:#059669}.login-register-done p{margin:8px 0 0;color:#475569;font-size:14px}.login-card-status{color:#475569;font-size:13px;text-align:center}.login-card-links{display:flex;justify-content:space-between}.login-error{color:#ef4444;font-size:13px;text-align:center}.learner-avatar-wrapper{position:relative}.profile-avatar-image,.profile-avatar-fallback{width:24px;height:24px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:999px}.profile-avatar-image{object-fit:cover;background:#e5e7eb}.profile-avatar-fallback{color:#fff;background:linear-gradient(135deg,#0ea5e9,#16a34a);font-size:12px;font-weight:800}.settings-popover{top:52px;right:0;width:260px}.avatar-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;color:#334155;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:13px;text-align:left}.avatar-dropdown-item:hover{color:var(--accent-strong);background:var(--accent-soft)}.avatar-dropdown-logout{color:#ef4444}.avatar-dropdown-logout:hover{color:#ef4444;background:#fee2e2b8}.settings-page{height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--glass);border:1px solid var(--glass-edge);border-radius:8px;box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%)}.profile-settings-card{max-width:420px;display:grid;gap:12px;padding:18px;background:#ffffff5c;border:1px solid var(--glass-edge);border-radius:8px}.profile-settings-card .profile-avatar-image,.profile-settings-card .profile-avatar-fallback{width:56px;height:56px;font-size:20px}.profile-email-row{display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(148,163,184,.22);border-radius:8px;background:#f8fafc9e}.profile-email-row span{color:#64748b;font-size:12px}.profile-email-row strong{color:#0f172a;font-size:13px;font-weight:700;overflow-wrap:anywhere}.settings-page-header{display:flex;align-items:center;gap:14px;padding:14px 24px;border-bottom:1px solid var(--line-soft);background:#ffffff61;flex:0 0 auto}.settings-page-header strong{font-size:17px;color:#111827}.settings-back{display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--accent-strong);background:transparent;border:1px solid rgba(203,213,225,.58);border-radius:6px;cursor:pointer;font-size:13px}.settings-back:hover{background:var(--accent-soft)}.settings-two-col{flex:1;min-height:0;display:grid;grid-template-columns:200px minmax(0,1fr);overflow:hidden}.settings-sidebar{display:flex;flex-direction:column;gap:2px;padding:16px 12px;border-right:1px solid var(--line-soft);background:#ffffff3d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.settings-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;color:#475569;background:transparent;border:none;border-radius:7px;cursor:pointer;font-size:14px;text-align:left;transition:background .15s,color .15s}.settings-menu-item:hover{color:var(--accent-strong);background:var(--accent-soft)}.settings-menu-item.active{color:var(--accent-strong);background:#e0f2feb8;font-weight:700}.settings-content{min-width:0;overflow:auto;padding:28px 32px}.settings-section{display:flex;flex-direction:column;gap:14px;max-width:420px}.settings-section-title{font-size:16px;font-weight:700;color:#111827}.settings-label{display:block;margin-top:6px;font-size:12px;font-weight:600;color:#475569}.settings-password-form{display:flex;flex-direction:column;gap:10px}.settings-done{color:#059669;font-size:13px;font-weight:600}.settings-divider{height:1px;background:#cbd5e180;margin:6px 0}.settings-logout{display:flex;align-items:center;gap:6px;padding:4px 0;color:#ef4444;background:none;border:none;cursor:pointer;font-size:12px}.results-page-body{max-width:640px;padding:28px 32px;display:flex;flex-direction:column;gap:24px}.results-summary{display:flex;flex-direction:column;gap:10px;padding:16px;background:#ffffff6b;border:1px solid var(--glass-edge);border-radius:8px;box-shadow:var(--shadow-md)}.results-summary strong{font-size:16px;color:#111827}.results-summary small{color:#667085;font-size:13px}.results-score-row{display:flex;align-items:center;gap:12px}.results-score{font-size:18px;font-weight:800;color:#111827}.results-section{display:flex;flex-direction:column;gap:8px}.results-section strong{font-size:14px;color:#334155}.submission-row-actions{display:flex;align-items:center;gap:8px}.submission-view-btn{padding:3px 10px;color:var(--accent-strong);background:var(--accent-soft);border:1px solid rgba(125,211,252,.62);border-radius:6px;cursor:pointer;font-size:12px;font-weight:600}.submission-view-btn:hover{background:#bae6fdb8}.learner-topbar{position:sticky;top:0;z-index:1000;height:58px;display:flex;align-items:center;gap:9px;width:100%;margin:0;padding:0 18px;background:linear-gradient(135deg,#f1f5f933,#e2e8f01a);border:0;border-bottom:1px solid rgba(100,116,139,.15);border-radius:0;box-shadow:var(--shadow-md),inset 0 1px #ffffff1f,inset 0 0 0 1px #ffffff09;-webkit-backdrop-filter:blur(12px) saturate(112%);backdrop-filter:blur(12px) saturate(112%);line-height:normal;overflow:visible;justify-content:flex-start}.brand-cluster,.top-actions,.learner-avatar,.course-picker,.top-progress,.tool-group,.lesson-breadcrumb,.ai-heading strong{display:flex;align-items:center}.brand-cluster{width:308px;min-width:0;gap:8px;flex:0 0 auto}.brand-mark{width:42px;height:42px;display:block;filter:drop-shadow(0 2px 4px rgba(255,255,255,.82)) drop-shadow(0 10px 18px rgba(15,23,42,.24))}.brand-name{font-size:17px;font-weight:800;color:#0f172a;white-space:nowrap;background:transparent;border:none;cursor:pointer;padding:0 6px;font-family:inherit;line-height:inherit;text-shadow:0 1px 0 rgba(255,255,255,.82),0 8px 18px rgba(15,23,42,.16)}.brand-name:hover{color:var(--ink)}.brand-name span{background:linear-gradient(135deg,#06b6d4,#2563eb 44%,#8b5cf6,#fb7185);-webkit-background-clip:text;background-clip:text;color:transparent}.app-shell.weather-cloudy .learner-topbar,.app-shell.weather-fog .learner-topbar{color:#0f172a;text-shadow:0 1px 14px rgba(255,255,255,.74),0 0 1px rgba(15,23,42,.22)}.app-shell.weather-cloudy .learner-topbar .brand-name span,.app-shell.weather-fog .learner-topbar .brand-name span{background:linear-gradient(135deg,#0f172a,#1d4ed8 58%,#4338ca);-webkit-background-clip:text;background-clip:text}.top-icon-button,.round-icon,.catalog-collapse-button,.course-picker,.learner-avatar,.catalog-course-main,.catalog-chapter-row,.asset-button,.pdf-toolbar button,.tab-button,.exercise-card,.workspace-file,.workspace-delete-button,.workspace-folder-toggle,.workspace-folder-action,.editor-tabs button,.ai-heading button,.ai-quick-actions button,.console-actions button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;cursor:pointer}.top-icon-button{width:30px;height:30px;display:grid;place-items:center;margin-left:4px;color:var(--accent-strong);border-radius:7px}.top-icon-button:hover,.round-icon:hover,.catalog-collapse-button:hover,.course-picker:hover,.learner-avatar:hover,.catalog-course-main:hover,.catalog-chapter-row:hover,.asset-button:hover,.tool-group button:hover,.tab-button:hover,.editor-tabs button:hover,.workspace-delete-button:hover,.workspace-folder-toggle:hover,.workspace-folder-action:hover,.ai-heading button:hover,.ai-quick-actions button:hover,.console-actions button:hover{color:var(--accent-strong);background:var(--accent-soft)}.course-picker-wrap{width:clamp(260px,24vw,420px);min-width:240px;position:relative;flex:0 1 auto}.course-picker{width:100%;height:42px;justify-content:space-between;gap:12px;padding:0 10px 0 12px;background:transparent;border:0;border-radius:6px;box-shadow:none;text-align:left;position:relative}.course-picker span{display:block;flex:0 0 auto;color:#7b8496;font-size:12px;font-weight:700;white-space:nowrap;padding-right:12px;border-right:1px solid rgba(100,116,139,.18)}.course-picker strong{min-width:0;flex:1 1 auto;overflow:hidden;color:#111827;font-size:14px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.app-shell.weather-cloudy .learner-topbar .course-picker span,.app-shell.weather-fog .learner-topbar .course-picker span{color:#334155}.app-shell.weather-cloudy .learner-topbar .course-picker strong,.app-shell.weather-fog .learner-topbar .course-picker strong{color:#0f172a}.app-shell.weather-cloudy .learner-topbar .top-icon-button,.app-shell.weather-fog .learner-topbar .top-icon-button,.app-shell.weather-cloudy .learner-topbar .round-icon,.app-shell.weather-fog .learner-topbar .round-icon{color:#1d4ed8}.course-switcher-panel,.top-popover,.auth-popover{position:fixed;z-index:2000;display:grid;gap:8px;max-height:calc(100vh - 76px);overflow:auto;padding:12px;color:#334155;background:linear-gradient(145deg,#ffffff6b,#e0f2fe3d);border:1px solid rgba(100,116,139,.16);border-radius:12px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(22px) saturate(145%);backdrop-filter:blur(22px) saturate(145%);font-size:12px}.course-switcher-panel{position:absolute;top:calc(100% + 4px);left:0;width:100%;margin-top:0;border-top-left-radius:8px;border-top-right-radius:8px}.course-switcher-panel button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:8px 10px;color:#111827;background:#f8fafcb8;border:1px solid rgba(148,163,184,.16);border-radius:9px;cursor:pointer;text-align:left}.course-switcher-panel button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-switcher-panel button:hover{color:var(--accent-strong);border-color:#0ea5e957;background:linear-gradient(135deg,#e0f2fec7,#ede9fe9e)}.course-switcher-panel strong,.asset-panel strong,.top-popover strong{color:#111827}.top-popover{position:absolute;top:calc(100% + 6px);right:84px;width:240px;margin-top:0}.notification-popover{right:38px;width:300px}.learner-notification-item{display:grid;gap:4px;padding:10px;color:#334155;background:#ffffff70;border:1px solid rgba(226,232,240,.48);border-radius:8px;cursor:pointer;text-align:left}.round-icon{position:relative}.notification-unread-badge{position:absolute;top:-5px;right:-4px;min-width:16px;height:16px;display:grid;place-items:center;padding:0 4px;color:#fff;background:#ef4444;border:2px solid rgba(255,255,255,.46);border-radius:999px;font-size:10px;font-weight:800;line-height:1}.learner-notification-item.unread{border-color:#0ea5e96b;background:#e0f2fed1}.learner-notification-item strong{display:inline-flex;align-items:center;gap:6px}.learner-notification-item strong i{width:7px;height:7px;display:inline-block;background:#0ea5e9;border-radius:999px}.learner-notification-item:hover{background:#f0f9ff94;border-color:#7dd3fc75;transform:translateY(-1px)}.learner-notification-item span{color:#475569;line-height:1.35}.learner-notification-item small{color:#94a3b8;font-size:11px}.auth-popover{position:absolute;top:calc(100% + 6px);right:0;width:100%!important;min-width:180px;margin-top:0}.course-switcher-panel,.top-popover,.auth-popover,.add-menu-dropdown{transform-origin:top center;animation:dropdown-unfold .16s ease-out}@keyframes dropdown-unfold{0%{opacity:0;transform:translateY(-4px) scaleY(.96)}to{opacity:1;transform:translateY(0) scaleY(1)}}.auth-popover strong{color:#111827;font-size:14px}.auth-popover .ant-input,.auth-popover .ant-input-affix-wrapper{height:34px}.top-progress{min-width:250px;gap:6px;margin-left:auto;color:#334155;font-size:13px;white-space:nowrap}.progress-track,.mini-progress{overflow:hidden;background:#e2e8f0b8;border-radius:999px}.progress-track{width:128px;height:7px}.progress-track i,.mini-progress i{display:block;height:100%;background:linear-gradient(90deg,#0ea5e9,#22c55e);border-radius:inherit}.top-actions{position:relative;gap:5px;flex:0 0 auto}.round-icon{width:36px;height:36px;display:grid;place-items:center;color:var(--ink-soft);background:transparent;border:0;border-radius:999px}.learner-avatar{gap:6px;min-height:36px;padding:0 4px;color:#111827;background:transparent;border:0;border-radius:6px;font-weight:700;white-space:nowrap}.learner-page{position:relative;z-index:1;height:calc(100vh - 58px);display:grid;grid-template-columns:308px minmax(0,1fr);gap:9px;padding:0 9px 9px;overflow:hidden;background:transparent}.learner-page.settings-mode{height:100vh;grid-template-columns:1fr}.learner-action-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;clip:rect(0 0 0 0);white-space:nowrap}.learner-page.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.learner-page.practice-page,.learner-page.practice-page.sidebar-collapsed{height:100vh;grid-template-columns:minmax(0,1fr);padding:9px}.course-sidebar{min-width:0;display:grid;grid-template-rows:auto auto 1fr auto;gap:7px;padding:12px;overflow:hidden;background:var(--glass);border:1px solid var(--glass-edge);border-radius:8px;box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%)}.sidebar-title{min-height:22px;display:flex;align-items:center;justify-content:space-between;color:var(--ink-soft);font-size:15px;font-weight:700;background:transparent;border:0;box-shadow:none}.catalog-collapse-button{width:28px;height:28px;display:grid;place-items:center;color:var(--accent-strong);border-radius:7px}.course-summary{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;align-items:start}.course-cover{width:74px;height:96px;display:grid;place-items:center;color:#c7d2fe;background:radial-gradient(circle at 62% 30%,rgba(56,189,248,.75),transparent 26%),radial-gradient(circle at 42% 56%,rgba(99,102,241,.85),transparent 34%),#0f172a;border-radius:4px}.course-summary strong{display:block;color:#111827;font-size:14px;line-height:1.28}.course-summary span{display:block;margin-top:8px;color:#6b7280;font-size:12px}.mini-progress{width:100%;height:6px;margin-top:7px}.sidebar-search{height:38px;background:#ffffff9e;border-radius:999px}.catalog-tree{min-height:0;overflow:auto;padding-right:2px}.catalog-course{display:block}.catalog-course-main{width:100%;min-height:40px;display:block;align-items:center;padding:8px 10px;color:var(--ink);border-radius:8px;text-align:left}.catalog-course-main strong{overflow:hidden;font-size:15px;font-weight:800;line-height:1.35;text-overflow:ellipsis;white-space:normal}.catalog-chapters{display:grid;gap:2px;padding-bottom:7px}.catalog-chapter-row{width:100%;min-height:40px;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;padding:8px 11px;color:var(--ink-soft);border-radius:8px;text-align:left}.catalog-chapter-row.level-2{padding-left:9px}.catalog-chapter-row.active{color:var(--accent);background:#0071e314;font-weight:700}.catalog-chapter-row span{display:block;overflow:hidden;font-size:14px;font-weight:600;line-height:1.35;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0}.asset-button{height:38px;display:grid;grid-template-columns:20px minmax(0,1fr) 18px;align-items:center;gap:8px;padding:0 12px;color:#334155;background:#ffffff5c;border:1px solid var(--glass-edge-soft);border-radius:7px;text-align:left}.asset-panel{display:grid;gap:6px;padding:10px 12px;color:#475569;background:#f8fafc70;border:1px solid rgba(203,213,225,.38);border-radius:7px;font-size:12px}.learning-main{min-width:0;display:grid;grid-template-rows:minmax(0,1fr);padding:0;overflow:hidden}.learning-main.lesson-mode{align-content:stretch}.home-main{display:block;overflow:auto;background:transparent}.learner-page.home-mode{height:100vh}.learner-home-page{min-height:100%;display:grid;gap:14px;padding:16px}.learner-home-shell-head{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:9px}.learner-home-brand,.learner-home-actions,.learner-home-actions button{display:flex;align-items:center}.learner-home-brand{gap:10px;color:var(--ink);font-size:18px;font-weight:850}.home-brand-mark{width:48px;height:48px}.learner-home-brand strong{font-size:20px;background:linear-gradient(135deg,#0f172a,#2563eb 42%,#8b5cf6 72%,#fb7185);-webkit-background-clip:text;background-clip:text;color:transparent}.learner-home-actions{gap:10px}.learner-home-actions button{gap:7px;min-height:34px;padding:0 12px;color:var(--ink-soft);background:#ffffff61;border:1px solid var(--glass-edge);border-radius:999px;box-shadow:0 10px 26px -18px #14183c33;cursor:pointer;-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}.learner-home-hero{min-height:300px;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.44fr);align-items:center;gap:20px;padding:42px 48px;overflow:hidden;background:radial-gradient(560px 280px at 78% 34%,rgba(255,255,255,.42),transparent 68%),radial-gradient(520px 260px at 12% 10%,rgba(34,211,238,.18),transparent 66%),radial-gradient(520px 280px at 92% 88%,rgba(251,113,133,.18),transparent 64%),linear-gradient(118deg,#ffffff38 0,#ffffff38 52%,#ede9fe24 52%,#ede9fe24),var(--glass);border:1px solid rgba(100,116,139,.12);border-radius:14px;box-shadow:var(--shadow-lg),inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(24px) saturate(126%);backdrop-filter:blur(24px) saturate(126%);isolation:isolate}.learner-home-hero:before{content:"";position:absolute;right:-8%;bottom:-34%;z-index:-1;width:min(520px,48vw);aspect-ratio:1;background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.66),transparent 18%),radial-gradient(circle at 48% 44%,rgba(96,165,250,.36),transparent 44%),radial-gradient(circle at 58% 62%,rgba(34,197,94,.22),transparent 64%);border:1px solid rgba(255,255,255,.16);border-radius:999px;filter:saturate(125%);animation:hero-orbit 10s ease-in-out infinite alternate}.learner-home-copy{display:grid;justify-items:start;gap:12px}.learner-home-copy>span,.learner-home-current span{color:var(--accent);font-size:13px;font-weight:700}.learner-home-copy h1{max-width:720px;margin:0;color:var(--ink);font-size:clamp(34px,4vw,54px);line-height:1.04;font-weight:850}.hero-title-gradient{background:linear-gradient(135deg,#06b6d4,#2563eb 42%,#8b5cf6 70%,#fb7185);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:inherit;font-weight:inherit;line-height:inherit}.learner-home-copy p{max-width:560px;margin:0;color:var(--ink-soft);font-size:16px;line-height:1.55}.learner-home-current{display:grid;gap:12px;padding:24px;background:linear-gradient(145deg,#ffffff47,#e2e8f021);border:1px solid rgba(100,116,139,.14);border-radius:12px;box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(22px) saturate(126%);backdrop-filter:blur(22px) saturate(126%)}.learner-home-current strong{color:#0f172a;font-size:16px;line-height:1.35}.learner-home-current small{color:#64748b}.home-course-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px}.home-course-toolbar div,.home-course-meta,.home-progress-row{display:flex;align-items:center}.home-course-toolbar div{gap:10px}.home-course-toolbar strong{color:#0f172a;font-size:16px}.home-course-toolbar span{color:#64748b;font-size:13px}.home-course-search{width:min(360px,100%);height:38px;background:#ffffff6b;border-radius:999px}.home-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(276px,1fr));gap:12px;perspective:1200px}.home-course-card{position:relative;min-width:0;overflow:hidden;background:radial-gradient(260px 160px at 18% 0%,rgba(34,211,238,.12),transparent 68%),radial-gradient(300px 180px at 92% 20%,rgba(251,113,133,.1),transparent 68%),var(--glass);border:1px solid var(--glass-edge);border-radius:14px;box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(22px) saturate(124%);backdrop-filter:blur(22px) saturate(124%);transform-style:preserve-3d;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.home-course-card:before{content:none}.home-course-card:hover{border-color:#22c55e47;transform:translateY(-2px);box-shadow:0 22px 48px -34px #0f172a47,0 10px 24px -20px #22c55e33}.home-course-card:active{transform:translateY(-2px) rotateX(.4deg) rotateY(-.4deg)}.home-course-cover{min-height:138px;position:relative;display:flex;align-items:center;justify-content:space-between;padding:18px;color:#fff;background-position:center;background-size:108%;transition:background-size .35s ease,transform .35s ease}.home-course-card:hover .home-course-cover{background-size:116%}.home-course-cover:after{content:"";position:absolute;right:-26px;bottom:-30px;width:118px;height:82px;background:#ffffff29;border:1px solid rgba(255,255,255,.22);border-radius:22px;transform:rotate(-16deg)}.home-course-cover strong{width:56px;height:56px;display:grid;place-items:center;color:#fff;background:#0f172a38;border-radius:8px;font-size:23px}.home-course-cover span{align-self:start;padding:4px 8px;color:#fff;background:#0f172a38;border-radius:999px;font-size:12px;font-weight:700}.course-cover-blue{background:linear-gradient(135deg,#2563eb,#22d3ee 58%,#a7f3d0)}.course-cover-purple{background:linear-gradient(135deg,#7c3aed,#a78bfa 54%,#fb7185)}.course-cover-orange{background:linear-gradient(135deg,#f97316,#fbbf24 54%,#34d399)}.course-cover-cyan{background:linear-gradient(135deg,#0891b2,#22d3ee 58%,#60a5fa)}.course-cover-green{background:linear-gradient(135deg,#059669,#34d399 58%,#facc15)}.course-cover-slate{background:linear-gradient(135deg,#475569,#60a5fa 54%,#c084fc)}.course-cover-image{background-position:center;background-size:cover}.course-cover-image:after{background:#ffffff29}.home-course-body{display:grid;gap:8px;padding:18px 20px 20px}.home-course-body h2{min-height:44px;margin:0;color:#0f172a;font-size:16px;line-height:1.35}.home-course-body p{min-height:38px;margin:0;overflow:hidden;color:#64748b;font-size:13px;line-height:1.45}.home-course-meta{gap:5px;color:#64748b;font-size:12px}.home-progress-row{gap:5px;color:#475569;font-size:12px}.home-progress{width:100%;height:7px;overflow:hidden;background:#e2e8f0b8;border-radius:999px}.home-progress i{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#22d3ee,#2563eb);background-size:180% 100%;border-radius:inherit;animation:progress-flow 2.4s linear infinite}.home-empty-courses{min-height:180px;display:grid;place-items:center;align-content:center;gap:8px;color:#64748b;background:#ffffff57;border:1px dashed rgba(148,163,184,.46);border-radius:8px}.home-empty-courses strong{color:#0f172a}.learner-home-hero,.home-course-card,.course-sidebar,.reader-shell,.practice-list,.ide-workspace,.ai-panel,.runner-output,.lesson-card,.exercise-card,.submission-row,.question-detail-body section,.settings-page,.learner-login-card,.profile-settings-card,.results-summary{position:relative;transition:box-shadow .22s ease,border-color .22s ease,background .22s ease,transform .18s ease}.learner-home-hero,.home-course-card,.course-sidebar,.reader-shell,.practice-list,.ide-workspace,.ai-panel,.settings-page,.learner-login-card,.profile-settings-card,.results-summary{background:linear-gradient(135deg,#f1f5f933,#e2e8f01a);border-color:#64748b26;box-shadow:var(--shadow-md),inset 0 1px #ffffff1f,inset 0 0 0 1px #ffffff09;-webkit-backdrop-filter:blur(12px) saturate(112%);backdrop-filter:blur(12px) saturate(112%)}.learner-home-hero:after,.home-course-card:after,.course-sidebar:after,.reader-shell:after,.practice-list:after,.ide-workspace:after,.ai-panel:after,.settings-page:after,.learner-login-card:after,.profile-settings-card:after,.results-summary:after{content:"";position:absolute;top:0;right:8%;left:8%;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.26),transparent)}.learner-home-hero:hover,.course-sidebar:hover,.reader-shell:hover,.practice-list:hover,.ide-workspace:hover,.ai-panel:hover,.settings-page:hover,.learner-login-card:hover,.profile-settings-card:hover,.results-summary:hover{border-color:#64748b38;box-shadow:0 34px 84px -48px #0f172a57,0 14px 34px -26px #33415529,inset 0 1px #ffffff29}.learner-home-current:hover,.exercise-card:hover,.submission-row:hover,.home-course-toolbar .ant-input-affix-wrapper:hover,.home-course-search:hover{transform:translateY(-1px)}.ai-companion-sprite{position:relative;width:126px;aspect-ratio:1;display:grid;place-items:center;flex:0 0 auto;animation:companion-float 4.4s ease-in-out infinite}button.ai-companion-sprite{padding:0;color:inherit;background:transparent;border:0;cursor:pointer}.ai-companion-interactive{transition:transform .2s ease,filter .2s ease}.ai-companion-interactive:hover,.ai-companion-interactive:focus-visible{animation-play-state:paused;filter:drop-shadow(0 18px 26px rgba(34,197,94,.28));transform:translateY(-8px) rotate(2deg) scale(1.04);outline:none}.ai-companion-interactive:active{transform:translateY(-2px) scale(.98)}.ai-companion-sleepy:before{content:"Zzz";position:absolute;top:-6%;right:0;z-index:4;padding:3px 8px;color:#475569;background:#ffffffad;border:1px solid rgba(148,163,184,.2);border-radius:999px;box-shadow:0 10px 20px -18px #0f172a47;font-size:14px;font-weight:900;letter-spacing:0;animation:zzz-float 2.6s ease-in-out infinite}.ai-companion-awake:before{content:"";display:none}.ai-companion-interactive:hover .ai-companion-spark,.ai-companion-interactive:focus-visible .ai-companion-spark{animation:companion-spark-pop .72s ease-in-out infinite alternate}.ai-companion-awake .ai-companion-orb{box-shadow:0 22px 48px -24px #16a34ac7,inset 0 -12px 20px #14b8a63d}.ai-companion-awake .ai-companion-spark{animation:companion-spark-pop .72s ease-in-out 2 alternate}.ai-companion-large{width:clamp(116px,14vw,156px)}.ai-companion-small{width:34px}.ai-companion-orb{position:absolute;top:8%;right:8%;bottom:8%;left:8%;background:radial-gradient(circle at 35% 24%,rgba(255,255,255,.92) 0 12%,transparent 13%),linear-gradient(145deg,#86efac,#22c55e 45%,#14b8a6);border:1px solid rgba(255,255,255,.72);border-radius:42% 58% 54% 46%/48% 42% 58% 52%;box-shadow:0 18px 42px -26px #16a34ab8,inset 0 -12px 20px #14b8a63d}.ai-companion-face{position:relative;z-index:1;width:48%;display:flex;align-items:center;justify-content:space-between;transform:translateY(-8%)}.ai-companion-face span{width:18%;aspect-ratio:1;display:block;background:#123524;border-radius:999px;box-shadow:0 1px #fff6;animation:companion-blink 5.2s ease-in-out infinite}.ai-companion-sleepy .ai-companion-face span{height:4px;aspect-ratio:auto;border-radius:999px;animation:none}.ai-companion-smile{position:absolute;z-index:1;bottom:34%;left:50%;width:26%;height:14%;border-bottom:3px solid #123524;border-radius:0 0 999px 999px;transform:translate(-50%)}.ai-companion-spark{position:absolute;z-index:2;width:12%;aspect-ratio:1;background:#facc15;clip-path:polygon(50% 0,62% 36%,100% 50%,62% 64%,50% 100%,38% 64%,0 50%,38% 36%);filter:drop-shadow(0 5px 8px rgba(245,158,11,.24))}.ai-companion-spark-a{top:7%;right:12%}.ai-companion-spark-b{bottom:16%;left:5%;width:9%;background:#38bdf8}.learner-home-hero{width:100%;min-height:210px;grid-template-columns:minmax(0,1.2fr) minmax(132px,.38fr) minmax(200px,.56fr);gap:18px;padding:24px 28px;background:linear-gradient(135deg,#ffffff57,#f0fdf42e),#ffffff1a;border:1px solid rgba(100,116,139,.12);border-radius:18px;box-shadow:0 18px 46px -34px #0f172a4d,inset 0 1px #ffffff2e;-webkit-backdrop-filter:blur(10px) saturate(118%);backdrop-filter:blur(10px) saturate(118%)}.learner-home-hero:before{content:none}.learner-home-hero:after{content:none}.learner-home-hero:hover{border-color:#22c55e38;box-shadow:var(--shadow-md)}.learner-home-copy{align-content:center}.home-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:4px}.home-xp-pill{min-height:34px;display:inline-flex;align-items:center;padding:0 12px;color:#166534;background:#dcfce7e6;border:1px solid rgba(34,197,94,.2);border-radius:999px;font-size:13px;font-weight:800}.learner-home-companion{min-width:0;display:grid;justify-items:center;align-content:center;gap:12px}.learner-home-current{align-self:center;padding:16px;background:#ffffff47;border:1px solid rgba(148,163,184,.16);border-radius:14px;box-shadow:0 14px 34px -28px #0f172a47;-webkit-backdrop-filter:blur(8px) saturate(115%);backdrop-filter:blur(8px) saturate(115%)}.learner-home-current span{color:var(--accent-strong)}.learner-home-current:hover{transform:none}.home-reward-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.home-reward-strip>div{min-width:0;display:grid;gap:5px;padding:15px 16px;background:#ffffffdb;border:1px solid var(--panel-line);border-radius:18px;box-shadow:0 14px 34px -30px #0f172a4d}.home-reward-strip strong{color:var(--ink-soft);font-size:12px;font-weight:800}.home-reward-strip span{min-width:0;overflow-wrap:anywhere;color:var(--ink);font-size:16px;font-weight:850}.home-course-grid{perspective:none}.home-course-card{background:#fff;border:1px solid rgba(148,163,184,.2);border-radius:18px;box-shadow:0 18px 42px -34px #0f172a57;-webkit-backdrop-filter:none;backdrop-filter:none;transform-style:flat}.home-course-card:hover{border-color:#22c55e47;transform:translateY(-2px);box-shadow:0 22px 48px -34px #0f172a47,0 10px 24px -20px #22c55e2e}.home-course-card:active{transform:translateY(0)}.home-course-card:after{content:none}.ai-coach-title{min-width:0;display:flex;align-items:center;gap:8px}.ai-coach-title>strong,.ai-coach-title>span{min-width:0;display:grid;gap:1px;line-height:1.1}.ai-coach-title small{color:#16a34a;font-size:11px;font-weight:850}@keyframes companion-float{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}@keyframes companion-blink{0%,45%,52%,to{transform:scaleY(1)}48%,50%{transform:scaleY(.16)}}@keyframes companion-spark-pop{0%{transform:scale(.86) rotate(0)}to{transform:scale(1.2) rotate(14deg)}}@keyframes zzz-float{0%,to{transform:translateY(0);opacity:.72}50%{transform:translateY(-6px);opacity:1}}.learner-home-hero,.reader-shell,.ide-workspace{background-image:linear-gradient(145deg,#ffffff29,#ffffff08),radial-gradient(420px 190px at 16% 0%,rgba(255,255,255,.22),transparent 68%)}.learner-home-hero{background-image:linear-gradient(135deg,#ffffffdb,#f0fdf4bd)}.reader-shell,.practice-shell{min-height:0;height:100%;overflow:hidden;background:transparent;border:0;border-radius:8px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.reader-shell{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);background:linear-gradient(145deg,#f1f5f92e,#e2e8f014);border:1px solid rgba(100,116,139,.13);border-radius:14px;box-shadow:var(--shadow-lg),inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(10px) saturate(112%);backdrop-filter:blur(10px) saturate(112%)}.reader-shell.reader-search-open{grid-template-rows:auto auto auto auto minmax(0,1fr)}.reader-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1800;border-radius:0;box-shadow:none}.reading-companion-fab{position:absolute;right:24px;bottom:24px;z-index:20;display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:6px 12px 6px 8px;color:#0f172a;background:#ffffff8a;border:1px solid rgba(100,116,139,.16);border-radius:999px;box-shadow:0 20px 44px -30px #0f172a5c,inset 0 1px #ffffff47;-webkit-backdrop-filter:blur(14px) saturate(132%);backdrop-filter:blur(14px) saturate(132%);cursor:pointer;font-size:13px;font-weight:850;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.reading-companion-fab:hover{background:#ffffffb8;box-shadow:0 24px 50px -28px #0ea5e957,inset 0 1px #ffffff57;transform:translateY(-2px)}.reading-companion-fab .ai-companion-small{width:30px}.reading-companion-panel{position:absolute;right:24px;bottom:82px;z-index:21;width:min(420px,calc(100% - 48px));height:min(560px,calc(100% - 126px));min-height:360px;display:grid;grid-template-rows:44px minmax(0,1fr) auto;gap:10px;padding:12px;color:#1f2937;background:linear-gradient(145deg,#ffffffa3,#e0f2fe57);border:1px solid rgba(100,116,139,.16);border-radius:16px;box-shadow:0 30px 80px -46px #0f172a70,inset 0 1px #ffffff52;-webkit-backdrop-filter:blur(20px) saturate(142%);backdrop-filter:blur(20px) saturate(142%)}.reading-companion-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(148,163,184,.16)}.reading-companion-head strong{color:#0f172a;font-size:15px}.reading-companion-head button{width:30px;height:30px;display:grid;place-items:center;color:#475569;background:#ffffff70;border:1px solid rgba(148,163,184,.18);border-radius:999px;cursor:pointer}.reading-chat-log{min-height:0;overflow-x:hidden;overflow-y:auto;padding:4px 2px}.reading-chat-empty{height:100%;display:grid;place-items:center;padding:18px;color:#64748b;text-align:center;font-size:13px;line-height:1.5}.reading-chat-log .user-message,.reading-chat-log .assistant-message{max-width:92%}.lesson-header{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 18px;background:linear-gradient(90deg,#ffffff38,#e2e8f01a);border-bottom:1px solid rgba(100,116,139,.1)}.lesson-breadcrumb{min-width:0;gap:8px;color:#667085;font-size:13px}.lesson-breadcrumb strong{overflow:hidden;color:#111827;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Helvetica Neue,sans-serif;font-size:15px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.pdf-toolbar{min-height:50px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:5px 9px;padding:9px 18px;color:var(--ink-soft);background:#ffffff2e;border-bottom:1px solid rgba(100,116,139,.1)}.tool-group{gap:5px;font-size:13px}.tool-group button,.page-input{min-width:42px;height:28px;display:inline-grid;place-items:center;color:var(--ink);background:#ffffff57;border:1px solid rgba(100,116,139,.13);border-radius:8px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tool-group .icon-tool-button{min-width:30px;padding:0}.tool-group .text-tool-button{width:auto;min-width:0;display:inline-flex;align-items:center;gap:6px;padding:0 8px}.tool-group button.active-tool,.tool-group .text-tool-button.active-tool{color:var(--accent-strong);background:var(--accent-soft);border-color:#7dd3fcc7}.tool-group .divider{width:1px;height:22px;background:#dbe3ee}.document-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:4px;align-items:center;padding:10px 18px;background:#fff3;border-bottom:1px solid rgba(100,116,139,.1)}.pdf-stage{min-height:0;overflow:auto;padding:26px 20px 36px;background:radial-gradient(680px 320px at 50% 0%,rgba(255,255,255,.34),transparent 68%),linear-gradient(90deg,#e2e8f01f 0,#f8fafc5c 18%,#f8fafc5c 82%,#e2e8f01f);touch-action:pan-x pan-y}.pdf-stage.pan-mode{cursor:grab;-webkit-user-select:none;user-select:none}.pdf-stage.pan-mode.panning{cursor:grabbing}.pdf-page{width:min(760px,86%);min-height:396px;margin:0 auto;padding:56px 64px;color:#111;background:#ffffffe6;border:1px solid rgba(148,163,184,.22);border-radius:12px;box-shadow:0 28px 70px -48px #0f172a6b,0 8px 24px -20px #0f172a2e;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,PingFang SC,Helvetica Neue,sans-serif;transform-origin:top center}.markdown-body h1{max-width:580px;margin:0 auto 22px;text-align:center;font-family:inherit;font-size:30px;font-weight:760;line-height:1.16;letter-spacing:0;text-transform:none}.markdown-body h2,.markdown-body h3{max-width:660px;margin:18px auto 10px;font-family:inherit;font-weight:740;line-height:1.22;letter-spacing:0;text-transform:none}.markdown-body h2{font-size:22px}.markdown-body h3{font-size:18px}.markdown-body p{max-width:640px;margin:0 auto 10px;font-size:16px;line-height:1.42;white-space:pre-wrap}.markdown-body ul{max-width:640px;margin:0 auto 14px;padding-left:22px;font-size:16px;line-height:1.42}.markdown-body li+li{margin-top:4px}.markdown-search-hit{padding:0 2px;background:#fef08a;border-radius:3px}.markdown-search-hit.current-search-hit{background:#7dd3fc;box-shadow:0 0 0 2px #0ea5e933}.markdown-figure{max-width:640px;margin:18px auto}.markdown-figure img{max-width:100%;display:block;margin:0 auto;border:1px solid #e5e7eb}.markdown-image{max-width:min(100%,640px);display:block;margin:18px auto;border:1px solid #e5e7eb}.practice-shell{position:relative;display:grid;grid-template-columns:minmax(220px,.62fr) minmax(560px,1fr) var(--ai-pane-width, 360px);gap:6px}.practice-list,.ide-workspace,.ai-panel{min-width:0;min-height:0}.practice-list{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;overflow:hidden;background:linear-gradient(145deg,#f1f5f92e,#e2e8f014);border:1px solid rgba(100,116,139,.13);border-radius:14px;box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(22px) saturate(124%);backdrop-filter:blur(22px) saturate(124%)}.question-pane-resizer{position:absolute;top:0;bottom:0;left:var(--question-pane-width, 220px);z-index:7;width:4px;min-width:0;cursor:col-resize;background:transparent;border-right:0;border-left:0;border-radius:999px}.question-pane-resizer:hover,.code-ai-resizer:hover,.practice-shell.resizing-question-pane .question-pane-resizer,.practice-shell.resizing-ai-pane .code-ai-resizer{background:#64748b33}.code-ai-resizer{position:absolute;top:0;bottom:0;right:calc(var(--ai-pane-width, 360px) + 1px);z-index:7;width:4px;min-width:0;cursor:col-resize;background:transparent;border-radius:999px}.practice-shell.resizing-question-pane,.practice-shell.resizing-ai-pane{cursor:col-resize}.practice-heading{min-height:132px;display:grid;align-content:start;gap:5px;padding:12px;background:#ffffff29;border-bottom:1px solid var(--glass-edge-soft);box-shadow:inset 0 1px 0 var(--glass-highlight)}.practice-home-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:40px;padding:3px 10px;color:#0f172a;background:#ffffff47;border:1px solid rgba(100,116,139,.13);border-radius:12px;cursor:pointer;font-size:15px;font-weight:850;text-align:left;box-shadow:inset 0 1px 0 var(--glass-highlight);transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.practice-home-button:hover{background:#ffffff7a;box-shadow:0 10px 24px -16px #2563eb38,inset 0 1px 0 var(--glass-highlight);transform:translateY(-1px)}.practice-home-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-to-lesson-button{align-self:flex-start}.back-to-lesson-button.ant-btn{height:34px;color:#0f172a;background:#ffffff47;border-color:#64748b21;box-shadow:inset 0 1px 0 var(--glass-highlight);font-weight:700}.back-to-lesson-button.ant-btn:hover{background:#ffffff85;border-color:#ffffff7a;transform:translateY(-1px)}.back-to-home-button{align-self:flex-start}.practice-tabs{display:flex;gap:4px;padding-top:3px}.tab-button{min-height:30px;padding:5px 10px;color:#475569;background:#ffffff3d;border:1px solid var(--glass-edge-soft);border-radius:7px;box-shadow:inset 0 1px 0 var(--glass-highlight);font-size:13px}.tab-button.active{color:var(--accent-strong);background:#e0f2fe99;border-color:#7dd3fcb3;font-weight:700}.question-cards{min-width:0;width:100%;overflow:auto;padding:8px;background:#ffffff14;border-top:1px solid rgba(100,116,139,.1)}.submission-list{display:grid;gap:8px}.submission-toolbar{display:flex;justify-content:flex-start}.submission-list>span{color:#667085;font-size:13px}.submission-row{display:flex;flex-direction:column;gap:6px;padding:10px;color:#111827;background:#ffffff57;border:1px solid rgba(203,213,225,.38);border-radius:8px}.submission-row-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.submission-row-header strong{font-size:13px;color:#111827}.submission-status{width:fit-content;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}.submission-status.status-accepted{color:#047857;background:#d1fae5}.submission-status.status-rejected{color:#b42318;background:#fee2e2}.submission-row-header small{color:#667085;font-size:12px}.submission-feedback{margin:0;padding:8px 10px;color:#475569;background:#f8fafcb8;border-radius:6px;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.submission-stdout{margin:0;padding:8px 10px;color:#111827;background:#f1f5f99e;border:1px solid rgba(203,213,225,.46);border-radius:6px;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.submission-row button{width:fit-content;padding:3px 8px;color:#b42318;background:#fee2e2b8;border:1px solid rgba(252,165,165,.72);border-radius:6px;cursor:pointer;font-size:12px}.exercise-card{width:100%;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;gap:8px;margin-bottom:8px;padding:9px;color:#111827;background:#ffffff3d;border:1px solid rgba(100,116,139,.13);border-radius:12px;box-shadow:inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(16px) saturate(122%);backdrop-filter:blur(16px) saturate(122%);text-align:left}.feedback-form,.question-detail-body{display:grid;gap:14px}.feedback-modal .ant-modal-footer{margin-top:24px}.feedback-form .ant-input-textarea-show-count{margin-bottom:18px}.feedback-form label,.question-detail-body section{display:grid;gap:8px;color:#334155;font-size:13px;font-weight:700}.question-detail-body p,.question-detail-body pre{margin:0;padding:11px 12px;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;font-weight:500;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.question-detail-body pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.question-data-file-chips{display:flex;flex-wrap:wrap;gap:8px}.question-data-file-chips span{padding:5px 8px;color:#0369a1;background:#e0f2fe;border:1px solid #bae6fd;border-radius:7px;font-size:12px}.exercise-card.active{border-color:#7dd3fcd1;box-shadow:0 0 0 2px #0ea5e91f}.exercise-index{width:22px;height:22px;display:grid;place-items:center;color:var(--accent-strong);background:var(--accent-soft);border:1px solid rgba(125,211,252,.7);border-radius:6px;font-size:13px;font-weight:700}.exercise-copy{min-width:0}.exercise-copy strong,.exercise-copy small{display:block}.exercise-copy strong{overflow:hidden;font-size:13px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.exercise-copy small{margin-top:4px;color:#667085;font-size:12px;line-height:1.35}.ide-workspace{position:relative;display:grid;grid-template-columns:190px minmax(0,1fr);grid-template-rows:42px minmax(220px,1fr) 132px;background:linear-gradient(145deg,#f1f5f92e,#e2e8f014);border:1px solid rgba(100,116,139,.13);border-radius:14px;box-shadow:var(--shadow-lg),inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(22px) saturate(124%);backdrop-filter:blur(22px) saturate(124%);overflow:hidden}.editor-tabs{grid-column:1 / -1;display:flex;align-items:center;gap:5px;padding:0 10px 0 0;overflow-x:auto;background:#ffffff29;border-bottom:1px solid rgba(100,116,139,.1)}.workspace-title-zone{width:190px;height:100%;display:flex;flex:0 0 190px;align-items:center;justify-content:space-between;gap:4px;padding:0 6px 0 10px;border-right:1px solid rgba(100,116,139,.1)}.workspace-title{display:inline-flex;align-items:center;gap:4px;min-width:0;flex:1;color:#111827;font-size:13px}.workspace-title-actions{display:flex;flex:0 0 auto;align-items:center;gap:3px}.workspace-tree-toggle{width:28px;height:28px;display:grid;place-items:center;color:#64748b;border-radius:7px}.file-tab{flex:0 0 auto;height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;color:#475569;background:#ffffff61;border:1px solid var(--glass-edge);border-radius:8px;font-size:12px}.file-tab.active{color:var(--accent-strong);background:#ffffffad}.editor-tabs button{height:28px;padding:0 8px;color:#475569;border-radius:6px}.editor-actions{flex:0 0 auto;display:flex;gap:4px;margin-left:auto}.ide-body{min-height:0;grid-column:1 / -1;display:grid;grid-template-columns:190px minmax(0,1fr)}.workspace-tree{min-width:0;overflow:auto;padding:10px 8px;border-right:1px solid rgba(100,116,139,.1);background:#ffffff14}.workspace-collapsed .workspace-tree{display:none}.workspace-collapsed .ide-body{grid-template-columns:0 minmax(0,1fr)}.workspace-collapsed .runner-output{grid-column:2}.workspace-group{display:grid;gap:2px;margin-bottom:7px}.workspace-group>span{padding:0 8px 4px;color:#667085;font-size:12px;font-weight:700}.workspace-file{min-width:0;height:30px;display:flex;align-items:center;gap:4px;width:100%;padding:0 8px;color:#344054;border-radius:6px;font-size:12px;text-align:left}.workspace-file span{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.workspace-file svg{flex:0 0 auto;color:#667085}.workspace-file-row{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;border-radius:6px}.workspace-file-row.active{color:var(--ink);background:#0071e314;font-weight:700}.workspace-file-row.active .workspace-file svg{color:var(--accent-strong)}.workspace-delete-button{width:26px;height:26px;display:grid;place-items:center;color:#98a2b3;border-radius:6px}.workspace-delete-button:hover{color:#dc2626;background:#fee2e2}.editor-pane{grid-column:2;min-width:0;min-height:0;display:grid;grid-template-rows:30px minmax(0,1fr);overflow:hidden;background:#f8fafc}.editor-pane .monaco-editor,.editor-pane .monaco-editor-background,.editor-pane .monaco-editor .margin{background-color:#f8fafc!important}.active-file-bar{display:flex;align-items:center;padding:0 12px;color:#475569;border-bottom:1px solid #e2e8f0;background:#f1f5f9;font-size:12px}.runner-output{position:relative;grid-column:2;justify-self:stretch;overflow:hidden;border-top:1px solid var(--glass-edge-soft);border-left:1px solid var(--glass-edge-soft);background:#f8fafcb8}.console-resize-handle{position:absolute;top:-2px;right:0;left:0;z-index:3;height:5px;cursor:row-resize;background:transparent}.console-resize-handle:hover,.runner-output.resizing .console-resize-handle{background:linear-gradient(180deg,transparent 0 1px,rgba(14,165,233,.48) 1px 4px,transparent 4px)}.output-tabs{height:34px;display:flex;align-items:center;gap:12px;padding:0 12px;color:#64748b;background:#f1f5f9;border-bottom:1px solid #e2e8f0;font-size:12px}.output-tabs .active{color:#0f172a;font-weight:700}.output-tabs small{margin-left:auto}.console-actions{display:flex;align-items:center;gap:4px}.console-actions button{width:26px;height:24px;display:grid;place-items:center;color:#475569;border-radius:6px}.runner-output pre{height:calc(100% - 34px);min-height:0;max-height:none;margin:0;padding:10px 14px;overflow:auto;color:#0f172a;background:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.55}.ai-panel{display:grid;grid-template-rows:42px 1fr auto auto auto;padding:0 12px 10px;background:linear-gradient(145deg,#f1f5f92e,#e2e8f014);border:1px solid rgba(100,116,139,.13);border-radius:14px;box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(22px) saturate(124%);backdrop-filter:blur(22px) saturate(124%)}.ai-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--glass-edge-soft)}.ai-heading strong{gap:7px;font-size:15px}.ai-heading svg{color:var(--accent)}.ai-heading button{height:26px;padding:0 9px;color:#475569;background:#ffffff8f;border:1px solid rgba(203,213,225,.58);border-radius:6px;font-size:12px}.chat-log{min-height:0;overflow-x:hidden;overflow-y:auto;padding:14px 0}.user-message,.assistant-message{min-width:0;max-width:88%;overflow-wrap:anywhere;margin-bottom:14px;padding:11px 13px;border-radius:9px;font-size:13px;line-height:1.58}.user-message{margin-left:auto;color:#344054;background:#e0f2fe7a}.assistant-message{color:#1f2937;background:#ffffff75;border:1px solid var(--glass-edge-soft)}.assistant-reasoning{display:grid;gap:7px;margin-bottom:8px;color:#8a94a6}.assistant-reasoning-toggle{width:fit-content;min-height:24px;display:inline-flex;align-items:center;gap:7px;padding:0;color:#8a94a6;background:transparent;border:0;cursor:pointer;font-size:12px;font-weight:700}.assistant-reasoning-toggle i{width:6px;height:6px;background:#94a3b8;border-radius:999px;animation:thinking-pulse 1s ease-in-out infinite}.assistant-reasoning-stream{max-height:none;overflow:visible;padding:4px 0 2px;color:#8a94a6;background:transparent;border:0;border-radius:0}.assistant-reasoning-stream .chat-markdown,.assistant-reasoning-stream .chat-markdown h4,.assistant-reasoning-stream .chat-markdown h5,.assistant-reasoning-stream .chat-markdown code{color:#8a94a6}.assistant-reasoning-stream .chat-code-block,.assistant-reasoning-stream .chat-code-block code{color:#8a94a6;background:#f8fafc}.assistant-reasoning-collapsed{margin-bottom:4px}@keyframes thinking-pulse{0%,to{opacity:.35;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}.chat-markdown{min-width:0;max-width:100%;display:grid;gap:7px}.chat-markdown p,.chat-markdown ul,.chat-markdown ol,.chat-markdown h4,.chat-markdown h5{margin:0}.chat-markdown h4,.chat-markdown h5{color:#0f172a;font-size:13px;font-weight:800}.chat-markdown ul,.chat-markdown ol{padding-left:18px}.chat-markdown li+li{margin-top:4px}.chat-markdown a{color:var(--accent);font-weight:700}.chat-markdown blockquote{margin:0;padding:8px 10px;color:#64748b;background:#f8fafcc2;border-left:3px solid rgba(0,113,227,.28);border-radius:7px}.chat-markdown-table{width:100%;overflow:hidden;border-collapse:collapse;border:1px solid rgba(203,213,225,.72);border-radius:7px;font-size:12px}.chat-markdown-table th,.chat-markdown-table td{padding:7px 8px;border:1px solid rgba(203,213,225,.58);text-align:left;vertical-align:top}.chat-markdown-table th{color:#0f172a;background:#f1f5f9db;font-weight:800}.chat-markdown code{padding:1px 4px;border-radius:4px;background:#0f172a14;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.chat-code-block{max-width:100%;overflow-x:hidden;overflow-y:auto;margin:0;padding:34px 10px 10px;border:1px solid rgba(203,213,225,.9);border-radius:7px;background:#f1f5f9}.editor-pane,.editor-pane .monaco-editor,.editor-pane .monaco-editor-background,.editor-pane .monaco-editor .margin,.runner-output pre,.chat-code-block{background-color:#f8fafc!important}.chat-code-block code{padding:0;color:#1e293b;background:transparent;white-space:pre-wrap;overflow-wrap:anywhere}.chat-code-shell{position:relative;min-width:0}.chat-code-copy{position:absolute;top:6px;right:6px;z-index:1;height:24px;display:inline-flex;align-items:center;gap:4px;padding:0 7px;color:#475569;background:#ffffffd6;border:1px solid rgba(203,213,225,.86);border-radius:6px;cursor:pointer;font-size:11px;font-weight:800}.chat-code-copy:hover{color:var(--accent-strong);background:#fff;transform:translateY(-1px)}.ai-quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.ai-quick-actions button{height:34px;color:var(--accent-strong);background:#ffffff8f;border:1px solid rgba(203,213,225,.58);border-radius:7px;font-size:12px;font-weight:700}.ai-disclaimer{display:block;padding-top:8px;color:#98a2b3;text-align:center}.add-menu-wrapper{position:relative}.add-menu-trigger{height:28px;padding:0 8px;color:#475569;border-radius:6px;font-weight:700;font-size:15px;transition:background .18s ease,color .18s ease}.add-menu-trigger:hover{color:var(--accent-strong);background:var(--accent-soft)}.add-menu-dropdown{position:fixed;z-index:10000;min-width:152px;padding:4px;background:#ffffff6b;border:1px solid var(--glass-edge);border-radius:8px;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(28px) saturate(190%);backdrop-filter:blur(28px) saturate(190%)}.add-menu-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;color:#334155;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:13px;text-align:left;transition:background .15s ease}.add-menu-dropdown button:hover{color:var(--accent-strong);background:var(--accent-soft)}.workspace-folder-header{display:flex;align-items:center;gap:6px;width:100%;padding:2px;color:#475569;background:transparent;border-radius:6px;font-size:12px;font-weight:600;text-align:left;transition:background .15s ease,color .15s ease}.workspace-folder-header:hover{background:#ffffff5c}.workspace-folder-toggle{min-width:0;height:28px;display:flex;flex:1;align-items:center;gap:6px;padding:0 6px;color:#475569;border-radius:6px;text-align:left}.workspace-folder-toggle span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-folder-action{display:grid;place-items:center;width:22px;height:22px;color:#98a2b3;background:transparent;border:none;border-radius:4px;cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease}.workspace-folder-header:hover .workspace-folder-action{opacity:1}.workspace-folder-action:hover{color:var(--accent-strong);background:var(--accent-soft)}.workspace-folder-delete:hover{color:#dc2626;background:#fee2e2}.workspace-context-menu{position:fixed;z-index:2000;min-width:120px;padding:4px;background:#fff;border:1px solid rgba(203,213,225,.78);border-radius:8px;box-shadow:0 8px 24px #0f172a24}.workspace-context-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;color:#334155;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:12px;text-align:left;transition:background .15s ease}.workspace-context-menu button:hover{color:var(--accent-strong);background:var(--accent-soft)}.workspace-context-menu .context-menu-delete:hover{color:#dc2626;background:#fee2e2}.workspace-rename-input{width:100%;height:30px;padding:0 8px;color:#111827;background:#fff;border:1px solid var(--accent);border-radius:6px;font-size:12px;outline:none;box-shadow:0 0 0 2px #0ea5e926}.top-icon-button,.round-icon,.editor-tabs button,.console-actions button,.tab-button,.asset-button,.ai-quick-actions button,.workspace-file-row,.exercise-card{transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .12s ease}.round-icon,.top-icon-button{box-shadow:0 1px 2px #0f172a0d}.round-icon:hover,.top-icon-button:hover{box-shadow:0 2px 6px #0f172a1a}.exercise-card{box-shadow:0 1px 3px #0f172a0a,inset 0 1px #ffffff94}.exercise-card:hover{background:#ffffff5c;box-shadow:0 14px 30px -22px #0f172a4d,inset 0 1px #ffffff57;transform:translateY(-1px)}.exercise-card.active:hover{transform:none}.ai-quick-actions button{box-shadow:0 1px 2px #0f172a0a}.ai-quick-actions button:hover{box-shadow:0 2px 6px #0f172a14;transform:translateY(-1px)}.workspace-file-row:hover{background:#f1f5f99e}.asset-button:hover{box-shadow:0 2px 6px #0f172a14}.editor-tabs button:hover,.console-actions button:hover,.tab-button:hover{box-shadow:0 1px 4px #0f172a0f}.learner-page .ant-btn,.learner-login-card .ant-btn,.feedback-modal .ant-btn,.learner-home-actions button,.practice-home-button,.course-picker,.learner-avatar,.top-icon-button,.round-icon,.catalog-collapse-button,.asset-button,.tool-group button,.tab-button,.exercise-card,.submission-row button,.editor-tabs button,.ai-heading button,.ai-quick-actions button,.console-actions button,.add-menu-dropdown button,.workspace-context-menu button{box-shadow:var(--button-3d-shadow);transition:transform .14s ease,box-shadow .14s ease,background .16s ease,border-color .16s ease,color .16s ease}.learner-page .ant-btn-primary,.learner-login-card .ant-btn-primary,.feedback-modal .ant-btn-primary,.home-course-body .ant-btn-primary,.lesson-header .ant-btn-primary{color:#fff;background:linear-gradient(135deg,#06b6d4,#2563eb 52%,#8b5cf6);border-color:#2563ebc7;box-shadow:var(--button-primary-3d-shadow)}.learner-page .ant-btn-primary:hover,.learner-login-card .ant-btn-primary:hover,.feedback-modal .ant-btn-primary:hover,.home-course-body .ant-btn-primary:hover,.lesson-header .ant-btn-primary:hover{background:linear-gradient(135deg,#22d3ee,#3b82f6 48%,#a855f7 78%,#fb7185)}.learner-page .ant-btn:hover,.learner-login-card .ant-btn:hover,.feedback-modal .ant-btn:hover,.learner-home-actions button:hover,.practice-home-button:hover,.course-picker:hover,.learner-avatar:hover,.top-icon-button:hover,.round-icon:hover,.catalog-collapse-button:hover,.asset-button:hover,.tool-group button:hover,.tab-button:hover,.exercise-card:hover,.submission-row button:hover,.editor-tabs button:hover,.ai-heading button:hover,.ai-quick-actions button:hover,.console-actions button:hover,.add-menu-dropdown button:hover,.workspace-context-menu button:hover{box-shadow:var(--button-3d-shadow-hover);transform:translateY(-1px)}.learner-page .ant-btn:active,.learner-login-card .ant-btn:active,.feedback-modal .ant-btn:active,.learner-home-actions button:active,.practice-home-button:active,.course-picker:active,.learner-avatar:active,.top-icon-button:active,.round-icon:active,.catalog-collapse-button:active,.asset-button:active,.tool-group button:active,.tab-button:active,.exercise-card:active,.submission-row button:active,.editor-tabs button:active,.ai-heading button:active,.ai-quick-actions button:active,.console-actions button:active,.add-menu-dropdown button:active,.workspace-context-menu button:active{box-shadow:var(--button-3d-shadow-active);transform:translateY(2px)}.tab-button.active,.exercise-card.active,.tool-group button.active-tool,.tool-group .text-tool-button.active-tool{box-shadow:0 14px 28px -20px #0e74905c,inset 0 1px #ffffff75}@keyframes hero-orbit{0%{transform:translate3d(-1%,1%,0) scale(.98)}to{transform:translate3d(2%,-2%,0) scale(1.04)}}@keyframes progress-flow{0%{background-position:0 0}to{background-position:180% 0}}@media(prefers-reduced-motion:reduce){.learner-home-hero:before,.home-progress i,.ai-companion-sprite,.ai-companion-face span{animation:none!important}.home-course-card,.exercise-card,.learner-page button,.learner-page .ant-btn{transition:none!important}}.learner-page .ant-btn:disabled,.learner-login-card .ant-btn:disabled,.feedback-modal .ant-btn:disabled,.learner-page button:disabled{box-shadow:inset 0 1px #ffffff6b;transform:none}.learner-topbar .course-picker,.learner-topbar .learner-avatar,.learner-topbar .top-icon-button,.learner-topbar .round-icon{background:transparent;border-color:transparent;box-shadow:none;transform:none}.learner-topbar .course-picker:hover,.learner-topbar .learner-avatar:hover,.learner-topbar .top-icon-button:hover,.learner-topbar .round-icon:hover,.learner-topbar .course-picker:active,.learner-topbar .learner-avatar:active,.learner-topbar .top-icon-button:active,.learner-topbar .round-icon:active{color:var(--accent-strong);background:transparent;box-shadow:none;transform:none}.objective-workspace{min-width:0;min-height:0;display:flex;align-items:stretch}.objective-card{width:100%;min-height:0;display:flex;flex-direction:column;gap:16px;padding:22px;overflow:auto;border-radius:26px;border:1px solid rgba(148,163,184,.18);background:linear-gradient(145deg,#ffffffb3,#ffffff61),radial-gradient(circle at 16% 12%,rgba(125,211,252,.24),transparent 32%),radial-gradient(circle at 88% 8%,rgba(251,191,36,.18),transparent 28%);box-shadow:0 22px 56px -34px #2563eb6b,inset 0 1px #ffffff9e;-webkit-backdrop-filter:blur(18px) saturate(1.12);backdrop-filter:blur(18px) saturate(1.12)}.objective-card-header,.objective-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.objective-card-header span{color:#64748b;font-size:13px;font-weight:700}.objective-card h2{margin:0;color:#0f172a;font-size:24px;line-height:1.25;letter-spacing:0}.objective-card p{margin:0;color:#334155;font-size:15px;line-height:1.75}.objective-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.objective-option{display:flex;align-items:center;gap:12px;min-height:58px;padding:12px 14px;border:1px solid rgba(148,163,184,.22);border-radius:18px;background:#ffffff7a;color:#1e293b;text-align:left;cursor:pointer;box-shadow:0 12px 28px -22px #0f172a6b,inset 0 1px #ffffff9e;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.objective-option:hover,.objective-option.selected{transform:translateY(-2px);border-color:#3b82f66b;background:#eff6ffc2;box-shadow:0 18px 36px -24px #2563eb85,inset 0 1px #ffffffc2}.objective-option span{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;flex:0 0 auto;border-radius:999px;background:#ffffffa6;color:#2563eb}.objective-answer-block{display:grid;gap:8px}.objective-answer-block label{color:#334155;font-weight:800}.objective-format-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.objective-format-grid section{padding:14px;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:#ffffff6b}.objective-format-grid strong{display:block;margin-bottom:6px;color:#0f172a}@media(max-width:1280px){.top-progress{display:none}.practice-shell{grid-template-columns:240px minmax(460px,1fr) var(--ai-pane-width, 340px)}}@media(max-width:920px){.learner-login-page{padding:14px}.learner-login-shell{grid-template-columns:1fr;padding:18px}.login-panels{grid-column:auto;grid-row:auto}.learner-page,.learner-page.sidebar-collapsed{height:auto;grid-template-columns:1fr;overflow:visible}.app-shell{overflow:auto}.course-sidebar,.learning-main,.practice-shell{display:block}.question-pane-resizer,.code-ai-resizer{display:none}.learning-main{overflow:visible}.reader-shell,.practice-shell{margin-bottom:12px}.learner-home-page{padding:14px}.learner-home-hero{grid-template-columns:1fr;width:100%;min-height:auto;padding:20px 18px;gap:14px}.learner-home-companion{order:-1;justify-items:start;grid-template-columns:auto minmax(0,1fr)}.home-reward-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.learner-home-copy h1{font-size:24px}.home-course-toolbar{align-items:flex-start;flex-direction:column}}@media(max-width:620px){.home-reward-strip{grid-template-columns:1fr}}
