:root{--ink:#111827;--muted:#667085;--line:#e7eaf0;--soft:#f6f7fb;--purple:#6c4df6;--purple2:#8b6cff;--navy:#11152d;--green:#18a979;--blue:#3578f6;--orange:#f59e42}*{box-sizing:border-box}body{margin:0;background:#f7f8fc;color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#111329;color:#fff;padding:26px 18px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand-mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,#8c69ff,#593ee8);font:800 21px Manrope}.brand strong{display:block;font:800 18px Manrope}.brand span{font-size:10px;letter-spacing:2.2px;color:#abaec8}.sidebar nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#aeb3cd;padding:12px 14px;border-radius:10px;text-align:left;font:600 15px 'DM Sans';cursor:pointer;display:flex;gap:12px;align-items:center}.nav-item span{font-size:19px;width:22px;text-align:center}.nav-item:hover,.nav-item.active{background:#2a2651;color:#fff}.nav-item.active{box-shadow:inset 3px 0 #8c69ff}.support-card{margin-top:auto;background:linear-gradient(145deg,#272945,#1a1c36);border:1px solid #393b59;border-radius:14px;padding:16px}.support-card>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#7358f6;font-weight:700}.support-card strong{display:block;margin-top:12px}.support-card p{font-size:13px;line-height:1.45;color:#aeb3cd;margin:6px 0 12px}.support-card button{width:100%;border:1px solid #4c5072;background:transparent;color:#fff;border-radius:8px;padding:9px;font-weight:600}.profile{display:flex;align-items:center;gap:10px;margin-top:18px;padding:14px 4px 0;border-top:1px solid #2e314b}.profile strong{font-size:14px;display:block}.profile span{font-size:12px;color:#9298b4}.profile button{margin-left:auto;background:none;border:0;color:#aaa;font-size:22px}.avatar{background:linear-gradient(135deg,#6b4cf5,#9983ff);color:white;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700}.avatar.small{width:34px;height:34px}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;position:sticky;top:0;z-index:5}.crumb{font-size:14px;color:#70758a}.crumb b{margin:0 8px;color:#c6c8d0}.top-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.icon-btn,.menu{border:0;background:transparent;width:36px;height:36px;border-radius:9px;font-size:20px;position:relative}.icon-btn:hover{background:#f0f1f7}.icon-btn i{position:absolute;width:6px;height:6px;background:#f45c6a;border-radius:50%;right:5px;top:5px}.menu{display:none}.page{max-width:1260px;margin:auto;padding:38px 42px 70px}.welcome{display:flex;justify-content:space-between;align-items:center}.eyebrow{color:#6f57ed;font-weight:800;letter-spacing:1.6px;font-size:12px}.welcome h1,.course-header h1,.lesson-main h1{font:800 32px/1.15 Manrope;margin:7px 0 9px}.welcome p,.course-header p,.lead{color:var(--muted);margin:0}.streak{display:flex;gap:10px;align-items:center;background:#fff3e5;border:1px solid #fee0bb;padding:11px 16px;border-radius:12px}.streak>span{font-size:23px}.streak b,.streak small{display:block}.streak small{font-size:12px;color:#9a6832}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:28px 0}.stats article{background:white;border:1px solid var(--line);border-radius:14px;padding:17px;display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;box-shadow:0 7px 24px rgba(16,24,40,.035)}.stats span{color:var(--muted);font-size:12px;display:block}.stats strong{font:800 22px Manrope}.stats strong small{font-size:13px;color:#9a9fb0}.stats .date{font-size:15px}.stat-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:20px}.purple{background:#eeeaff;color:#6346ea}.blue{background:#e8f1ff;color:#2e75ea}.green{background:#e5f8f1;color:#079e6b}.orange{background:#fff1df;color:#e5841d}.mini-bar{grid-column:1/-1;height:4px;background:#eee;border-radius:4px}.bar{height:6px;background:#e9eaf0;border-radius:20px;overflow:hidden}.bar i,.mini-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--purple),var(--purple2));border-radius:inherit}.continue-card{display:grid;grid-template-columns:36% 1fr;background:linear-gradient(118deg,#171833,#222348);border-radius:20px;overflow:hidden;color:white;box-shadow:0 20px 50px rgba(20,20,50,.16)}.course-art{min-height:262px;display:flex;align-items:center;justify-content:center;gap:14px;background:radial-gradient(circle at 25% 10%,#413882,transparent 48%),linear-gradient(135deg,#181a38,#22275c);position:relative}.course-art>span{font-weight:800;background:#fff;color:#191b37;padding:10px;border-radius:10px}.course-art>b{color:#8d79ff}.phone{width:115px;height:204px;border:5px solid #b1a6ff;border-radius:22px;padding:18px 10px;background:#1d2044;position:relative;box-shadow:0 17px 30px #101124}.phone-head{width:38px;height:5px;background:#6b649d;border-radius:10px;margin:-11px auto 18px}.bubble{height:25px;border-radius:8px;margin:10px 0}.bubble.left{width:78%;background:#3c416e}.bubble.right{width:65%;margin-left:auto;background:#775ff0}.flow-line{height:2px;background:#625a9e;margin-top:23px}.mini-nodes{display:flex;justify-content:space-around;margin-top:-6px}.mini-nodes i{width:10px;height:10px;background:#8f79ff;border-radius:50%;box-shadow:0 0 0 4px #2a2d58}.continue-content{padding:38px 42px;align-self:center}.continue-content .eyebrow{color:#a898ff}.continue-content h2{font:800 25px Manrope;margin:8px 0}.continue-content p{color:#c0c3d8}.progress-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;margin:26px 0 20px}.progress-row .bar{background:#343653}.progress-row span{font-size:12px;color:#b9bdd2}.primary,.secondary{border:0;border-radius:10px;padding:12px 17px;font:700 14px 'DM Sans';cursor:pointer}.primary{background:linear-gradient(135deg,#7659f8,#6242eb);color:#fff;box-shadow:0 8px 18px rgba(100,70,230,.25)}.primary b{margin-left:14px}.secondary{background:#fff;border:1px solid var(--line);color:#2d3142}.section-head{display:flex;align-items:end;justify-content:space-between;margin:36px 0 15px}.section-head h2{font:800 24px Manrope;margin:6px 0 0}.text-btn,.back{border:0;background:none;color:#6550da;font-weight:700;cursor:pointer}.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.levels article{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden}.level-top{height:115px;padding:17px;display:flex;justify-content:space-between;color:white}.level-top>span{font:800 38px Manrope;opacity:.35}.foundation{background:linear-gradient(135deg,#6651df,#8d72fa)}.professional{background:linear-gradient(135deg,#1d4b8d,#367de6)}.production{background:linear-gradient(135deg,#174c4b,#269a78)}.level-icon{align-self:center;font-size:42px}.level-body{padding:20px}.tag{font-size:10px;letter-spacing:1.4px;font-weight:800;color:#6c54ee}.level-body h3{font:800 18px Manrope;margin:7px 0}.level-body p{color:var(--muted);font-size:14px;line-height:1.5;min-height:42px}.level-meta{display:flex;justify-content:space-between;color:#777d8d;font-size:12px;margin:18px 0 8px}.level-meta b{color:#4f3fd2}.course-header{background:linear-gradient(120deg,#171833,#282653);color:#fff;border-radius:20px;padding:35px 38px;display:flex;justify-content:space-between;align-items:center}.course-header p{color:#c6c8d9;max-width:650px;line-height:1.55}.ring{width:132px;display:grid;place-items:center;position:relative}.ring svg{width:80px;transform:rotate(-90deg)}.ring circle{fill:none;stroke:#40415e;stroke-width:7}.ring .ring-progress{stroke:#8b70ff;stroke-dasharray:201;stroke-dashoffset:165;stroke-linecap:round}.ring b{position:absolute;top:30px;font:800 17px Manrope}.ring small{font-size:11px;color:#aeb2c8;margin-top:5px}.course-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;margin-top:24px}.module-list{display:grid;gap:12px}.module{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.module-head{width:100%;border:0;background:#fff;padding:18px;display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;text-align:left;cursor:pointer}.module-num{width:46px;height:46px;border-radius:12px;background:#efecff;color:#674aea;display:grid;place-items:center;font:800 14px Manrope}.module-head h3{margin:0 0 4px;font:700 16px Manrope}.module-head p{margin:0;color:var(--muted);font-size:13px}.module-head>span:last-child{font-size:20px;color:#8b90a0}.module-lessons{display:none;border-top:1px solid var(--line);padding:7px 18px 14px 80px}.module.open .module-lessons{display:block}.module-lessons button{display:flex;width:100%;align-items:center;gap:12px;border:0;background:transparent;text-align:left;padding:10px 0;color:#4d5364;cursor:pointer}.module-lessons i{width:23px;height:23px;border:1px solid #d8dbe4;border-radius:50%;font-style:normal;font-size:11px;display:grid;place-items:center}.module-lessons button:hover{color:#5f47db}.project-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;height:max-content;position:sticky;top:94px}.project-panel h3{font:800 20px/1.25 Manrope}.project-panel p,.project-panel li{color:var(--muted);font-size:14px;line-height:1.5}.project-panel ul{list-style:none;padding:0}.project-panel li{padding:7px 0;border-bottom:1px solid #eee}.project-panel li:before{content:'✓';color:var(--green);font-weight:800;margin-right:9px}.project-panel button{width:100%;margin-top:10px}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px}.lesson-main{background:#fff;border:1px solid var(--line);border-radius:17px;padding:30px}.back{padding:0;margin-bottom:25px}.lead{line-height:1.55;max-width:740px}.video-placeholder{height:410px;margin:28px 0 20px;border-radius:15px;background:radial-gradient(circle at 50% 40%,#39336b,#17182d 65%);display:grid;place-items:center;align-content:center;color:#fff;position:relative}.play{width:70px;height:70px;border-radius:50%;background:#7357ef;display:grid;place-items:center;padding-left:5px;font-size:24px;box-shadow:0 0 0 12px rgba(117,88,240,.16)}.video-placeholder span{font-weight:800;letter-spacing:2px;font-size:11px;margin-top:20px;color:#bdb6ee}.video-placeholder small{position:absolute;right:17px;bottom:14px;background:#0e0e1b;padding:5px 8px;border-radius:5px}.lesson-tabs{border-bottom:1px solid var(--line);display:flex;gap:25px}.lesson-tabs button{border:0;background:none;padding:13px 0;font-weight:700;color:#8b8f9d}.lesson-tabs button.active{color:#654be4;border-bottom:2px solid #654be4}.lesson-copy{padding:8px 4px}.lesson-copy h2{font:800 21px Manrope;margin-top:24px}.lesson-copy li{padding:5px 0;color:#505667}.flow{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f7f6ff;border:1px solid #e6e1ff;border-radius:12px;padding:19px}.flow span{background:white;border:1px solid #ddd8ff;border-radius:8px;padding:10px 14px;font-weight:700;font-size:13px}.flow b{color:#6b53ea}.notice{border-left:4px solid #7659ed;background:#f6f3ff;padding:15px 17px;margin-top:22px}.notice b{color:#5d43d8}.notice p{margin:4px 0;color:#5d6170}.lesson-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px}.lesson-sidebar{background:#fff;border:1px solid var(--line);border-radius:16px;height:max-content;position:sticky;top:94px;overflow:hidden}.lesson-progress{padding:20px;background:#f5f3ff}.lesson-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:9px;font-size:13px}.lesson-sidebar h3{padding:0 18px}.lesson-items button{display:flex;width:100%;gap:11px;border:0;border-top:1px solid #f0f0f4;background:#fff;padding:14px 17px;text-align:left;color:#5a6070}.lesson-items button.current{background:#f3f0ff;color:#5b41d9}.lesson-items button i{width:25px;height:25px;flex:0 0 25px;border-radius:50%;border:1px solid #d8dae4;display:grid;place-items:center;font-style:normal;font-size:11px}.lesson-items button.done i{background:#e3f8f0;border-color:#b7ead8;color:#079969}.lesson-items span{font-size:13px;font-weight:700}.lesson-items small{display:block;font-weight:400;color:#979ba8;margin-top:4px}.empty{background:#fff;border:1px solid var(--line);border-radius:17px;padding:60px;text-align:center}.empty .big{font-size:45px}.empty h1{font:800 28px Manrope}.empty p{color:var(--muted)}
.nav-label{font-size:10px;letter-spacing:1.6px;color:#6f7594;padding:22px 14px 7px}.admin-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.admin-head h1{font:800 32px/1.1 Manrope;margin:7px 0}.admin-head p{margin:0;color:var(--muted)}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.admin-stats article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;display:flex;gap:13px;align-items:center}.admin-stat-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#eeeaff;color:#6247e9;font-size:19px}.admin-stats small,.admin-stats strong{display:block}.admin-stats small{color:var(--muted);font-size:12px}.admin-stats strong{font:800 23px Manrope;margin-top:2px}.admin-stats .small-value{font-size:16px}.admin-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px}.admin-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:21px}.card-title{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:12px}.card-title h2,.card-title h3{font:800 20px Manrope;margin:0}.card-title p{margin:5px 0 0;color:var(--muted);font-size:13px}.card-title.compact{border:0;padding:0}.admin-side{display:grid;gap:16px;align-content:start}.publish-card{background:linear-gradient(145deg,#17182f,#29264e);color:#fff}.publish-card h3{font:800 18px Manrope}.status-row{display:flex;justify-content:space-between;font-size:12px;color:#c5c7d9;margin:20px 0 9px}.status-row i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#35d49b;margin-right:5px}.publish-card .bar{background:#3b3a59}.wide{width:100%;margin-top:17px}.quick{width:100%;display:grid;grid-template-columns:35px 1fr auto;gap:10px;align-items:center;border:0;border-top:1px solid var(--line);background:white;text-align:left;padding:13px 0;color:var(--ink)}.quick>span{width:34px;height:34px;background:#f0edff;color:#684ce8;border-radius:9px;display:grid;place-items:center}.quick b,.quick small{display:block}.quick small{color:var(--muted);margin-top:2px}.quick i{font-style:normal;color:#8b90a0}.admin-module{border:1px solid var(--line);border-radius:12px;margin-top:10px;overflow:hidden}.admin-module-head{padding:15px;display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center}.drag{color:#b0b4c0;letter-spacing:1px}.admin-module-head h3{font:700 15px Manrope;margin:0}.admin-module-head p{font-size:12px;color:var(--muted);margin:4px 0 0}.module-actions{display:flex;gap:6px}.module-actions button{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:8px;color:#707686}.admin-lessons{border-top:1px solid var(--line);background:#fafaff;padding:6px 14px}.admin-lesson{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:11px 5px;border-bottom:1px solid #ececf2}.admin-lesson:last-child{border:0}.lesson-type{width:27px;height:27px;border-radius:7px;background:#ebe7ff;color:#6046dc;display:grid;place-items:center;font-size:11px}.admin-lesson b{display:block;font-size:13px}.admin-lesson small{color:var(--muted)}.pill{font-size:10px;font-weight:800;border-radius:20px;padding:5px 8px}.pill.published{background:#e2f7ef;color:#087b59}.pill.draft{background:#fff0dc;color:#a55c09}.admin-dialog{width:min(720px,calc(100% - 30px));border:0;border-radius:18px;padding:0;box-shadow:0 30px 90px rgba(20,20,45,.28)}.admin-dialog::backdrop{background:rgba(17,19,41,.65);backdrop-filter:blur(3px)}.admin-dialog form{padding:26px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.dialog-head h2{font:800 24px Manrope;margin:5px 0}.close-dialog{border:0;background:#f1f2f6;width:34px;height:34px;border-radius:9px;font-size:23px;color:#6a6f7e}.admin-dialog label{display:block;font-size:13px;font-weight:700;color:#464b5a;margin-bottom:17px}.admin-dialog input,.admin-dialog select,.admin-dialog textarea{width:100%;font:500 14px 'DM Sans';border:1px solid #dfe2e9;border-radius:9px;padding:12px;margin-top:7px;background:white}.admin-dialog textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.upload-zone{border:1.5px dashed #bfc2d1;background:#f9f9ff;border-radius:12px;padding:18px;display:grid;grid-template-columns:42px 1fr auto;gap:13px;align-items:center;margin-bottom:17px}.upload-zone>span{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:#ebe7ff;color:#6349df;font-size:22px}.upload-zone b{font-size:14px}.upload-zone p{margin:4px 0 0;color:var(--muted);font-size:12px}.selected-file{background:#e7f7f1;color:#0a7557;border-radius:9px;padding:11px 13px;margin:-7px 0 16px;font-size:13px}.toggle-row{display:flex!important;align-items:center;gap:12px;background:#f8f8fb;border-radius:10px;padding:12px}.toggle-row input{display:none}.toggle-row>span{width:38px;height:22px;border-radius:20px;background:#c8cbd5;position:relative;flex:0 0 auto}.toggle-row>span:after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.2s}.toggle-row input:checked+span{background:#6d50eb}.toggle-row input:checked+span:after{left:19px}.toggle-row b,.toggle-row small{display:block}.toggle-row small{color:var(--muted);font-weight:400;margin-top:2px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.small-dialog{max-width:560px}.toast{position:fixed;right:24px;bottom:24px;background:#16182d;color:#fff;border-radius:12px;padding:14px 18px;box-shadow:0 15px 45px rgba(0,0,0,.25);z-index:100;animation:toastIn .25s ease}.toast b,.toast span{display:block}.toast span{font-size:12px;color:#bdc0d0;margin-top:3px}@keyframes toastIn{from{transform:translateY(15px);opacity:0}}
@media(max-width:1050px){.stats,.admin-stats{grid-template-columns:repeat(2,1fr)}.levels{grid-template-columns:1fr 1fr}.course-layout,.lesson-layout,.admin-layout{grid-template-columns:1fr}.project-panel,.lesson-sidebar{position:static}.lesson-sidebar{order:-1}.video-placeholder{height:340px}}
@media(max-width:760px){.shell{display:block}.sidebar{position:fixed;left:-280px;z-index:20;width:260px;transition:.25s}.sidebar.open{left:0;box-shadow:20px 0 50px rgba(0,0,0,.2)}.topbar{padding:0 16px}.menu{display:block}.crumb{display:none}.page{padding:24px 16px 55px}.welcome{align-items:flex-start}.welcome h1,.course-header h1,.lesson-main h1,.admin-head h1{font-size:26px}.welcome p{max-width:250px}.streak{padding:8px}.stats,.admin-stats{grid-template-columns:1fr 1fr}.continue-card{grid-template-columns:1fr}.course-art{min-height:210px}.continue-content{padding:27px}.levels{grid-template-columns:1fr}.course-header{padding:26px;align-items:flex-start}.ring{display:none}.course-layout{grid-template-columns:1fr}.lesson-main{padding:22px 18px}.video-placeholder{height:230px}.flow{flex-wrap:wrap;justify-content:center}.lesson-footer{gap:10px}.lesson-footer button{padding:10px;font-size:12px}.admin-head{align-items:flex-start;gap:15px}.form-grid{grid-template-columns:1fr}.upload-zone{grid-template-columns:42px 1fr}.upload-zone button{grid-column:1/-1}.admin-dialog form{padding:20px}}
@media(max-width:470px){.stats{grid-template-columns:1fr}.welcome{display:block}.streak{margin-top:18px;width:max-content}.section-head{align-items:center}.text-btn{font-size:12px}.course-art{min-height:180px}.module-lessons{padding-left:28px}}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 15% 10%,#3c347d 0,transparent 35%),radial-gradient(circle at 90% 85%,#253e73 0,transparent 32%),#111329}.auth-screen[hidden],.shell[hidden]{display:none!important}.auth-brand{position:absolute;top:30px;left:34px;display:flex;align-items:center;gap:11px;color:#fff}.auth-brand strong,.auth-brand span{display:block}.auth-brand strong{font:800 19px Manrope}.auth-brand span{font-size:10px;letter-spacing:2.2px;color:#abaec8}.auth-card{width:min(440px,100%);background:#fff;border-radius:22px;padding:38px;box-shadow:0 30px 90px rgba(0,0,0,.3)}.auth-card h1{font:800 30px/1.2 Manrope;margin:9px 0}.auth-card>p{color:var(--muted);line-height:1.5;margin:0 0 25px}.auth-card label{display:block;font-size:13px;font-weight:700;color:#3e4352;margin:15px 0}.auth-card input{width:100%;border:1px solid #dcdfe8;border-radius:10px;padding:13px 14px;margin-top:7px;font:500 15px 'DM Sans'}.auth-card input:focus{outline:3px solid #ebe7ff;border-color:#7458ef}.password-field{position:relative}.password-field input{padding-right:52px}.password-toggle{position:absolute;right:7px;top:14px;width:38px;height:38px;border:0;border-radius:8px;background:transparent;color:#667085;font-size:20px;display:grid;place-items:center;cursor:pointer}.password-toggle:hover,.password-toggle:focus-visible{background:#f0edff;color:#5f45df}.password-toggle:focus-visible{outline:2px solid #7458ef;outline-offset:1px}.auth-submit{width:100%;margin-top:8px;padding:14px}.auth-submit:disabled{opacity:.65;cursor:wait}.auth-error{background:#fff0f1;color:#a7333f;border:1px solid #ffd4d8;border-radius:9px;padding:11px 12px;font-size:13px;margin:8px 0}.auth-help{display:block;color:#777d8d;line-height:1.45;text-align:center;margin-top:19px}.logout-button{cursor:pointer}@media(max-width:760px){.auth-screen{padding:20px}.auth-brand{top:22px;left:22px}.auth-card{padding:28px 22px}.auth-card h1{font-size:26px}}
.admin-module-head.module-toggle{width:100%;border:0;background:#fff;text-align:left;cursor:pointer}.admin-module:not(.open) .admin-lessons{display:none}.admin-lesson{width:100%;border-left:0;border-right:0;border-top:0;background:#fafaff;text-align:left;cursor:pointer}.admin-lesson:hover{background:#f1efff}.admin-lesson .pill{justify-self:end}.lesson-video{display:block;width:100%;max-height:520px;margin:28px 0 20px;border-radius:15px;background:#111329}.guide-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.recording-steps{list-style:none;padding:0;display:grid;gap:11px}.recording-steps li{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;padding:13px 14px;background:#f8f7ff;border:1px solid #e8e3ff;border-radius:11px}.recording-steps li>b{width:30px;height:30px;border-radius:9px;background:#6c4df6;color:#fff;display:grid;place-items:center}.practice-box{display:grid;grid-template-columns:42px 1fr;gap:13px;align-items:start;margin-top:22px;padding:17px;background:#eef8ff;border:1px solid #d8edff;border-radius:12px}.practice-box>span{width:40px;height:40px;display:grid;place-items:center;background:#fff;color:#3578f6;border-radius:10px}.practice-box b,.practice-box p{display:block;margin:0}.practice-box p{color:#536072;margin-top:5px;line-height:1.5}.deliverable-box{margin-top:12px;padding:14px 16px;border-left:4px solid #18a979;background:#edfaf5;color:#385c50}.lesson-footer button:disabled{opacity:.4;cursor:not-allowed}
.video-upload-card{margin:0 0 24px;padding:22px;border:1px solid #ddd8ff;border-radius:15px;background:linear-gradient(145deg,#fbfaff,#f5f3ff)}.upload-card-head{display:flex;justify-content:space-between;gap:20px}.upload-card-head h2{font:800 20px Manrope;margin:5px 0}.upload-card-head p{color:var(--muted);font-size:13px;line-height:1.5;margin:0;max-width:580px}.storage-badge{height:max-content;background:#e5f8f1;color:#087b59;border-radius:20px;padding:6px 10px;font-size:11px;font-weight:800;white-space:nowrap}.video-file-picker{display:grid;grid-template-columns:44px 1fr;gap:13px;align-items:center;margin-top:18px;padding:18px;border:1.5px dashed #aaa0e8;border-radius:12px;background:#fff;cursor:pointer}.video-file-picker:hover{border-color:#6c4df6;background:#fcfbff}.video-file-picker input{position:absolute;opacity:0;pointer-events:none}.video-file-picker>span{width:42px;height:42px;border-radius:10px;background:#eeeaff;color:#6346ea;display:grid;place-items:center;font-size:22px}.video-file-picker b,.video-file-picker small{display:block}.video-file-picker small{color:var(--muted);margin-top:4px}.video-settings{display:grid;grid-template-columns:1fr 1.5fr;gap:14px;margin-top:15px}.video-settings>label{font-size:13px;font-weight:700;color:#464b5a}.video-settings input[type=text],.video-settings input:not([type]){width:100%;border:1px solid #dfe2e9;border-radius:9px;padding:11px;margin-top:7px}.publish-check{display:flex!important;align-items:center;gap:11px;padding:10px 13px;background:#fff;border:1px solid var(--line);border-radius:10px}.publish-check input{display:none}.publish-check>span{width:38px;height:22px;border-radius:20px;background:#c8cbd5;position:relative;flex:0 0 auto}.publish-check>span:after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.2s}.publish-check input:checked+span{background:#6d50eb}.publish-check input:checked+span:after{left:19px}.publish-check b,.publish-check small{display:block}.publish-check small{color:var(--muted);font-weight:400;margin-top:2px}.upload-video-button{width:100%;margin-top:15px}.upload-video-button:disabled{opacity:.6;cursor:wait}.upload-status{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin-top:15px;font-size:12px}.upload-progress{height:8px;background:#e1dfeb;border-radius:20px;overflow:hidden}.upload-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#6c4df6,#18a979);transition:width .2s}.upload-spinner{width:38px;height:38px;border:4px solid #4a456c;border-top-color:#8b6cff;border-radius:50%;animation:spin .8s linear infinite}.video-error{background:#34202a}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:760px){.upload-card-head{display:block}.storage-badge{display:inline-block;margin-top:10px}.video-settings{grid-template-columns:1fr}.video-upload-card{padding:17px}}
.video-action-bar{display:flex;justify-content:flex-end;gap:10px;margin:-8px 0 22px}.danger-button{border:1px solid #f1b9be;background:#fff1f2;color:#b42331;border-radius:10px;padding:11px 16px;font:700 14px 'DM Sans';cursor:pointer}.danger-button:hover{background:#ffe4e6}.danger-button:disabled{opacity:.6;cursor:wait}@media(max-width:560px){.video-action-bar{justify-content:stretch}.video-action-bar button{flex:1;padding:10px 8px;font-size:12px}}
.complete-button{border:1px solid #bfe7d8;background:#e9f8f2;color:#087b59;border-radius:10px;padding:12px 17px;font:700 14px 'DM Sans';cursor:pointer}.complete-button:hover,.complete-button.completed{background:#159b70;border-color:#159b70;color:#fff}.complete-button:disabled{opacity:.65;cursor:wait}.module-lessons button.done{color:#087b59}.module-lessons button.done i{background:#e3f8f0;border-color:#b7ead8;color:#079969}.module-lessons button.locked,.lesson-items button.locked{opacity:.55;cursor:not-allowed}.lesson-items button.done:not(.current){color:#087b59}@media(max-width:760px){.lesson-footer{flex-wrap:wrap}.lesson-footer .complete-button{order:-1;flex-basis:100%}}
.student-form-card,.students-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:20px}.student-form-card[hidden]{display:none}.student-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.student-form-grid label{font-size:13px;font-weight:700;color:#464b5a}.student-form-grid input,.student-form-grid select,.students-toolbar input{width:100%;border:1px solid #dfe2e9;border-radius:9px;padding:12px;margin-top:7px;font:500 14px 'DM Sans';background:#fff}.close-inline{border:0;background:#f1f2f6;width:34px;height:34px;border-radius:9px;font-size:22px}.form-submit-row{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.form-submit-row small{color:var(--muted)}.student-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.student-summary article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.student-summary span,.student-summary strong{display:block}.student-summary span{font-size:13px;color:var(--muted)}.student-summary strong{font:800 26px Manrope;margin-top:5px}.students-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.students-toolbar h2{font:800 20px Manrope;margin:0}.students-toolbar p{font-size:13px;color:var(--muted);margin:4px 0}.students-toolbar input{max-width:260px;margin:0}.student-table-head,.student-row{display:grid;grid-template-columns:2fr .8fr 1.4fr 1fr;gap:16px;align-items:center}.student-table-head{padding:10px 14px;background:#f7f8fc;border-radius:9px;color:var(--muted);font-size:12px;font-weight:700}.student-row{padding:15px 14px;border-bottom:1px solid var(--line)}.student-row:last-child{border:0}.student-person{display:flex;align-items:center;gap:11px}.student-person b,.student-person small{display:block}.student-person small,.student-progress-cell small{color:var(--muted);font-size:12px;margin-top:3px}.access-pill{display:inline-block;border-radius:20px;padding:6px 9px;font-size:11px;font-weight:800}.access-pill.active{background:#e3f8f0;color:#087b59}.access-pill.suspended{background:#fff0f1;color:#a7333f}.student-progress-cell{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px}.student-progress-cell .bar{min-width:80px}.suspend-button,.activate-button{border-radius:8px;padding:9px 11px;font:700 12px 'DM Sans';cursor:pointer}.suspend-button{background:#fff;border:1px solid #efb8bd;color:#ad2d3b}.activate-button{background:#e8f8f2;border:1px solid #b8e6d5;color:#087b59}.students-loading,.students-empty{min-height:180px;display:grid;place-items:center;align-content:center;text-align:center;color:var(--muted);gap:10px}.students-empty b{color:var(--ink)}.students-empty p{margin:0 0 8px}@media(max-width:760px){.student-form-grid,.student-summary{grid-template-columns:1fr}.form-submit-row,.students-toolbar{align-items:stretch;flex-direction:column}.students-toolbar input{max-width:none}.student-table-head{display:none}.student-row{grid-template-columns:1fr 1fr}.student-person,.student-progress-cell{grid-column:1/-1}.student-row>div:last-child{text-align:right}}
.assignment-list{display:grid;gap:18px}.assignment-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}.assignment-card-head{display:flex;justify-content:space-between;gap:20px}.assignment-card-head h2{font:800 21px Manrope;margin:6px 0}.assignment-card-head p{margin:0;color:var(--muted);line-height:1.55}.assignment-state{height:max-content;border-radius:20px;padding:6px 9px;font-size:11px;font-weight:800}.assignment-state.published{background:#e3f8f0;color:#087b59}.assignment-state.draft{background:#fff0dc;color:#a55c09}.assignment-meta{display:flex;flex-wrap:wrap;gap:18px;margin:18px 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.submission-zone{background:#f8f8fc;border-radius:12px;padding:17px}.submission-status-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.submission-status{border-radius:20px;padding:5px 8px;background:#eceef4;color:#606676;font-size:11px;font-weight:800}.submission-status.submitted{background:#e8f1ff;color:#2e75ea}.submission-status.passed{background:#e3f8f0;color:#087b59}.submission-status.revision_required{background:#fff0dc;color:#a55c09}.submission-form label,.review-grid label{display:block;font-size:13px;font-weight:700;color:#464b5a;margin-bottom:13px}.submission-form textarea,.submission-form input,.review-grid textarea,.review-grid input,.review-grid select,.student-form-grid textarea{width:100%;border:1px solid #dfe2e9;border-radius:9px;padding:11px;margin-top:6px;font:500 14px 'DM Sans';background:#fff}.submit-assignment{margin-top:5px}.feedback-box{background:#eef8ff;border-left:4px solid #3578f6;padding:13px 15px;margin-bottom:14px}.feedback-box p{margin:5px 0}.feedback-box span{font-size:12px;color:#2e75ea;font-weight:800}.file-link{border:0;background:transparent;color:#5f47db;font-weight:700;cursor:pointer;padding:8px 0}.passed-note{color:#087b59;font-weight:700}.admin-submissions h3{font:800 16px Manrope}.review-form{border:1px solid var(--line);border-radius:12px;padding:15px;margin-top:12px}.submission-student{display:flex;align-items:center;gap:10px}.submission-student b,.submission-student small{display:block}.submission-student small{font-size:12px;color:var(--muted);margin-top:2px}.answer-preview{background:#f7f8fc;border-radius:8px;padding:12px;margin:12px 0;white-space:pre-wrap;color:#4f5565}.review-grid{display:grid;grid-template-columns:140px 180px 1fr;gap:12px;margin-top:12px}.wide-field{grid-column:1/-1}.save-review{margin-top:4px}.no-submissions{color:var(--muted);font-size:13px;padding:12px 0}.assignment-publish{margin-top:14px!important}@media(max-width:760px){.assignment-card{padding:18px}.assignment-card-head{display:block}.assignment-state{display:inline-block;margin-top:12px}.review-grid{grid-template-columns:1fr}}
.youtube-player-wrap{position:relative;width:100%;aspect-ratio:16/9;margin:28px 0 20px;border-radius:15px;overflow:hidden;background:#111329}.youtube-player{width:100%;height:100%;max-height:none;margin:0;border:0;border-radius:0}.video-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.video-source-option{position:relative;padding:17px;border:1px solid var(--line);border-radius:13px;background:#fff}.video-source-option.recommended{border:1.5px solid #7960ef;background:#fbfaff;box-shadow:0 8px 22px rgba(108,77,246,.08)}.source-label{display:inline-block;padding:5px 8px;border-radius:20px;background:#ebe6ff;color:#5d43d8;font-size:10px;font-weight:800;letter-spacing:.6px}.source-label.neutral{background:#eef1f5;color:#5b6270}.source-title{display:grid;grid-template-columns:39px 1fr;gap:10px;align-items:center;margin:14px 0}.source-title>span{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#6c4df6;color:#fff}.source-title b,.source-title small{display:block}.source-title small{color:var(--muted);font-size:12px;margin-top:3px}.video-source-option>label{display:block;color:#464b5a;font-size:13px;font-weight:700}.video-source-option input[type=url]{width:100%;margin-top:7px;padding:12px;border:1px solid #dfe2e9;border-radius:9px;font:14px 'DM Sans'}.video-source-option .video-file-picker{margin-top:0;padding:12px}.source-action{width:100%;margin-top:13px}.youtube-status{margin-top:11px;padding:10px 12px;border-radius:8px;background:#f0edff;color:#55429f;font-size:12px}.video-action-bar{display:flex;gap:10px;flex-wrap:wrap;margin:-7px 0 22px}@media(max-width:760px){.video-source-grid{grid-template-columns:1fr}.youtube-player-wrap{border-radius:11px}.source-action{min-height:46px}}
.auth-success{background:#ecfbf3;color:#18724a;border:1px solid #bdebd2;border-radius:9px;padding:12px;font-size:13px;line-height:1.45;margin:8px 0}.auth-link{display:block;width:max-content;margin:15px auto 0;padding:5px;border:0;background:transparent;color:#6047dd;font:700 14px 'DM Sans';cursor:pointer}.auth-link:hover{text-decoration:underline}.auth-link:focus-visible{outline:2px solid #7458ef;outline-offset:3px;border-radius:4px}
.article-lesson{margin-top:20px}.article-lesson>section{padding:8px 0 18px;border-bottom:1px solid var(--line)}.article-lesson>section:last-of-type{border-bottom:0}.article-lesson p{color:#545b6c;line-height:1.75}.article-lesson ul{display:grid;gap:9px;color:#424959;line-height:1.6}
.article-intro{font-size:17px;background:linear-gradient(135deg,#f3f0ff,#eef7ff);border:1px solid #dfd9ff;border-radius:14px;padding:18px 20px;margin:20px 0}.project-roadmap{padding-top:20px!important}.project-step-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-step-grid>article{display:grid;grid-template-columns:46px 1fr;gap:13px;align-items:start;padding:16px;background:#faf9ff;border:1px solid #e7e2ff;border-radius:13px}.project-step-grid>article>b{width:42px;height:42px;border-radius:12px;background:#6848f3;color:#fff;display:grid;place-items:center;font:800 13px Manrope}.project-step-grid h3{font:800 16px Manrope;margin:1px 0 5px}.project-step-grid p{font-size:14px;margin:0!important;line-height:1.55!important}.submission-requirements>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.submission-requirements article{padding:17px;border:1px solid #dfe5f0;border-radius:13px;background:#fff}.submission-requirements article>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#eef0ff;color:#5f47db;font-weight:800;margin-bottom:12px}.submission-requirements b{font:800 15px Manrope}.submission-requirements p{font-size:13px;margin:6px 0 0;line-height:1.55}.rubric-section{background:#111329!important;color:#fff;border-radius:15px;padding:20px!important;margin:20px 0;border-bottom:0!important}.rubric-heading{display:flex;align-items:center;justify-content:space-between}.rubric-heading h2{margin:0}.rubric-heading strong{background:#6c4df6;border-radius:20px;padding:7px 12px}.rubric-list{margin-top:16px}.rubric-list>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12)}.rubric-list span{color:#e5e7f2}.rubric-list b{white-space:nowrap}.rubric-section .pass-score{color:#8fe3c3;margin:16px 0 0}.project-submit-callout{display:grid!important;grid-template-columns:50px 1fr;gap:14px;background:#edfaf5;border:1px solid #c9efdf!important;border-radius:15px;padding:20px!important;margin:20px 0}.project-submit-callout>span{width:46px;height:46px;border-radius:13px;background:#18a979;color:#fff;display:grid;place-items:center;font-size:22px}.project-submit-callout h2{margin:0 0 5px}.project-submit-callout p{margin:0 0 14px}.final-project-submission{border:1px solid #ddd6ff;background:linear-gradient(180deg,#faf9ff,#f6f7fb)}
@media(max-width:760px){.project-step-grid,.submission-requirements>div{grid-template-columns:1fr}.rubric-list>div{align-items:flex-start}.project-submit-callout{grid-template-columns:1fr}.project-submit-callout>span{width:42px;height:42px}}
.profile-menu-wrap{position:relative;margin-top:18px;padding-top:14px;border-top:1px solid #2e314b}.profile-menu-wrap .profile{width:100%;margin:0;padding:6px 5px;border:0;border-radius:10px;background:transparent;color:#fff;text-align:left;cursor:pointer}.profile-menu-wrap .profile:hover,.profile-menu-wrap .profile[aria-expanded=true]{background:#242642}.profile-menu-wrap .profile-chevron{margin-left:auto;color:#aaa;font-size:15px;transition:transform .2s}.profile-menu-wrap .profile[aria-expanded=true] .profile-chevron{transform:rotate(180deg)}.profile-menu{position:absolute;left:0;right:0;bottom:58px;z-index:30;padding:8px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 45px rgba(0,0,0,.28)}.profile-menu[hidden]{display:none}.profile-menu-account{padding:9px 10px 11px;border-bottom:1px solid var(--line);overflow:hidden}.profile-menu-account small,.profile-menu-account b{display:block}.profile-menu-account small{font-size:10px;color:var(--muted);letter-spacing:1px}.profile-menu-account b{margin-top:4px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu button{width:100%;display:flex;align-items:center;gap:9px;border:0;background:transparent;border-radius:8px;padding:10px;color:#323747;font:700 13px 'DM Sans';text-align:left;cursor:pointer}.profile-menu button:hover{background:#f1efff;color:#6047dd}.profile-menu .logout-button{color:#b42331}.profile-menu button span{font-size:17px}
.student-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 34px;background:#fff5d9;border-bottom:1px solid #f0d48a;color:#6c4f00}.student-preview-bar[hidden]{display:none}.student-preview-bar b,.student-preview-bar span{display:block}.student-preview-bar span{margin-top:2px;font-size:12px}.student-preview-bar button{border:1px solid #c89d28;background:#fff;color:#765900;border-radius:9px;padding:9px 13px;font:700 13px 'DM Sans';cursor:pointer;white-space:nowrap}@media(max-width:760px){.student-preview-bar{align-items:flex-start;padding:11px 16px}.student-preview-bar span{display:none}.student-preview-bar button{font-size:12px;padding:8px 10px}}
