*{margin:0;padding:0;border:none}.infoText{color:#0d22809f;font-size:24px;font-family:source-han-sans-cjk-hk,sans-serif;font-weight:500;font-style:normal;-webkit-user-select:none;user-select:none}.handWriteText{color:#0000008f;font-family:wenwriting-monospaced,sans-serif;font-weight:600;font-style:normal;-webkit-user-select:none;user-select:none}.titleText{color:#143180;font-family:source-han-sans-cjk-hk,sans-serif;font-weight:900;font-style:normal;font-size:38px;-webkit-user-select:none;user-select:none}::-webkit-scrollbar{display:block;width:8px}::-webkit-scrollbar-track{background:none;border-radius:25px;height:90%}::-webkit-scrollbar-thumb{background:#383838fa;border-radius:25px;border:1px solid white}::-webkit-scrollbar-thumb:hover{background:#1d1d1dea}.tag{-webkit-user-select:none;user-select:none;display:inline-block;background-color:#ffffff70;padding:5px 13px;border:2px solid rgb(255,255,255);border-radius:50px;margin:5px;transition:all .5s;font-size:clamp(1px,.8rem,20px)}.tag:hover{-webkit-user-select:none;user-select:none;background-color:#ffffff27;border:2px solid rgba(255,255,255,.815);transition:all .2s}.tagFont{color:#0170b1;font-family:source-han-sans-cjk-hk,sans-serif;font-weight:400;font-style:normal;font-size:clamp(1px,.8rem,20px)}.cookieGate{min-height:100vh;display:grid;place-items:center;padding:24px;background:#151515;box-sizing:border-box}.cookieGateCard{width:min(620px,100%);border-radius:18px;padding:32px;background:#fff;color:#0f172a;box-shadow:0 24px 70px #0006}.cookieGateCard h1{margin:0 0 14px;font-size:30px}.cookieGateCard p{margin:0 0 14px;color:#475569;font-size:16px;line-height:1.55}.cookieGateUser{font-weight:900}.cookieGateError{margin:14px 0;padding:10px 12px;border-radius:8px;background:#fee2e2;color:#991b1b}.cookieGateActions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.cookieGateActions button{min-height:44px;border:0;border-radius:10px;padding:0 18px;font-weight:900;cursor:pointer}.cookieGateActions button:first-child{background:#e5e7eb;color:#0f172a}.cookieGateActions button:last-child{background:#1f6dff;color:#fff}.cookieGateActions button:disabled{opacity:.6;cursor:not-allowed}.menuShell{--sidebar-w: 178px;display:grid;grid-template-columns:var(--sidebar-w) 20px 1fr;min-height:100vh;background:#fff7ed;transition:grid-template-columns .32s ease}.menuShell.collapsed{--sidebar-w: 0px}.mainSidebar{grid-column:1;position:sticky;top:0;height:100vh;overflow:hidden;background:#fffaf3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:10px 0 30px #7c2d1214;padding:16px 10px;display:grid;grid-template-rows:auto 1fr;border-right:1px solid #fed7aa;z-index:3;transform:translate(0);transition:transform .32s ease,padding .2s ease,border .2s ease,box-shadow .2s ease,background .2s ease}.brandLogo{width:48px;margin:0 auto 18px}.menuShell.collapsed .mainSidebar{transform:translate(-100%);padding:0;border-right:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;pointer-events:none}.sideMenuIcon{color:#fff;width:50px;height:30px;margin:-5px 5px}.brand{width:44px;height:44px;border-radius:12px;background:#0ea5e9;color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:1px;margin-bottom:10px;box-shadow:0 6px 18px #0ea5e959}.sideNav{display:flex;flex-direction:column;gap:6px}.sideBtn{text-align:left;font-size:14px;max-height:none;padding:10px 12px;margin:4px 0;border-radius:12px;border:0;background-color:transparent;color:#9a3412;cursor:pointer;font-weight:900;position:relative;transition:all .2s ease}.sideBtn:hover{transform:translateY(-1px);padding-left:12px;font-size:14px;color:#c2410c;background-color:#ffedd5;box-shadow:0 8px 20px #fb923c1f;transition:all .2s ease}.sideBtn.active{background-color:#fb923c;color:#fff;box-shadow:0 8px 20px #fb923c38}.collapseBtn{margin-top:14px;padding-left:0;width:34px;height:34px;border-radius:10px;border:1px solid #fed7aa;background-color:#fffaf3;cursor:pointer;color:#c2410c;font-size:24px;text-shadow:0 1px 10px rgba(252,252,252,0);text-align:middle;transition:all .2s ease}.collapseBtn:hover{padding-left:0;transition:all .2s ease}.gutter{grid-column:2;position:sticky;top:0;height:100vh;display:grid;align-content:start;justify-items:center;padding-top:16px;background:transparent;z-index:4}.content{padding:28px 24px 56px;display:grid;gap:28px}.content>*{max-width:1320px;margin:0 auto}.menuUnreadDot,.adminUnreadDot{width:10px;height:10px;display:inline-block;border-radius:999px;background:#ef4444;box-shadow:0 0 0 3px #ef444429}.hero{--hero-h: 520px;position:relative;display:flow-root;cursor:pointer;width:100%;height:var(--hero-h);border-radius:22px;box-shadow:0 18px 60px #00000026;overflow:hidden}.hero .slideWrap{position:absolute;inset:0;z-index:1;pointer-events:none}.slideImg{width:100%;height:100%;display:block;object-fit:cover;object-position:center;animation:slide-fade .8s ease}@keyframes slide-fade{0%{opacity:0;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.hero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#ffffffa6,#ffffff59)}.heroTop{position:relative;z-index:2;background:#ffffff8f;border-radius:22px;padding:24px 26px;margin:20% 24px;max-width:760px;box-shadow:0 18px 60px #00000026;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:all .5s ease}.hero:active .slideImg{object-fit:contain}.hero:active .heroTop{margin-left:-800px;transition:all .5s ease}.heroTitle{font-size:60px;text-shadow:0 1px 10px rgba(255,255,255,.644);color:#2b2b2b}.joinTimeText{font-size:30px;font-weight:bolder}.dots{position:absolute;left:0;right:0;bottom:14px;display:flex;gap:8px;justify-content:center;z-index:2;pointer-events:auto}.joinTimeText{font-size:20px}.hero .infoText{color:#000000a6}.hero.withSlides{grid-template-columns:1fr;grid-template-rows:1fr}@media (max-width: 980px){.hero{--hero-h: 460px}}@media (max-width: 720px){.hero{--hero-h: 380px}}.dot{width:9px;height:9px;border-radius:999px;background:#ffffff8c;border:2px solid rgba(0,0,0,.2);cursor:pointer}.dot.active{background:#fff;border-color:#ffffff80;box-shadow:0 0 5px 1px #000}.gridWrap{padding:4px 0 10px}.courseGrid{display:grid;grid-template-columns:repeat(3,minmax(200px,400px));gap:10px}.courseCard{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:16px;overflow:hidden;border:3px solid rgba(255,255,255,.712);transition:transform .12s ease,box-shadow .2s ease}.courseCard:hover{transform:translateY(-2px);box-shadow:0 24px 60px #27272738}.courseCover{height:220px;background:linear-gradient(135deg,#bae6fd,#e9d5ff);background-size:cover;background-position:center}.meta{background-color:#fff;padding:12px 14px 14px;display:grid;box-shadow:0 -5px 30px 1px #0c4497;gap:10px}.title{color:#5c5c5c;font-weight:700;font-size:clamp(10px,1.6vw,30px);line-height:1.25;text-overflow:ellipsis}.progressRow{color:#474747;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.bar{height:10px;border-radius:999px;overflow:hidden;background:#ffedd5;border:2px solid #fed7aa}.fill{height:100%;width:0%;background:#f97316;transition:width .3s ease}.pct{color:#8b8b8b;font-size:25px}.tiny{color:#444;font-size:20px}@media (max-width: 1100px){.courseGrid{grid-template-columns:repeat(2,minmax(260px,1fr))}}@media (max-width: 720px){.menuShell{grid-template-columns:0 1fr}.courseGrid{grid-template-columns:1fr}}@media (max-width: 895px){.menuShell{grid-template-columns:1fr!important}.gutter{display:none!important}.hamburgerBtn{position:fixed;top:14px;left:14px;z-index:50;width:42px;height:42px;border-radius:10px;border:2px solid #e5e7eb;background:#fff;font-size:22px;font-weight:800;line-height:1;display:grid;place-items:center;box-shadow:0 4px 14px #00000026}.mainSidebar{position:fixed;inset:0 auto 0 0;width:min(78vw,320px);max-width:90vw;height:100vh;transform:translate(-100%);transition:transform .26s ease;z-index:60;pointer-events:auto}.menuShell.mobile-show .mainSidebar .sideNav,.menuShell.mobile-show .mainSidebar .sideBtn{pointer-events:auto}.menuShell.mobile-show .mainSidebar{overflow-y:auto}.menuShell.mobile-show .mainSidebar{transform:translate(0)}.scrim{position:fixed;inset:0;background:#00000073;z-index:55;animation:scrim-in .16s ease}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}.content{padding-top:64px}.courseGrid{grid-template-columns:1fr!important}.hero{--hero-h: 360px}.heroTop{height:200px}.heroTitle{font-size:clamp(1px,2rem,30px)}.heroTop .infoText{font-size:clamp(1px,1.2rem,30px)}}@media (min-width: 895px){.hamburgerBtn{display:none}}.courseCard.locked{opacity:.35;cursor:not-allowed}.courseCard.locked:hover{transform:none}.studentHomeGrid{width:min(1320px,100%);display:grid;grid-template-columns:260px minmax(0,1fr);grid-template-areas:"hero hero" "side courses" "side recent";gap:18px}.studentHero,.studentHomeGrid .gridWrap,.recentPanel,.studentSideInfo{border:1px solid rgba(226,232,240,.85);background:#fffffff0;border-radius:18px;box-shadow:0 16px 42px #0f172a14}.studentHero{grid-area:hero;min-height:270px;position:relative;overflow:hidden}.studentHero .slideWrap{position:absolute;inset:0;z-index:1;pointer-events:none}.studentHero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#ffffffeb,#ffffff80)}.studentHero .slideImg{width:100%;height:100%;object-fit:cover}.studentHero .heroTop{position:relative;z-index:2;max-width:660px;margin:0;padding:28px 32px;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.studentHero .heroTitle{margin:10px 0;color:#7c2d12;font-size:clamp(34px,5vw,58px);line-height:1.05;text-shadow:none}.studentHero .continueBtn{display:none}.continueBtn{margin-top:22px;min-height:44px;border:0;border-radius:10px;padding:0 28px;background:linear-gradient(135deg,#fb923c,#f97316);color:#fff;font-weight:900;cursor:pointer}.continueBtn.wide{width:100%}.continueBtn:disabled,.continueBtn.disabled{background:#d1d5db;color:#6b7280;box-shadow:none;cursor:not-allowed}.studentFollowInfo{width:100%;display:grid;gap:7px;padding:12px;border:1px solid #fed7aa;border-radius:12px;background:#fff7ed;color:#4b5563;text-align:left}.studentFollowInfo span{color:#9a3412;font-size:12px;font-weight:900}.studentFollowInfo b{color:#374151;font-size:14px}.studentFollowInfo a{overflow:hidden;color:#c2410c;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.studentFollowInfo button{width:fit-content;border:0;border-radius:8px;padding:7px 10px;background:#f97316;color:#fff;font-weight:900;cursor:pointer}.studentSideInfo{grid-area:side;display:grid;justify-items:center;align-content:start;gap:12px;padding:22px 18px}.studentProfileIcon{width:86px;height:86px;display:grid;place-items:center;border-radius:999px;color:#fff;font-size:34px;font-weight:900;box-shadow:0 0 0 10px #fb923c29}.studentSideInfo h2,.studentSideInfo p{margin:0}.studentSideInfo h2{color:#7c2d12;font-size:26px}.studentSideInfo p{color:#64748b}.sideProgressLabel{width:100%;margin-top:22px;color:#9a3412;font-weight:900}.sideDonut{width:170px;height:170px;display:grid;place-items:center;border-radius:999px}.sideDonut>div{width:126px;height:126px;display:grid;place-items:center;border-radius:999px;background:#fff;text-align:center}.sideDonut b{display:block;color:#9a3412;font-size:34px}.sideDonut span{display:block;color:#64748b;font-size:13px}.studentHomeGrid .gridWrap{grid-area:courses;min-width:0;padding:16px 16px 6px}.sectionTitle,.recentHeader h2{margin:0 0 12px;color:#9a3412;font-size:20px}.courseRail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:16px;overflow-x:auto;padding:0 2px 14px;scroll-snap-type:x mandatory}.courseRail .courseCard{min-width:260px;position:relative;border:1px solid #e5e7eb;border-radius:12px;background:#fff;scroll-snap-align:start}.courseRail .courseCover{height:155px}.courseRail .meta{padding:12px 48px 14px 14px;box-shadow:none}.courseRail .title{color:#9a3412;font-size:15px}.courseRail .pct{font-size:15px}.courseArrow{position:absolute;right:14px;bottom:16px;width:34px;height:34px;border:1px solid #fed7aa;border-radius:999px;background:#fff;color:#c2410c;font-size:24px;cursor:pointer}.recentPanel{grid-area:recent;min-width:0;padding:16px}.recentRail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.recentCard{min-width:0;border:0;background:transparent;padding:0;text-align:left;cursor:pointer}.recentCover{height:96px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,#fde68a,#ddd6fe);background-position:center;background-size:cover}.recentCover span{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:#0f172ab8;color:#fff}.recentCard b,.recentCard small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recentCard b{margin-top:10px;color:#9a3412}.recentCard small,.recentEmpty{color:#64748b}@media (max-width: 1100px){.studentHomeGrid{grid-template-columns:1fr;grid-template-areas:"hero" "side" "courses" "recent"}.recentRail{grid-template-columns:repeat(2,minmax(0,1fr))}}.menuShell,.menuShell.collapsed,.menuShell.open{--sidebar-w: 178px;grid-template-columns:20px minmax(0,1fr)}.mainSidebar{position:fixed;left:0;top:0;width:var(--sidebar-w)}.menuShell.open .mainSidebar{transform:translate(0);padding:16px 10px;border-right:1px solid #fed7aa;background:#fffaf3;pointer-events:auto}.gutter{grid-column:1}.content{grid-column:2;color:#374151}.studentHero .joinTimeText,.studentHero .heroSub,.studentHero .heroMeta,.studentHero .continueBtn{display:none}.studentInfoSummary{width:100%;display:grid;gap:8px;padding:12px;border-radius:12px;background:#fff7ed;color:#374151}.studentInfoSummary p,.studentInfoSummary .heroMeta,.studentInfoSummary .joinTimeText{margin:0;color:#4b5563;font-size:13px;line-height:1.45}.studentInfoSummary b{color:#c2410c}.courseRail{scroll-behavior:smooth;scrollbar-color:#fb923c #ffedd5;scrollbar-width:thin;overscroll-behavior-x:contain}.studentHomeGrid,.studentHomeGrid .gridWrap,.recentPanel,.studentSideInfo{color:#374151}.courseCard:hover{box-shadow:0 18px 42px #f973162e}@media (max-width: 895px){.menuShell.mobile-show .mainSidebar{z-index:80;transform:translate(0)!important;pointer-events:auto!important;overflow-y:auto}.menuShell.mobile-show .sideNav,.menuShell.mobile-show .sideBtn{pointer-events:auto!important}.menuShell.mobile-show .scrim{z-index:70}}.loginShell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#151515;color:#fff;padding:36px 24px 26px;position:relative}.loginLeft{position:relative;display:grid;place-items:center;border:0;background-repeat:no-repeat;background-position:center;background-size:cover;overflow:hidden;cursor:pointer}.loginCarouselArrow{position:absolute;top:50%;z-index:2;width:42px;height:54px;display:grid;place-items:center;border-radius:999px;background:#00000080;color:#fff;font-size:36px;line-height:1;transform:translateY(-50%)}.loginCarouselArrow.left{left:16px}.loginCarouselArrow.right{right:16px}.loginBox{display:grid;grid-template-columns:minmax(360px,630px) minmax(320px,410px);width:min(1044px,82vw);min-height:410px;border-radius:18px;overflow:hidden;box-shadow:0 24px 70px #0000006b;background:#050505}.loginRight{display:grid;align-content:center;padding:38px 36px;background:#020202}.loginMediaViewer{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:32px;background:#000000e0}.loginMediaViewer img{max-width:min(1180px,92vw);max-height:88vh;object-fit:contain;box-shadow:0 20px 80px #0000008c}.loginViewerClose,.loginViewerArrow{position:fixed;z-index:51;border:0;border-radius:999px;background:#ffffffeb;color:#111;font-weight:900;cursor:pointer}.loginViewerClose{top:22px;right:24px;padding:12px 18px}.loginViewerArrow{top:50%;width:54px;height:64px;font-size:42px;transform:translateY(-50%)}.loginViewerArrow.left{left:24px}.loginViewerArrow.right{right:24px}.loginCard{background:transparent;padding:0}.loginTopRow{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.loginTitle{font-size:38px;line-height:1;margin:0;font-weight:900;letter-spacing:0}.resetTitle{margin-bottom:22px}.loginModeTabs{display:inline-grid;grid-template-columns:1fr 1fr;min-width:132px;border:1px solid #373737;border-radius:999px;padding:3px;background:#151515}.loginModeTabs button{border:0;border-radius:999px;background:transparent;color:#a3a3a3;font-size:13px;font-weight:800;height:28px;cursor:pointer}.loginModeTabs button.active{background:#d1d5db;color:#111}.loginForm{display:grid;gap:9px}.loginLabel{font-size:16px;color:#d1d5db}.loginInput{width:100%;height:48px;border-radius:999px;padding:0 18px;background:#2b2b2b;color:#fff;outline:none;border:2px solid transparent;box-sizing:border-box;transition:border .2s ease,background .2s ease}.loginInput:focus{border-color:#cbd5e1;background:#202020}.loginPasswordWrap{position:relative}.loginPasswordWrap .loginInput{padding-right:54px}.loginEyeBtn{position:absolute;top:50%;right:12px;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;color:#d1d5db;cursor:pointer;transform:translateY(-50%)}.loginEyeBtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}.loginBtn{order:2;margin-top:34px;height:54px;width:100%;border:0;border-radius:999px;background:#d1d5db;color:#111;font-weight:900;font-size:22px;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,opacity .2s ease}.loginBtn:disabled,.linkBtn:disabled{cursor:not-allowed;opacity:.55}.loginBtn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 0 15px 1px #ffffffb3}.linkBtn{justify-self:end;margin-top:10px;height:34px;min-width:188px;border:0;border-radius:999px;background:#8d8d8d;color:#111;font-weight:900;font-size:15px;cursor:pointer;transition:all .15s ease}.linkBtn:not(:disabled):hover{color:#fff;background:#a7a6a6;box-shadow:0 0 5px 1px #ffffffb8}.linkBtn.hidden{visibility:hidden}.backBtn{justify-self:start;min-width:96px;margin-bottom:12px}.loginCodeBackBtn{order:1;justify-self:start;min-width:148px;height:34px;margin-top:0;border:1px solid #3f3f46;border-radius:999px;background:#050505;color:#fff;font-weight:900;cursor:pointer}.loginCodeBackBtn:hover{background:#18181b}.loginError,.loginNotice,.loginInfo{padding:8px 12px;border-radius:8px;font-size:14px;line-height:1.35;margin-bottom:10px}.loginError{background:#b91c1c;color:#fff}.loginNotice,.loginInfo{background:#17452d;color:#dcfce7}.versionText{position:absolute;right:18px;bottom:10px;max-width:160px;margin:0;color:#ffffff75;font-size:11px;line-height:1.2;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 980px){.loginShell{justify-content:flex-start;gap:20px;padding:20px 14px 34px}.loginBox{grid-template-columns:1fr;width:min(560px,94vw)}.loginLeft{min-height:220px}.loginRight{padding:28px 24px}}@media (max-width: 520px){.loginTopRow{align-items:flex-start;flex-direction:column}.loginModeTabs,.linkBtn{width:100%}}.acc-wrap{min-height:calc(100vh - 160px);display:grid;place-items:center}.acc-card{width:min(960px,92vw);background:#ffffffa6;border:2px solid rgba(255,255,255,.9);border-radius:22px;padding:26px 28px;box-shadow:0 18px 60px #00000026}.acc-title{font-size:34px;font-weight:900;margin-bottom:14px;color:#0f172a}.acc-subtitle{margin:14px 0 10px;font-weight:800;color:#0f172a}.acc-grid{display:grid;grid-template-columns:180px 1fr;gap:10px 18px}.acc-label{font-weight:700;color:#0f172a}.acc-value{background:#ffffffbf;border:2px solid rgba(0,0,0,.06);border-radius:12px;padding:10px 14px}.acc-divider{height:1px;background:#00000014;margin:18px 0}.acc-stack{display:grid;gap:12px}.acc-input{width:100%;border-radius:14px;padding:12px 16px;background:#ffffffe6;color:#111;border:2px solid rgba(0,0,0,.08);outline:none;transition:border .15s ease,box-shadow .15s ease}.acc-input:focus{border-color:#7c7bd6;box-shadow:0 0 0 3px #7c7bd638}.acc-btn{padding:10px 16px;border-radius:999px;border:0;background:#7c7bd6;color:#fff;font-weight:700;cursor:pointer;box-shadow:0 6px 20px #7c7bd640}.acc-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}@media (max-width: 680px){.acc-grid{grid-template-columns:1fr}}.ct-wrap{min-height:calc(100vh - 120px);display:grid;place-items:center}.chatCard{width:min(760px,94vw);min-height:620px;display:grid;grid-template-rows:auto 1fr auto auto;overflow:hidden;border-radius:28px;background:#fff;box-shadow:0 22px 60px #7c2d1224}.chatTop{min-height:94px;display:flex;align-items:center;padding:22px 28px;background:#f97316;color:#fff}.chatTop h2,.chatTop p{margin:0}.chatTop h2{font-size:28px}.chatBody{display:flex;flex-direction:column;gap:18px;overflow-y:auto;padding:28px;background:#fff}.chatDay{align-self:center;padding:9px 20px;border-radius:999px;background:#f3f4f6;color:#6b7280;font-weight:900}.chatBubble{max-width:min(72%,520px);border-radius:22px;padding:16px 18px 12px}.chatBubble p{margin:0;color:inherit;line-height:1.5;white-space:pre-wrap}.chatBubble span{display:block;margin-top:8px;text-align:right;font-size:12px;opacity:.72}.chatBubble.mine{align-self:flex-end;background:#f97316;color:#fff}.chatBubble.theirs{align-self:flex-start;background:#f3f4f6;color:#374151}.chatEmpty{margin:auto;color:#9ca3af;font-weight:900}.chatError{margin:0 28px 12px;padding:10px 14px;border-radius:12px;background:#fee2e2;color:#991b1b;font-weight:900}.chatComposer{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;margin:18px 28px 26px;padding:12px;border-radius:999px;background:#f3f4f6}.chatComposer input{min-width:0;border:0;outline:0;background:transparent;font:inherit}.chatComposer button{border:0;border-radius:999px;padding:11px 16px;background:#f97316;color:#fff;font-weight:900;cursor:pointer}.chatComposer button:disabled{background:#d1d5db;cursor:not-allowed}.notice-overlay{position:fixed;inset:0;background:#00000073;display:grid;place-items:center;z-index:1000}.notice-modal{width:min(840px,calc(100vw - 32px));max-height:min(80vh,900px);background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000059;display:flex;flex-direction:column;overflow:hidden}.notice-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #eee;background:linear-gradient(180deg,#f8fafc,#fff)}.nh-left{display:flex;align-items:baseline;gap:10px}.nh-title{font-weight:800;font-size:18px}.nh-version{font-size:12px;color:#64748b}.nh-close{border:none;background:transparent;font-size:22px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:8px}.nh-close:hover{background:#f1f5f9}.notice-body{padding:12px 16px;overflow:auto}.notice-empty{padding:24px;text-align:center;color:#64748b}.notice-item{border:1px solid #eee;border-radius:12px;padding:12px;margin-bottom:12px;background:#fff}.notice-item:last-child{margin-bottom:0}.ni-head{display:grid;grid-template-columns:auto 1fr auto;gap:8px 12px;align-items:center}.ni-tag{font-size:12px;padding:2px 8px;border-radius:999px;background:#e2e8f0;color:#0f172a}.ni-title{margin:0;font-size:16px}.ni-date{font-size:12px;color:#64748b}.ni-body{margin:8px 0 0;color:#111827;line-height:1.6}.tag-patch .ni-tag{background:#dbeafe;color:#1e3a8a}.tag-guide .ni-tag{background:#dcfce7;color:#065f46}.tag-info .ni-tag{background:#fee2e2;color:#7f1d1d}.notice-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid #eee;background:#fafafa}.nh-check{display:flex;align-items:center;gap:8px;font-size:14px;color:#334155}.nh-btn{padding:8px 14px;border-radius:10px;border:1px solid #e5e7eb;background:#111827;color:#fff;font-weight:600;cursor:pointer}.nh-btn:hover{filter:brightness(1.05)}*{box-sizing:border-box}html,body{min-height:100vh;height:auto;margin:0}#root{min-height:80vh;height:100vh;background:#fff7ed}.layout-container{width:100%;max-width:1420px;margin-inline:auto;height:auto;display:flex;flex-direction:column;padding:96px 18px 28px;color:#374151}.infoPanel{flex:1;display:grid;grid-template-columns:minmax(320px,440px) minmax(0,1fr);height:auto;gap:22px;padding-bottom:0}.sidebar{display:grid;grid-template-rows:auto auto;height:auto;width:100%;padding:0;gap:22px;background-color:none}.panel{flex:1;background-color:#fff;border:1px solid #e9edf5;border-radius:18px;box-shadow:0 16px 42px #0f172a14}.videoInfoPanel{padding:34px;overflow-y:auto}.tag-list{margin-top:8px}.courseInfoPanel{display:flex;flex-direction:column;border-radius:18px;height:auto;gap:10px;padding:20px;overflow-y:auto}.courseHeader{display:flex;gap:12px;align-items:center}.courseMeta{display:flex;flex-direction:column;gap:4px}.courseTitle{font-size:clamp(1px,2.8vw,30px);color:#9a3412}.courseData{font-size:clamp(1px,1.6vw,22px);color:#4b5563}.courseDescription{padding-top:8px}#courseDes{color:#4b5563;font-size:clamp(1px,1.5vw,20px)}.courseProgress{margin-top:12px}.progressBar{height:15px;width:100%;background-color:#2b2b2b1a;border:3px solid white;box-shadow:0 2px 5px 1px #3a3a3aa8;border-radius:25px;overflow:hidden}.progressFill{height:100%;background-color:#f97316;transition:width .3s ease}.progressText{font-size:clamp(1px,2vw,22px);margin-top:4px;color:#444}.main-area{height:auto;display:grid;grid-template-rows:auto minmax(360px,1fr);gap:20px;padding:0}.videoPanel{position:relative;border:10px solid #fff;border-radius:18px;margin-top:auto;background:#fff;box-shadow:0 16px 42px #0f172a14}.videoWrap{background:none}video{border-radius:10px;padding:0}.toolPanel{overflow-y:auto;border-radius:18px;background:#fff;box-shadow:0 16px 42px #0f172a14}.backBtn{position:absolute;width:118px;height:52px;z-index:100;top:34px;left:34px;font-size:20px;font-weight:900;padding:3px 10px;border-radius:8px;border:2px solid #e5e7eb;background:#fffaf3;color:#9a3412;transition:all .3s ease}.backBtn:hover{padding-top:6px;border-color:#fdba74;box-shadow:0 10px 24px #f9731629;transition:all .3s ease}.autoNextToast{position:absolute;right:18px;bottom:18px;z-index:5;display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #fdba74;border-radius:12px;background:#fffaf3f5;color:#9a3412;font-weight:900;box-shadow:0 12px 30px #7c2d122e}.autoNextToast button{border:0;border-radius:8px;padding:7px 10px;background:#f97316;color:#fff;font-weight:900;cursor:pointer}#root{height:100%}.loginNotice{background:#fff7ed;border:1px solid #fdba74;color:#7c2d12;padding:8px 12px;border-radius:8px;margin-bottom:10px}.loginError{background:#fef2f2;border:1px solid #fecaca;color:#7f1d1d;padding:8px 12px 0;border-radius:8px;margin-bottom:0}.content-grid{display:grid;grid-template-columns:minmax(320px,440px) minmax(640px,980px);gap:22px;justify-content:center;align-content:start;max-width:1442px;margin-inline:auto}.content-grid>*{min-width:0}.sidebar,.main-area,.toolPanelContainer,.toolPanel,.videoPanel{min-width:0}.videoWrap,.videoPanel{width:100%}video{display:block;width:100%;height:auto}.videoList,.qaList{overflow-y:auto}@media only screen and (max-width: 896px){.layout-container{display:flex;flex-direction:column;align-items:stretch;height:auto;margin:0;transform:none}.infoPanel{display:flex;flex-direction:column;height:auto;gap:10px;padding:8px}.sidebar{display:flex;flex-direction:column-reverse;gap:10px;height:auto;width:100%}.main-area{display:flex;flex-direction:column;gap:10px;height:auto}.videoInfoPanel{padding:20px 20px 10px;order:1;min-height:120px}.videoPanel{order:2;min-height:200px}.toolPanelContainer,.toolPanel{order:3;min-height:0px;overflow-y:hidden}.courseInfoPanel{order:4;min-height:150px;margin-top:80px}.titleText{font-size:clamp(2px,3.5vw,30px)}.infoText{font-size:clamp(2px,3vw,70px)}#courseDes{font-size:clamp(2px,2.5vw,80px)}}.videoWrap{position:relative}.html5Video{width:100%;height:100%;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#000}.videoLoading{position:absolute;inset:0;z-index:4;display:grid;place-items:center;align-content:center;gap:12px;background:#111827b8;color:#fdba74;font-weight:900;letter-spacing:0}.loadCircle{width:52px;height:52px;border:5px solid rgba(253,186,116,.25);border-top-color:#f97316;border-radius:999px;animation:video-spin .85s linear infinite}@keyframes video-spin{to{transform:rotate(360deg)}}.controls{position:absolute;z-index:6;left:0;right:0;bottom:0;display:flex;align-items:center;gap:8px;padding:8px 12px;background:linear-gradient(transparent,#0000008c);color:#fff;font-size:12px;flex-wrap:wrap}.controls>*{min-width:0}.ctrlBtn{background:#ffffff26;border:none;color:#fff;border-radius:6px;padding:4px 8px;cursor:pointer}.time{min-width:70px;text-align:center;opacity:.9}.seek{flex:1 1 100%}.rateLbl{opacity:.85}.rateSel{background:#ffffff1a;color:#000;border:1px solid rgb(255,255,255);border-radius:6px;padding:2px 6px}.videoWrap{position:relative;width:100%;height:auto;background:#000;overflow:hidden}.videoEl{display:block;width:100%;height:auto;max-height:80vh;background:#000}.volume{flex:0 0 96px}.fsBtn{position:absolute;right:10px;top:10px;border:none;outline:none;width:36px;height:36px;border-radius:8px;background:#181818a6;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s ease}.fsBtn:hover{background:#181818e6}@media (max-width: 480px){.volume{flex-basis:72px}.rateSel{font-size:12px;padding:2px 4px}}.videoInfoTitle{font-size:clamp(1px,2vw,35px);color:#2f343b;letter-spacing:0}.videoInfoText{font-size:clamp(1px,1.8vw,25px);color:#4b5563;line-height:1.55}.videoInfoText .infoLabel,.videoInfoText strong,.videoInfoPanel .tagFont,.videoInfoPanel .tag{color:#c2410c}.videoInfoPanel{color:#374151}.videoInfoPanel .tag{border-color:#fdba74;background:#fff7ed}@media only screen and (max-width: 880px){.videoInfoTitle{font-size:clamp(2px,2vw,45px)}.videoInfoText{font-size:clamp(2px,2.5vw,80px)}}.courseIcon{width:23%;aspect-ratio:1/1;margin-right:30px;border-radius:8px;object-fit:cover}@media only screen and (max-width: 680px){.courseHeader{height:100px}.courseIcon{height:80px;width:80px}.courseData{font-size:clamp(1px,1rem,30px)}}.toolPanel{display:flex;flex-direction:column;overflow-y:auto;height:430px;border:1px solid #e9edf5;overflow:hidden}.tabText{font-size:15px}.tabBar{position:sticky;top:0;z-index:5;display:flex;height:60px;border-bottom:1px solid #e5e7eb;margin-bottom:0;background-color:#fff7ed}.tabBar button{padding:8px 16px;border:none;background:transparent;cursor:pointer;font-weight:700;color:#4b5563;transition:all .25s ease;border-bottom:4px solid #ffffff00}.tabBar button:hover{background:#ffedd5;transition:all .25s ease;border-bottom:4px solid #ffffff00}.tabBar button.active{background-color:transparent;box-shadow:none;color:#c2410c;border-bottom:4px solid #f97316}.statusTick{min-width:58px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;border:2px solid #d1d5db;color:#9ca3af;background:#f3f4f6;-webkit-user-select:none;user-select:none;cursor:pointer}.statusTick.done{border-color:#0fa;color:#fff;background:#11d67a;box-shadow:0 0 5px 1px #3ada12}.statusTick.todo{border-color:#e5e7eb;color:#9ca3af;background:#f9fafb}.videoList{display:flex;flex-direction:column}.videoList,.qaList{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.videoItem{border-bottom:1px solid #eef2f7;padding:14px 16px;transition:background-color .2s ease,transform .2s ease;background:#fff;color:#374151}.videoItem:hover{background-color:#ffedd5;transform:translate(2px)}.videoItem.active{background-color:#fff7ed;box-shadow:inset 4px 0 #f97316}.videoInfo{flex:1}.videoTitleText{font-size:15px;color:#374151}.videoListText{font-size:12px;color:#6b7280}.videoDescription{margin-top:6px;font-size:12px;color:#6b7280;line-height:1.45}.videoItemHeader{display:flex;align-items:center;justify-content:space-between;gap:16px}.qaQuestion{background:#fff8;padding:6px 10px;width:100%;border-bottom:3px dashed rgba(128,128,128,.288);text-align:left;font-weight:700;cursor:pointer;transition:all .25s ease}.qaQuestion:hover{background-color:#ffedd5;transition:all .25s ease}.questionText{font-size:15px;padding:5px}.answerText{font-size:18px;padding:15px 20px;background:#fff;border-left:5px solid #f97316}.toolPanel,.videoPanel{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}@media only screen and (max-width: 600px){.videoTitleText{font-size:clamp(2px,3.2vw,40px)}.infoText{font-size:clamp(2px,2.5vw,80px)}}.resetloginBox{height:500px;background-color:#000;border-radius:25px;padding:20px}.adminShell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);background:#f7f8fb;color:#0f172a;overflow-x:hidden}.adminShell button{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease,color .16s ease,opacity .16s ease}.adminShell button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a1f}.adminShell button:not(:disabled):active{transform:translateY(1px) scale(.98);box-shadow:0 4px 10px #0f172a1a}.adminShell.collapsed{grid-template-columns:minmax(0,1fr)}.adminSidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:260px;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 32%),#050505;overflow:hidden;transition:opacity .24s ease,transform .24s ease;border-right:1px solid rgba(255,255,255,.08)}.adminShell.collapsed .adminSidebar{opacity:0;pointer-events:none;transform:translate(-100%)}.adminMenu{display:grid;gap:10px;padding:92px 16px 28px;transition:opacity .2s ease,transform .2s ease}.adminShell.collapsed .adminMenu{opacity:0;transform:translate(-12px)}.adminDrawerToggle{position:fixed;top:50%;left:272px;z-index:45;width:38px;height:48px;border:1px solid #374151;border-radius:10px;background:#1f2937;color:#f9fafb;font-size:24px;font-weight:900;line-height:1;cursor:pointer;transform:translateY(-50%);transition:left .24s ease,transform .16s ease,box-shadow .16s ease}.adminShell.collapsed .adminDrawerToggle{left:14px}.adminShell .adminDrawerToggle:not(:disabled):hover{transform:translate(-4px,-50%)}.adminShell.collapsed .adminDrawerToggle:not(:disabled):hover{transform:translate(4px,-50%)}.adminMenu button{height:48px;display:flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0d0d0d;color:#d6dbe3;padding:0 12px;font-size:14px;cursor:pointer;text-align:left}.adminMenu button.active{border-color:#2f7cff6b;background:#111827;color:#fff;box-shadow:0 0 0 1px #2f7cff40 inset}.adminMenu span{width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:#151515;color:#fff;font-size:12px;text-align:center}.adminMain{grid-column:1;min-width:0;overflow-x:hidden}.adminTopbar{height:92px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 46px 0 36px;background:#ffffffdb;border-bottom:1px solid #edf0f4;box-shadow:0 8px 24px #0f172a0d}.adminTopLeft,.adminTopRight{display:flex;align-items:center;gap:22px}.adminTopbar h1{margin:0;font-size:30px}.adminIconBtn,.adminLogoutBtn,.adminProfile{border:0;background:transparent;cursor:pointer}.adminIconBtn{min-width:54px;height:40px;border-radius:10px;font-size:14px;font-weight:800}.adminLogoutBtn{height:40px;border-radius:10px;padding:0 16px;background:#0f172a;color:#fff;font-weight:900}.adminSearch,.adminPanelSearch{height:48px;min-width:0;display:flex;align-items:center;gap:10px;border:1px solid #dfe4ec;border-radius:10px;color:#9aa4b2;padding:0 22px;background:#fff}.adminSearch{width:min(300px,28vw)}.adminPanelSearch input{min-width:0;width:100%;border:0;outline:0;color:#0f172a;background:transparent;font:inherit}.adminPanelSearch span{flex:0 0 auto;color:#64748b;font-size:12px;font-weight:800}.adminBell{position:relative;font-size:24px}.adminBell span{position:absolute;top:-10px;right:-13px;min-width:22px;height:22px;border-radius:999px;background:#ef4444;color:#fff;font-size:12px;display:grid;place-items:center}.adminProfile{display:flex;align-items:center;gap:12px;color:#111827;font-size:18px}.adminAvatar{width:44px;height:44px;display:grid;place-items:center;border-radius:999px;background:#7d8795;color:#fff}.adminProfileMenu{position:absolute;top:72px;right:42px;padding:8px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 18px 38px #0f172a29;z-index:5}.adminProfileMenu button{border:0;background:transparent;padding:10px 18px;cursor:pointer;font-weight:800}.adminContent{padding:32px;position:relative}.adminError{margin-bottom:14px;padding:12px 16px;background:#fee2e2;color:#991b1b;border-radius:10px}.adminError.compact{margin:14px 0 0}.adminToast{position:fixed;top:18px;left:50%;z-index:80;width:fit-content;max-width:min(520px,100%);margin:0;padding:14px 20px;border:1px solid #bbf7d0;border-radius:999px;background:#f0fdf4;color:#166534;box-shadow:0 16px 32px #16653424;font-weight:900;transform:translate(-50%)}.adminOverviewScroll{overflow-x:auto;padding-bottom:4px;max-width:100%}.adminOverviewCard,.adminPanel{background:#fff;border-radius:22px;box-shadow:0 16px 34px #0f172a14}.adminOverviewCard{min-height:300px;min-width:1320px;width:max-content;box-sizing:border-box;display:grid;grid-template-columns:210px 360px 260px 340px;gap:28px;align-items:center;padding:30px 42px;overflow:hidden}.adminOverviewTitle{min-height:214px;display:grid;align-content:center;gap:8px}.adminOverviewTitle h2{margin:0;font-size:28px}.adminOverviewTitle p{margin:0;color:#64748b;font-weight:800}.adminEnroll h2,.adminDonutLabel,.adminPanel h2{margin:0;font-size:22px}.adminBars{height:190px;display:grid;grid-template-columns:repeat(6,1fr);align-items:stretch;gap:18px;margin-top:20px;border-bottom:2px solid #e5e7eb;background:repeating-linear-gradient(to top,transparent,transparent 56px,#e5e7eb 57px)}.adminBarItem{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;justify-items:center;gap:6px;min-width:0}.adminBarItem div{width:24px;background:#18aa91;border-radius:2px 2px 0 0}.adminBarItem span{color:#64748b;font-size:14px}.adminBarItem b{color:#64748b;line-height:1}.adminDonutBlock{display:grid;justify-items:center;gap:22px}.adminDonut{width:158px;height:158px;display:grid;place-items:center;border-radius:999px}.adminDonut div{width:110px;height:110px;display:grid;place-items:center;border-radius:999px;background:#fff;font-size:40px;font-weight:900}.adminStatsList{display:grid;gap:16px;min-width:0}.adminMetric{min-height:62px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid #e5e7eb;border-radius:10px;padding:0 14px}.adminMetric:last-child{border-bottom:1px solid #e5e7eb}.adminMetricIcon{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;font-size:16px;font-weight:900}.adminMetric strong{font-size:25px}.adminMetric.blue .adminMetricIcon{background:#e7efff;color:#2563eb}.adminMetric.blue strong{color:#2563eb}.adminMetric.purple .adminMetricIcon{background:#f1e7ff;color:#9333ea}.adminMetric.purple strong{color:#9333ea}.adminMetric.green .adminMetricIcon{background:#dcfce7;color:#16a34a}.adminMetric.green strong{color:#16a34a}.adminMetric.orange .adminMetricIcon{background:#ffedd5;color:#f97316}.adminMetric.orange strong{color:#f97316}.adminPanels{display:grid;grid-template-columns:minmax(420px,1fr) minmax(500px,1.1fr);gap:24px;margin-top:28px;min-width:0}.adminPanel{min-height:520px;padding:24px 26px;min-width:0;overflow:hidden}.adminMetaPanel{grid-column:1 / -1;min-height:0}.adminMetaForm{display:grid;gap:18px;padding-top:18px}.adminMetaForm .adminError{margin:0}.adminMetaAdd{border:0;border-radius:8px;padding:10px 16px;background:#0f172a;color:#fff;font-weight:900;cursor:pointer}.adminMetaList{display:grid;gap:14px}.adminMetaList h3,.adminMetaSubhead h3{margin:10px 0 0}.adminMetaSubhead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px}.adminMetaUrlRow{display:grid;grid-template-columns:150px minmax(0,1fr) auto;align-items:end;gap:14px;padding:14px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.adminMetaPreview{height:84px;display:grid;place-items:center;border-radius:8px;background-color:#eef1f5;background-position:center;background-size:cover;color:#64748b;overflow:hidden}.adminMetaPreview span{font-size:13px;font-weight:900}.adminMetaUrlRow>button{min-height:48px;border:0;border-radius:10px;padding:0 16px;background:#fee2e2;color:#991b1b;font-weight:900;cursor:pointer}.studentFollowCard{grid-column:1 / -1}.followSlotPanel{display:grid;gap:18px}.followSlotHead{display:flex;justify-content:space-between;gap:18px;align-items:center}.followSlotHead h3,.followSlotHead p{margin:0}.followSlotHead p{color:#64748b;font-weight:800}.followSlotHead button,.followSlotActions button,.followSlotRow button{border:0;border-radius:10px;padding:11px 16px;background:#0f172a;color:#fff;font-weight:900;cursor:pointer}.followSlotRow button.secondary,.followSlotActions button.secondary{background:#eef2ff;color:#1d4ed8}.followSlotEditor,.followSlotRows{display:grid;gap:14px}.followSlotRow{display:grid;grid-template-columns:minmax(220px,.5fr) minmax(280px,1fr) auto;gap:12px;align-items:end;padding:14px;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc}.followSlotRow label{display:grid;gap:7px;color:#334155;font-weight:900}.followSlotRow input{width:100%;min-height:42px;border:1px solid #dfe4ec;border-radius:10px;padding:0 12px;font:inherit}.followSlotActions{display:flex;justify-content:flex-end;gap:12px}.adminMetaUrlRow>button:disabled{opacity:.5;cursor:not-allowed}.adminMetaActions button{min-height:48px;border:0;border-radius:10px;padding:0 18px;background:#1f6dff;color:#fff;font-weight:900;cursor:pointer;white-space:nowrap}.adminMetaActions button:disabled{opacity:.6;cursor:not-allowed}.adminPanelHeader{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:22px;border-bottom:1px solid #e5e7eb;min-width:0}.adminPanelHeader>div:first-child{display:flex;align-items:center;gap:18px;min-width:0}.adminPanelHeader h2{overflow-wrap:anywhere}.adminPanelHeader>div:first-child span{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#e7efff;color:#2563eb}.adminPanelSearch{width:min(290px,44%);flex:0 1 290px}.adminPanelBody{max-height:420px;overflow-y:auto;overflow-x:hidden}.adminPanelBody.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px;align-items:stretch}.adminPanelBody.grid .adminVideoRow,.adminPanelBody.grid .adminStudentRow{min-height:220px;border:1px solid #e5e7eb;border-radius:14px;padding:16px;background:#fff}.adminPanelBody.grid .adminVideoRow{grid-template-columns:1fr;align-content:space-between}.adminPanelBody.grid .adminVideoRow button{justify-self:start}.adminPanelBody.grid .adminStudentRow{grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto 1fr auto}.adminPanelBody.grid .adminStudentRow>b{grid-column:1 / -1;justify-self:start}.adminPanelBody.grid .adminStudentActions{grid-column:1 / -1;justify-self:stretch;flex-wrap:wrap}.adminPanelBody.grid .adminStudentActions button{flex:1 1 auto}.adminPanelTools{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:14px 0 2px}.adminPanelTools.compact{padding-top:0}.adminPanelTools>button{border:0;border-radius:8px;padding:10px 16px;background:#0f172a;color:#fff;font-weight:900;cursor:pointer}.adminViewToggle{display:flex;align-items:center;padding:3px;border:1px solid #dfe4ec;border-radius:9px;background:#f8fafc}.adminViewToggle button{min-height:32px;border:0;border-radius:7px;padding:0 10px;background:transparent;color:#64748b;font-size:12px;font-weight:900;cursor:pointer}.adminViewToggle button.active{background:#0f172a;color:#fff}.adminStudentControls{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0 12px}.adminStudentToggles,.adminStudentSort{display:flex;align-items:center;gap:10px}.adminStudentToggles button,.adminStudentSort select,.adminStudentSort button{min-height:30px;border:0;border-radius:8px;background:#050505;color:#fff;font-size:13px;font-weight:800;cursor:pointer}.adminStudentToggles button{padding:0 10px;opacity:.5}.adminStudentToggles button.active{opacity:1;box-shadow:0 0 0 2px #1f6dff inset}.adminStudentSort select{padding:0 10px;appearance:none}.adminStudentSort button{width:auto;min-width:44px;background:transparent;color:#050505;font-size:14px}.adminVideoRow,.adminStudentRow{min-height:108px;display:grid;align-items:center;gap:16px;border-bottom:1px solid #e5e7eb;min-width:0}.adminVideoRow{grid-template-columns:minmax(0,1fr) auto;padding:18px 0}.adminVideoRow h3,.adminStudentRow h3{margin:0 0 8px;overflow-wrap:anywhere;line-height:1.2}.adminVideoRow p,.adminStudentRow p{margin:0;color:#64748b}.adminVideoRow p{display:flex;flex-wrap:wrap;gap:8px 14px}.adminVideoRow p span{min-width:0;overflow-wrap:anywhere}.adminVideoRow button,.adminStudentRow button{border:0;border-radius:6px;padding:12px 20px;background:#1f6dff;color:#fff;font-weight:800;cursor:pointer;white-space:nowrap}.adminStudentRow{grid-template-columns:48px minmax(0,1fr) 70px;grid-template-rows:auto auto;align-items:start;padding:18px 0}.adminStudentAvatar{width:42px;height:42px;display:grid;place-items:center;border-radius:999px;color:#fff;font-size:15px;font-weight:900;grid-row:1 / span 2;position:relative}.adminStudentRow b{align-self:start;padding:9px 12px;border-radius:8px;background:#dbe8ff;color:#2563eb;text-align:center;white-space:nowrap}.adminRowText{min-width:0}.adminStudentActions{grid-column:2 / 4;justify-self:end;display:flex;gap:8px}.adminStudentActions button{padding:9px 16px}.adminStudentActions button.secondary{background:#e8eefb;color:#1f6dff}.adminStudentActions button.danger{background:#fee2e2;color:#991b1b}.adminStudentActions button.danger.holding{background:linear-gradient(90deg,#b91c1c,#ef4444);color:#fff}.adminUnreadDot{position:absolute;top:-2px;right:-2px;width:11px;height:11px;border:2px solid #fff;border-radius:999px;background:#ef4444}.adminUnreadDot.small{position:static;width:9px;height:9px;display:inline-block;margin-left:6px;border:0}.messageBtn{display:inline-flex;align-items:center;gap:4px}.adminChatPage{max-width:980px;min-height:680px;display:grid;grid-template-rows:auto 1fr auto auto;overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 16px 34px #0f172a14}.adminChatTop{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;background:#f97316;color:#fff}.adminChatTop h2,.adminChatTop p{margin:0}.adminChatTop button,.adminChatComposer button{border:0;border-radius:10px;padding:10px 16px;background:#0f172a;color:#fff;font-weight:900;cursor:pointer}.adminChatBody{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding:28px}.adminChatBubble{max-width:min(72%,560px);padding:14px 16px 10px;border-radius:18px}.adminChatBubble p{margin:0;white-space:pre-wrap;line-height:1.5}.adminChatBubble span{display:block;margin-top:8px;text-align:right;font-size:12px;opacity:.68}.adminChatBubble.mine{align-self:flex-end;background:#f97316;color:#fff}.adminChatBubble.theirs{align-self:flex-start;background:#f3f4f6;color:#374151}.adminChatComposer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin:18px 28px 26px;padding:12px;border-radius:16px;background:#f3f4f6}.adminChatComposer input{min-width:0;border:0;outline:0;background:transparent;font:inherit}.adminChatComposer button:disabled{background:#d1d5db;cursor:not-allowed}.adminConfirmOverlay{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:24px;background:#0f172a61}.adminConfirmBubble{width:min(460px,100%);border:1px solid #dbeafe;border-radius:18px;padding:24px;background:#fff;box-shadow:0 24px 70px #0f172a47}.adminConfirmBubble.danger{border-color:#fecaca}.adminConfirmBubble h3{margin:0 0 10px;font-size:24px}.adminConfirmBubble p{margin:0 0 18px;color:#475569;line-height:1.45}.adminConfirmActions{display:flex;justify-content:flex-end;gap:10px}.adminConfirmActions button{min-height:42px;border:0;border-radius:10px;padding:0 16px;background:#e8eefb;color:#1f6dff;font-weight:900;cursor:pointer}.adminConfirmActions button:last-child{background:#1f6dff;color:#fff}.adminConfirmActions button.danger{background:#b91c1c;color:#fff}.adminConfirmActions button.danger.holding{background:linear-gradient(90deg,#7f1d1d,#ef4444)}.adminConfirmActions button:disabled{opacity:.6;cursor:not-allowed}.adminEmpty{padding:34px 4px;color:#64748b}.adminFormCard{background:#fff;border-radius:22px;padding:28px;box-shadow:0 16px 34px #0f172a14}.adminFormHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px}.adminFormHeader h2{margin:0 0 6px;font-size:28px}.adminFormHeader p{margin:0;color:#64748b}.adminFormHeader button,.adminFormActions button{border:0;border-radius:10px;padding:12px 18px;font-weight:900;cursor:pointer}.adminUserForm{display:grid;gap:22px}.adminFormSection{border:1px solid #e5e7eb;border-radius:16px;padding:18px;margin:0}.adminFormSection legend{padding:0 8px;font-size:18px;font-weight:900}.adminFormSection>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.adminField{min-width:0;display:grid;gap:8px}.adminField.wide{grid-column:span 2}.adminCourseAccess{min-width:0;display:grid;gap:10px;grid-column:1 / -1}.adminCourseAccess>span{color:#334155;font-size:14px;font-weight:800}.adminCourseAccess>p{margin:0;color:#64748b}.adminCourseGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.adminCourseOption{min-width:0;display:flex;align-items:flex-start;gap:10px;border:1px solid #dfe4ec;border-radius:10px;padding:12px;background:#fff}.adminCourseOption input{width:18px;height:18px;margin-top:2px;flex:0 0 auto}.adminCourseOption span{min-width:0;display:grid;gap:3px}.adminCourseOption b,.adminCourseOption small{overflow-wrap:anywhere}.adminCourseOption small{color:#64748b}.adminField span{color:#334155;font-size:14px;font-weight:800}.adminField input,.adminField select,.adminField textarea,.adminBooleanNotes input,.adminBooleanNotes select,.adminBooleanNotes textarea{width:100%;min-width:0;box-sizing:border-box;border:1px solid #dfe4ec;border-radius:10px;padding:12px 14px;color:#0f172a;background:#fff;font:inherit}.adminBooleanNotes textarea{min-height:116px;resize:vertical}.adminBooleanNotes{min-width:0;grid-column:1 / -1;display:grid;grid-template-columns:1fr;align-items:stretch;gap:8px}.adminBooleanNotes>label{min-width:0;display:grid;gap:8px}.adminBooleanNotes>label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px;padding-bottom:0}.adminBooleanNotes input[type=checkbox]{width:18px;height:18px;padding:0}.adminBooleanNotes span{color:#334155;font-size:14px;font-weight:800}.adminField textarea{min-height:94px;resize:vertical}.adminFormActions{display:flex;justify-content:flex-end;gap:12px;position:sticky;bottom:0;padding:16px 0 0;background:#fff}.adminFormActions button[type=submit]{background:#1f6dff;color:#fff}.adminFormActions button:disabled{opacity:.6;cursor:not-allowed}.adminSuccess{margin-bottom:14px;padding:12px 16px;background:#dcfce7;color:#166534;border-radius:10px}.studentView{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}.studentViewHero,.studentViewStatus,.studentViewNavigator,.studentViewCard{background:#fff;border-radius:18px;box-shadow:0 16px 34px #0f172a14}.studentViewHero{min-width:0;grid-column:1 / -1;padding:28px}.studentViewHero h2,.studentViewHero p{margin:0}.studentViewHero h2{font-size:30px}.studentViewHero>p,.studentViewHero>div>p{color:#475569;font-size:22px}.studentViewActions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;margin-top:-48px}.studentViewActions button{min-height:44px;border:1px solid #dfe4ec;border-radius:10px;padding:0 18px;background:#fff;color:#0f172a;font-weight:900;cursor:pointer}.studentViewActions button:first-child{border-color:transparent;background:#1f6dff;color:#fff}.studentViewQuick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:72px;padding-top:20px;border-top:1px solid #e5e7eb}.studentInfoTile,.studentInfoRow{min-width:0}.studentInfoTile{display:grid;gap:8px;padding:0 12px;border-left:1px solid #e5e7eb}.studentInfoTile span,.studentInfoRow span,.studentStatusItem span{color:#64748b;font-size:14px;font-weight:800}.studentInfoTile b,.studentInfoRow b,.studentStatusItem b{min-width:0;color:#0f172a;overflow-wrap:anywhere}.studentViewStatus{grid-column:1 / -1;grid-row:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px}.studentStatusItem{display:grid;gap:6px;padding:14px;border:1px solid #e5e7eb;border-radius:12px}.studentStatusItem:last-child{border-bottom:0}.studentStatusItem b{font-size:20px}.studentViewNavigator{position:fixed;top:0;right:0;z-index:60;width:290px;height:100vh;max-height:none;overflow:visible;border-radius:18px 0 0 18px;transition:transform .24s ease,box-shadow .24s ease}.studentViewNavigator.closed{transform:translate(100%)}.studentNavigatorToggle{position:absolute;top:50%;left:-42px;width:42px;height:54px;border:1px solid #374151;border-right:0;border-radius:12px 0 0 12px;background:#1f2937;color:#f9fafb;font-size:28px;font-weight:900;cursor:pointer;transform:translateY(-50%)}.adminShell .studentNavigatorToggle:not(:disabled):hover{transform:translate(-4px,-50%)}.adminShell .studentViewNavigator.closed .studentNavigatorToggle:not(:disabled):hover{transform:translate(4px,-50%)}.studentNavigatorBody{display:grid;gap:12px;height:100%;padding:20px 14px;overflow:hidden}.studentNavigatorBody input{width:100%;min-height:40px;border:1px solid #dfe4ec;border-radius:10px;padding:0 12px;font:inherit}.studentNavigatorList{display:grid;gap:8px;max-height:none;overflow-y:auto}.studentNavigatorList button{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:10px;text-align:left;cursor:pointer}.studentNavigatorAvatar{width:36px;height:36px;display:grid;place-items:center;border-radius:999px;color:#fff;font-size:12px;font-weight:900}.studentNavigatorList b,.studentNavigatorList small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studentNavigatorList small{color:#64748b;font-weight:800}.studentStatusItem.green b{color:#16a34a}.studentStatusItem.orange b{color:#ea580c}.studentStatusItem.blue b{color:#2563eb}.studentStatusItem.gray b{color:#64748b}.studentViewCard{min-width:0;padding:24px 28px}.studentCardA,.studentCardB{grid-column:1 / -1}.studentCardC{grid-column:1 / -1;align-self:start}.studentCardD,.studentCardE,.studentCardF,.studentViewCard.wide{grid-column:1 / -1}.studentViewCard h3{margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid #e5e7eb;font-size:20px}.studentInfoRow{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1fr);gap:16px;padding:8px 0;border-bottom:1px solid #eef2f7}.studentInfoRow:last-child{border-bottom:0}.studentInfoRow .badge{width:fit-content;padding:3px 10px;border-radius:999px;background:#dcfce7;color:#16a34a}@media (max-width: 1180px){.adminPanels{grid-template-columns:1fr}}@media (max-width: 980px){.adminShell,.adminShell.collapsed{grid-template-columns:1fr}.adminSidebar{width:min(82vw,260px)}.adminTopbar,.adminTopRight,.adminPanels{grid-template-columns:1fr}.adminTopbar{height:auto;padding:20px;align-items:flex-start;flex-direction:column}.adminContent{padding:18px}.adminSearch,.adminPanelSearch{width:100%}.adminPanelHeader{align-items:stretch;flex-direction:column}.adminMetaForm,.adminMetaUrlRow{grid-template-columns:1fr}.adminVideoRow{grid-template-columns:1fr;align-items:stretch}.adminVideoRow button{justify-self:start}.adminStudentRow{grid-template-columns:48px minmax(0,1fr) 68px}.adminStudentActions{grid-column:1 / -1;justify-self:stretch}.adminStudentActions button{flex:1}.adminStudentControls{align-items:stretch;flex-direction:column}.adminStudentToggles,.adminStudentSort{justify-content:space-between}.adminStudentToggles button,.adminStudentSort select{flex:1}.adminFormHeader{flex-direction:column}.adminFormSection>div{grid-template-columns:1fr}.adminField.wide{grid-column:span 1}.adminBooleanNotes,.adminCourseGrid{grid-template-columns:1fr}.studentView,.studentViewQuick{grid-template-columns:1fr;padding-right:0}.studentViewHero,.studentViewStatus,.studentViewNavigator,.studentViewCard,.studentViewCard.wide,.studentFollowCard{grid-column:1;grid-row:auto}.studentViewNavigator{position:fixed;top:0;right:0;width:min(280px,calc(100vw - 24px));height:100vh}.studentViewActions{justify-content:flex-start;margin-top:18px}.studentInfoRow{grid-template-columns:1fr;gap:4px}}
