:root{--ink:#1c1c2b;--muted:#77768b;--line:#ecebf2;--panel:#fff;--bg:#f8f8fb;--purple:#6756d9;--purple-soft:#eeecff;--orange:#ef8d50;--green:#35a57b;--shadow:0 10px 28px rgba(32,28,70,.06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}.app-shell{display:flex;min-height:100vh}.sidebar{width:245px;background:#fff;border-right:1px solid var(--line);padding:27px 16px 20px;display:flex;flex-direction:column}.brand{font-family:Manrope,sans-serif;font-size:20px;font-weight:800;letter-spacing:-1px;display:flex;align-items:center;gap:8px;padding:0 11px 32px}.brand-mark{display:grid;place-items:center;color:#fff;background:var(--purple);width:25px;height:25px;border-radius:8px;font-size:14px}.brand-dot{color:var(--orange)}.workspace-switch{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;align-items:center;gap:9px;margin-bottom:25px}.workspace-switch b{font-size:12px;display:block}.workspace-switch small{font-size:10px;color:var(--muted)}.chevron{margin-left:auto;color:var(--muted)}.avatar{width:34px;height:34px;background:#f7d5c4;color:#9f5e40;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700}.avatar.small{width:27px;height:27px;font-size:9px}.nav-label,.eyebrow{font-size:10px;letter-spacing:1.3px;font-weight:700;color:#9b9aa9;margin:0 11px 10px}.nav-label{margin-top:17px}.nav-item{display:flex;align-items:center;gap:13px;color:#818093;text-decoration:none;padding:11px;border-radius:10px;margin:3px 0;font-weight:600}.nav-item span{width:17px;text-align:center;font-size:17px}.nav-item em{font-style:normal;font-size:10px;background:var(--purple-soft);color:var(--purple);padding:2px 6px;border-radius:20px;margin-left:auto}.nav-item.active{background:#f0efff;color:var(--purple)}.sidebar-bottom{margin-top:auto}.upgrade-card{background:#292640;color:#fff;border-radius:15px;padding:17px;margin:18px 3px 0;position:relative;overflow:hidden}.upgrade-card:after{content:'';position:absolute;width:90px;height:90px;background:#6657d8;border-radius:50%;right:-35px;top:-30px;opacity:.45}.spark{color:#fac768;font-size:18px}.upgrade-card b{display:block;margin:7px 0;font-size:13px}.upgrade-card p{color:#c1bfd0;font-size:11px;margin:0 0 14px}.upgrade-card button{border:0;background:#fff;color:#383250;border-radius:7px;padding:8px 10px;font-size:10px;font-weight:700}.main{flex:1;min-width:0}.topbar{height:77px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:flex-end;padding:0 5.5%}.topbar-actions{display:flex;align-items:center;gap:16px}.icon-btn{background:none;border:0;font-size:24px;color:#8b8999;position:relative}.notification i{position:absolute;right:2px;top:2px;width:6px;height:6px;background:#ef8d50;border:2px solid #fff;border-radius:50%}.role-select{background:#fff;border:0;color:#656477;font-weight:600}.mobile-brand{display:none}.welcome,.stats-grid,.continue-card,.content-grid{width:min(1060px,88%);margin-left:auto;margin-right:auto}.welcome{padding:38px 0 27px;display:flex;align-items:end;justify-content:space-between}.welcome h1{font:800 31px Manrope,sans-serif;letter-spacing:-1.2px;margin:8px 0 7px}.wave{color:#efa35c;font-size:24px}.subtle{color:var(--muted);margin:0;line-height:1.55}.primary-btn{border:0;background:var(--purple);color:#fff;border-radius:9px;padding:12px 16px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 5px 12px rgba(103,86,217,.2)}.primary-btn span{margin-left:12px;font-size:17px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px;display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center}.stat-icon,.next-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;font-weight:700}.purple{background:var(--purple-soft);color:var(--purple)}.orange{background:#fff1e7;color:var(--orange)}.blue{background:#e9f2ff;color:#5c91db}.green{background:#e7f7f0;color:var(--green)}.stat-card span{color:var(--muted);font-size:11px;display:block}.stat-card strong{display:block;font:700 17px Manrope;margin-top:4px}.trend{grid-column:2;color:#5ca77d;font-size:10px;margin-top:-5px}.continue-card{margin-top:24px;background:#2f2b4a;color:#fff;border-radius:16px;padding:15px;display:flex;gap:21px;position:relative;box-shadow:var(--shadow)}.video-thumb{height:154px;width:270px;flex:none;border-radius:10px;overflow:hidden;position:relative;background:linear-gradient(130deg,#5c4ab3,#d07951)}.thumb-grid{inset:0;position:absolute;background:linear-gradient(100deg,transparent 45%,rgba(255,255,255,.2) 45%,transparent 47%),linear-gradient(20deg,transparent 55%,rgba(255,255,255,.17) 55%,transparent 57%);opacity:.7}.play{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);border:1px solid rgba(255,255,255,.7);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:12px}.duration{position:absolute;bottom:8px;right:9px;background:#211d37cc;padding:3px 6px;border-radius:4px;font-size:10px}.continue-copy{padding:14px 10px;flex:1}.continue-copy .eyebrow{margin-left:0;color:#b9b4dc}.continue-copy h2{font:700 23px Manrope;margin:12px 0 8px;letter-spacing:-.6px}.continue-copy .subtle{color:#c7c3d5;font-size:12px}.progress-line,.mini-progress{height:5px;border-radius:10px;background:#514c6a;overflow:hidden}.progress-line{margin:22px 0 12px}.progress-line span,.mini-progress span{display:block;height:100%;background:#f3ae65;border-radius:10px}.continue-meta{display:flex;align-items:center;justify-content:space-between;color:#c7c3d5;font-size:11px}.continue-meta .primary-btn{font-size:11px;padding:9px 12px}.bookmark{position:absolute;right:17px;top:15px;background:transparent;color:#fff;border:0;font-size:22px}.content-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;padding:35px 0 55px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.section-heading h2{font:700 20px Manrope;margin:5px 0 0}.section-heading a{color:var(--purple);font-weight:700;text-decoration:none;font-size:12px}.course-list{display:flex;flex-direction:column;gap:13px}.course-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:11px;display:flex;gap:15px}.course-art{width:150px;height:105px;border-radius:9px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:14px;font:700 11px Manrope;letter-spacing:.7px;flex:none}.course-art b{font-size:22px;align-self:flex-end;font-weight:400}.art-violet{background:linear-gradient(145deg,#5d50bd,#a696e8)}.art-sand{background:linear-gradient(145deg,#d88454,#f2c38b)}.art-blue{background:linear-gradient(145deg,#3773b0,#79bad1)}.course-info{padding:3px 5px;flex:1}.course-top{display:flex;justify-content:space-between;align-items:center}.pill{font-size:9px;border-radius:20px;padding:4px 7px;font-weight:700}.purple-pill{background:#eeecff;color:var(--purple)}.orange-pill{background:#fff0e6;color:#db7840}.blue-pill{background:#e8f2ff;color:#4f85c9}.muted{color:#9290a0;font-size:11px}.course-info h3{font:700 14px Manrope;line-height:1.35;margin:12px 0 5px}.course-info p{font-size:11px;color:var(--muted);margin:0 0 16px}.mini-progress{height:4px;background:#eeeef5}.mini-progress span{background:var(--purple)}.orange-bar span{background:var(--orange)}.next-card,.streak-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px}.next-item{display:flex;align-items:center;gap:11px;border-top:1px solid var(--line);padding:15px 0}.next-item:first-of-type{border-top:0}.next-item b{font-size:12px}.next-item p{color:var(--muted);font-size:10px;margin:4px 0 0}.next-icon{width:29px;height:29px;font-size:12px;flex:none}.arrow{margin-left:auto;color:#aaa8b4}.more{color:#aaa8b4;letter-spacing:2px}.streak-card{margin-top:15px}.streak-head{display:flex;justify-content:space-between}.streak-head h2{font:700 22px Manrope;margin:4px 0 13px}.streak-head h2 span{color:var(--orange)}.streak-ring{width:43px;height:43px;border-radius:50%;border:3px solid #f7c477;display:grid;place-items:center;font-weight:700;color:#c67d2e}.streak-card .subtle{font-size:11px}.week{display:flex;justify-content:space-between;margin-top:18px}.week i{font-style:normal;font-size:10px;color:#a9a7b4;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#f1f1f6}.week .done{background:#e9e5ff;color:var(--purple)}.week .today{background:var(--orange);color:#fff}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:#2f2b4a;color:white;padding:12px 18px;border-radius:8px;opacity:0;transition:.25s;pointer-events:none;font-size:12px}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:850px){.sidebar{width:205px}.stats-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.side-column{display:grid;grid-template-columns:1fr 1fr;gap:15px}.streak-card{margin-top:0}.welcome h1{font-size:26px}}
@media(max-width:640px){.sidebar{display:none}.topbar{height:62px;padding:0 6%}.mobile-brand{display:flex;margin:0;padding:0;font-size:17px}.topbar{justify-content:space-between}.topbar-actions{gap:10px}.role-select{display:none}.welcome,.stats-grid,.continue-card,.content-grid{width:88%}.welcome{padding:28px 0 22px;display:block}.welcome h1{font-size:24px}.welcome .primary-btn{margin-top:20px;width:100%}.stats-grid{gap:8px}.stat-card{padding:13px 11px}.stat-card strong{font-size:14px}.trend{font-size:9px}.continue-card{display:block;padding:10px}.video-thumb{width:100%;height:150px}.continue-copy{padding:15px 6px}.continue-copy h2{font-size:18px}.continue-meta{gap:8px}.content-grid{padding-top:27px}.course-art{width:105px;height:88px;font-size:9px}.course-card{gap:10px}.course-info h3{font-size:12px}.side-column{display:block}.streak-card{margin-top:15px}}
/* LMS application views */
.view-head{width:min(1060px,88%);margin:38px auto 26px;display:flex;justify-content:space-between;align-items:end}.view-head h1{font:800 31px Manrope;margin:8px 0}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px}.view-grid{width:min(1060px,88%);margin:auto;display:grid;grid-template-columns:1fr 260px;gap:20px}.filter-row{display:flex;gap:10px;margin-bottom:18px}.search-input,select{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 12px;color:var(--muted);font:inherit}.search-input{flex:1}.wide-list{display:grid;grid-template-columns:1fr 1fr;gap:13px}.side-stat strong{display:block;font:800 28px Manrope;color:var(--purple);margin-top:5px}.side-stat span{color:var(--muted);font-size:11px}.side-stat hr{border:0;border-top:1px solid var(--line);margin:20px 0}.learning-head{width:min(1060px,88%);margin:25px auto 18px;display:flex;justify-content:space-between;align-items:center}.back-btn{background:none;border:0;color:var(--purple);font-weight:700}.learning-layout{width:min(1060px,88%);margin:auto;display:grid;grid-template-columns:1fr 300px;gap:22px}.lesson-video{height:390px;border-radius:14px;background:linear-gradient(135deg,#302956,#7568cf 55%,#df8b56);position:relative;display:grid;place-items:center;box-shadow:var(--shadow)}.play.big{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;border:1px solid #fff;color:#fff}.video-label{position:absolute;left:20px;top:18px;color:#e4e0ff;font-size:10px;letter-spacing:1px}.lesson-copy{padding:25px 4px}.lesson-copy h1{font:800 27px Manrope;margin:6px 0 8px}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-top:25px}.tab{background:none;border:0;padding:12px 0;color:var(--muted);font-weight:600;font-size:12px;font-family:inherit}.tab.active{color:var(--purple);border-bottom:2px solid var(--purple)}.lesson-content{padding-top:20px}.note-box{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:8px;margin-top:18px}.note-box input{border:0;outline:0;flex:1;font:inherit}.note-box button{border:0;background:var(--purple);color:#fff;border-radius:6px;padding:7px 12px}.outline-item{display:flex;gap:10px;padding:13px 0;border-top:1px solid var(--line);font-size:11px}.outline-item.current{color:var(--purple);background:#f6f5ff;margin:0 -10px;padding:13px 10px;border-radius:7px}.outline-item small{display:block;color:var(--muted);margin-top:4px}.admin-stats{width:min(1060px,88%);margin:0 auto;grid-template-columns:repeat(4,1fr)}.admin-grid{margin-top:22px;grid-template-columns:1.5fr 1fr}.chart{height:180px;display:flex;align-items:end;gap:12px;border-bottom:1px solid var(--line);padding:20px 12px 0}.chart span{flex:1;background:linear-gradient(#a79cef,var(--purple));border-radius:5px 5px 0 0;min-height:10px}.attention-row{display:flex;align-items:center;gap:10px;padding:13px 0;border-top:1px solid var(--line);font-size:12px}.attention-row div{flex:1}.attention-row small{display:block;color:var(--muted);font-size:10px;margin-top:3px}@media(max-width:850px){.view-grid,.learning-layout,.admin-grid{grid-template-columns:1fr}.wide-list{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.view-head,.learning-head{display:block;margin-top:25px}.view-head .primary-btn{width:100%;margin-top:18px}.lesson-video{height:245px}.lesson-copy h1{font-size:22px}.tabs{gap:13px;overflow:auto;white-space:nowrap}.admin-stats{width:88%;gap:8px}.panel{padding:15px}}
/* Authentication */
.landing-page{min-height:100vh;background:#fbfbfd}.landing-nav{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;background:#fff;border-bottom:1px solid var(--line)}.landing-nav .brand{padding:0}.landing-actions{display:flex;align-items:center;gap:18px}.landing-link,.text-btn{background:none;border:0;color:var(--purple);font-weight:700;font-size:12px;font-family:inherit;cursor:pointer}.hero{width:min(1120px,88%);margin:0 auto;padding:85px 0 90px;display:flex;align-items:center;justify-content:space-between}.hero h1{font:800 clamp(38px,5vw,70px)/1.02 Manrope;letter-spacing:-3px;margin:10px 0 20px}.hero h1 em{color:var(--purple);font-style:normal}.hero .subtle{max-width:460px;font-size:16px}.hero-actions{display:flex;align-items:center;gap:20px;margin-top:28px}.hero-art{width:330px;height:330px;border-radius:50%;background:linear-gradient(145deg,#7163df,#312c55);display:grid;place-items:center;position:relative;overflow:hidden;color:#fff;font:800 54px Manrope;box-shadow:25px 25px 0 #f4b376}.hero-art:after{content:'';position:absolute;width:130px;height:130px;background:#f4b376;border-radius:50%;right:-25px;top:25px;opacity:.75}.orbit{position:absolute;border:1px solid #ffffff55;border-radius:50%;width:250px;height:90px;transform:rotate(-35deg)}.orbit-two{width:300px;height:150px;transform:rotate(40deg)}.hero-art span{z-index:1}.catalog{background:#f2f1f8;padding:60px 6% 80px}.catalog-heading{max-width:1120px;margin:0 auto 25px;display:flex;justify-content:space-between;align-items:end}.catalog-heading h2{font:800 28px Manrope;margin:7px 0}.public-courses{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.public-course{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.public-course .course-art{width:100%;height:135px;border-radius:0}.public-course-body{padding:15px}.public-course-body h3{font:700 14px/1.35 Manrope;min-height:38px;margin:10px 0 5px}.public-course-body p{font-size:10px;color:var(--muted);margin:0 0 14px}.public-course-body strong{font:800 16px Manrope;display:block}.buy-btn{border:0;background:none;color:var(--purple);font-weight:700;font-size:11px;font-family:inherit;padding:0;margin-top:12px;cursor:pointer}.buy-btn span{margin-left:8px}@media(max-width:850px){.hero{padding:55px 0;gap:30px}.hero-art{width:230px;height:230px;font-size:36px}.public-courses{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.landing-nav{padding:0 5%}.landing-nav .brand{font-size:15px}.landing-nav .brand-mark{width:28px}.hero{display:block;padding:50px 0}.hero h1{font-size:44px}.hero-art{margin:50px auto 0}.catalog-heading{display:block}.catalog-heading .subtle{display:block;margin-top:8px}.public-courses{grid-template-columns:1fr}.hero-actions{display:block}.hero-actions .text-btn{display:block;margin:18px 0}}
.login-mode .sidebar,.login-mode .topbar{display:none}.login-mode .app-shell{display:block}.login-mode .main{width:100%;min-height:100vh}
.public-mode .sidebar,.public-mode .topbar{display:none}.public-mode .app-shell{display:block}.public-mode .main{width:100%;min-height:100vh}
.login-page{min-height:100vh;background:linear-gradient(135deg,#f3f1ff,#fbfafc 50%,#fff3e8);display:grid;place-items:center;padding:30px}.login-brand{position:absolute;top:30px;left:35px;padding:0}.login-card{background:#fff;width:min(430px,100%);padding:35px 38px;border-radius:20px;box-shadow:0 20px 60px rgba(42,34,96,.12)}.login-illustration{width:52px;height:52px;border-radius:16px;background:var(--purple);display:grid;place-items:center;color:#ffd27e;font-size:25px;margin-bottom:28px}.login-card h1{font:800 30px/1.15 Manrope;margin:8px 0 10px;letter-spacing:-1px}.login-card form{margin-top:25px}.login-card label{display:block;font-weight:700;font-size:12px;margin:15px 0;color:#4d4b5c}.login-card label input:not([type=checkbox]){display:block;width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;margin-top:7px;font:inherit;outline-color:var(--purple)}.login-card .primary-btn{width:100%;margin-top:12px}.login-row{display:flex;justify-content:space-between;align-items:center;font-size:11px!important}.login-row a,.login-footer a{color:var(--purple);text-decoration:none}.check{display:flex!important;align-items:center;gap:6px;font-weight:500!important;margin:0!important}.check input{accent-color:var(--purple)}.demo-btn{width:100%;margin-top:10px;padding:11px;background:#f3f1ff;color:var(--purple);border:0;border-radius:8px;font-weight:700;font-size:12px;font-family:inherit}.login-error{color:#c04b4b;font-size:11px;min-height:15px}.login-footer{text-align:center;color:var(--muted);font-size:11px;margin-top:20px}
/* Admin course modal */
.profile-menu{position:fixed;z-index:8;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;width:190px;box-shadow:0 12px 35px #211b4720}.profile-menu b,.profile-menu small{display:block}.profile-menu b{font-size:12px}.profile-menu small{color:var(--muted);font-size:10px;margin:3px 0 10px}.profile-menu button{display:block;width:100%;text-align:left;border:0;background:none;border-top:1px solid var(--line);padding:10px 2px;font-weight:600;font-size:11px;font-family:inherit;color:var(--ink)}.profile-menu .logout-btn{color:#c35757}.signup-success{color:var(--green)!important}
.signup-btn{display:block;margin:10px auto 0;cursor:pointer}
.builder-modal{background:#fff;border-radius:16px;width:min(620px,100%);max-height:90vh;overflow:auto;padding:28px;position:relative;box-shadow:0 20px 70px #17132955}.builder-modal h2{font:800 22px Manrope;margin:7px 0}.builder-modal label{display:block;font-weight:700;font-size:12px;margin-top:17px}.builder-modal input,.builder-modal textarea,.builder-modal select{display:block;width:100%;border:1px solid var(--line);border-radius:8px;padding:11px;margin-top:7px;font:inherit}.builder-modal textarea{height:85px;resize:vertical}.builder-steps{display:flex;gap:8px;margin-bottom:22px;overflow:auto;white-space:nowrap}.builder-steps span{font-size:10px;font-weight:700;color:#aaa8b5;background:#f5f4f8;border-radius:20px;padding:7px 10px}.builder-steps .active{background:var(--purple-soft);color:var(--purple)}.builder-steps .done{color:var(--green);background:#e8f7f0}.builder-section{display:flex;gap:8px;margin:10px 0}.builder-section input{margin:0;flex:1}.remove-section{border:0;background:#fff0f0;color:#c35757;border-radius:7px;width:35px}.builder-modal .text-btn{display:block;margin:16px 0}.builder-actions{display:flex;gap:10px;margin-top:24px}.secondary-btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:11px 15px;font-weight:700;font-size:12px;font-family:inherit}.upload-status{margin-top:16px;background:#f6f5fb;border-radius:9px;padding:12px;font-size:11px;color:var(--muted)}.upload-status span{display:block}.upload-status b{display:block;color:var(--ink);margin-top:5px}.upload-status i{display:none;height:5px;background:#dddaf0;border-radius:9px;margin-top:9px;overflow:hidden}.upload-status i em{display:block;height:100%;width:0;background:var(--purple);border-radius:9px;transition:width .15s}.upload-status.uploading i{display:block}.upload-status.complete{background:#e8f7f0;color:var(--green)}
.builder-modal button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.password-wrap{display:block;position:relative}.password-wrap input{padding-right:42px!important}.password-eye{position:absolute;right:9px;top:50%;transform:translateY(-45%);border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;padding:4px}.password-eye:hover{color:var(--purple)}
.modal-backdrop{position:fixed;inset:0;background:#1d1935aa;display:grid;place-items:center;z-index:5;padding:20px}.upload-modal{background:#fff;border-radius:16px;width:min(510px,100%);padding:28px;position:relative;box-shadow:0 20px 70px #17132955}.upload-modal h2{font:800 22px Manrope;margin:7px 0}.upload-modal label{display:block;font-weight:700;font-size:12px;margin-top:17px}.upload-modal input,.upload-modal textarea{display:block;width:100%;border:1px solid var(--line);border-radius:8px;padding:11px;margin-top:7px;font:inherit}.upload-modal textarea{height:75px;resize:vertical}.upload-modal input[type=file]{font-size:11px}.upload-modal .primary-btn{margin-top:20px}.modal-close{position:absolute;right:17px;top:14px;background:none;border:0;font-size:24px;color:var(--muted)}
/* ---- Production views ---- */
a.primary-btn,.link-btn{display:inline-flex;align-items:center;text-decoration:none}
.primary-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.secondary-btn{cursor:pointer;font-family:inherit}.text-btn{font-family:inherit;text-decoration:none}.text-btn.danger,.danger{color:#c35757}
button,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
[hidden]{display:none!important}
.page-loading{padding:80px 20px;text-align:center;color:var(--muted)}
.page-bottom{height:56px}
.page-panel{width:min(1060px,88%);margin:0 auto 22px}
.page-width{width:min(1060px,88%);margin:0 auto}
.h2{font:700 20px Manrope;margin:5px 0 16px}.h3{font:700 15px Manrope;margin:24px 0 10px}
.empty-state{text-align:center;padding:40px 20px}.empty-state h3{font:700 17px Manrope;margin:10px 0 6px}.empty-state .primary-btn{margin-top:18px}
.empty-icon{width:46px;height:46px;border-radius:14px;margin:auto;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-size:20px}
.green-pill{background:#e7f7f0;color:var(--green)}
.toast.error{background:#a63d3d}
.notice{background:#fff6ec;border:1px solid #f6dcc0;color:#8a5426;border-radius:10px;padding:12px 14px;font-size:12px;margin:0;max-width:480px;line-height:1.5}
.sidebar .brand{text-decoration:none;color:inherit}
.workspace-switch{background:#fff;font:inherit;text-align:left;cursor:pointer;width:100%;color:inherit}
.nav-button{background:none;border:0;width:100%;font-weight:600;font-size:14px;font-family:inherit;cursor:pointer}
.avatar{border:0;cursor:pointer;font-family:inherit}
.role-badge{font-size:11px;font-weight:700;color:var(--purple);background:var(--purple-soft);padding:5px 10px;border-radius:20px}
.menu-btn{display:none;cursor:pointer}
.course-card{text-decoration:none;color:inherit;transition:box-shadow .15s}.course-card:hover,.public-course:hover{box-shadow:var(--shadow)}
.public-course{text-decoration:none;color:inherit;display:block}
.public-courses.single{grid-template-columns:1fr}
.course-art.has-image{padding:0;overflow:hidden;background:#eceaf6}.course-art img{width:100%;height:100%;object-fit:cover;display:block}
.video-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.site-footer{display:flex;justify-content:space-between;gap:12px;padding:26px 6%;font-size:12px;color:var(--muted);border-top:1px solid var(--line);background:#fff;flex-wrap:wrap}
/* course detail */
.course-hero{width:min(1120px,88%);margin:0 auto;padding:46px 0 50px;display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:center}
.course-hero h1{font:800 clamp(30px,4vw,46px)/1.08 Manrope;letter-spacing:-1.5px;margin:10px 0 14px}
.course-hero .back-btn{text-decoration:none;display:inline-block;margin-bottom:22px;padding:0}
.course-description{white-space:pre-line;font-size:15px;max-width:640px}
.course-facts{display:flex;gap:22px;margin:22px 0 4px;color:var(--muted);font-size:13px;flex-wrap:wrap}.course-facts b{color:var(--ink)}
.course-hero-art .course-art{width:100%;height:230px;border-radius:16px;font-size:16px}
.curriculum{max-width:1120px;margin:auto;display:grid;gap:14px}.curriculum-section h3{font:700 15px Manrope;margin:0 0 6px}
/* learning */
.lesson-media{border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--line)}
.video-frame{position:relative;padding-top:56.25%;background:#14111f}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.resource-card{display:flex;align-items:center;gap:16px;padding:26px;flex-wrap:wrap}.resource-card h3{font:700 16px Manrope;margin:0 0 4px}.resource-card>div:nth-child(2){flex:1;min-width:200px}
.reading{padding:26px 30px;font-size:15px;line-height:1.75;max-height:none}.reading p{margin:0 0 14px;white-space:pre-line}
.lesson-actions{display:flex;gap:10px;align-items:center;margin-top:18px;flex-wrap:wrap}
.learning-head .back-btn{text-decoration:none}
.progress-line.light{background:#eeeef5;margin:14px 0 8px}.progress-line.light span{background:var(--purple)}
.outline-section{font-size:10px;font-weight:700;letter-spacing:1px;color:#9b9aa9;text-transform:uppercase;margin:18px 0 4px}
a.outline-item{text-decoration:none;color:inherit}
.outline{align-self:start;position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:auto}
.note-box button{cursor:pointer}
.note-list{margin-top:14px}.note-item{display:flex;gap:10px;align-items:flex-start;border-top:1px solid var(--line);padding:12px 0}.note-item:first-child{border-top:0}.note-item>div{flex:1}.note-item p{margin:4px 0 0;white-space:pre-wrap;line-height:1.5}.note-item a{color:var(--purple)}
.note-delete{border:0;background:#fff0f0;color:#c35757;border-radius:7px;width:28px;height:28px;cursor:pointer;flex:none}
/* admin */
.table-wrap{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#9b9aa9;padding:10px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.data-table td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.data-table td small{display:block;color:var(--muted);margin-top:3px}
.table-course{display:flex;align-items:center;gap:12px;min-width:220px}.table-course .course-art{width:64px;height:44px;padding:6px;font-size:7px;border-radius:7px}.table-course .course-art b{display:none}
.row-actions{white-space:nowrap;text-align:right}.row-actions .text-btn{margin-left:12px;padding:4px 0}
.enroll-pill{display:inline-block;margin:2px 4px 2px 0}
.chart{gap:14px;height:200px}.chart-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;text-align:center}.chart-col span{display:block;width:100%;background:linear-gradient(#a79cef,var(--purple));border-radius:5px 5px 0 0;min-height:4px}.chart-col small{color:var(--muted);font-size:10px;margin-top:6px;line-height:1.4}
.builder-block{border:1px solid var(--line);border-radius:12px;padding:12px;margin:14px 0}
.builder-lesson{background:#faf9fd;border-radius:10px;padding:10px 12px;margin:10px 0}
.builder-lesson-head{display:flex;justify-content:space-between;align-items:center;font-size:11px}.builder-lesson-head .remove-section{height:26px;width:28px}
.builder-row{display:grid;grid-template-columns:1fr 170px;gap:8px}.builder-row input,.builder-row select{margin-top:7px}
.remove-section{cursor:pointer}
.upload-status .text-btn{margin:8px 0 0;padding:0}
.cover-preview{margin-top:8px}.cover-preview img{max-width:100%;max-height:170px;border-radius:10px;display:block}
.review-list{margin:16px 0;display:grid;gap:12px;font-size:13px}.review-list ul{margin:6px 0 0;padding-left:18px;color:var(--ink)}
.builder-actions{flex-wrap:wrap}
.enroll-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:12px 0;flex-wrap:wrap}.enroll-row>div{flex:1;min-width:160px}.enroll-row small{display:block;color:var(--muted);margin-top:3px}
.builder-modal .inline-label{display:flex;align-items:center;gap:6px;margin:0;font-weight:600;font-size:11px}.builder-modal .inline-label input{margin:0;width:auto;padding:6px}
.modal-close{cursor:pointer}
@media(max-width:850px){.course-hero{grid-template-columns:1fr}.course-hero-art{order:-1}.outline{position:static;max-height:none}}
@media(max-width:640px){
  .menu-btn{display:block}
  .nav-open .sidebar{display:flex;position:fixed;inset:0 auto 0 0;z-index:20;width:260px;box-shadow:0 0 0 100vmax #1d193566}
  .page-panel,.page-width{width:92%}
  .builder-row{grid-template-columns:1fr}
  .role-badge{display:none}
  .reading{padding:20px}
  .row-actions{text-align:left}
}
a.brand,a.landing-link,a.text-btn,a.back-btn{color:inherit;text-decoration:none}a.landing-link,a.text-btn,a.back-btn{color:var(--purple)}
.login-page{grid-template-columns:minmax(0,1fr)}.login-card{width:100%;max-width:430px;justify-self:center}
@media(max-width:600px){.login-page{padding:20px 16px;place-items:start stretch}.login-brand{position:static;margin:4px 0 22px}.login-card{padding:28px 22px}}
/* ---- Commerce, quizzes, certificates ---- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.5px}
code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;background:#fff;border:1px solid #f0d9bf;border-radius:4px;padding:1px 4px}
a.stat-card{text-decoration:none;color:inherit;transition:box-shadow .15s}a.stat-card:hover{box-shadow:var(--shadow)}
.notice.wide{max-width:none}
.section-gap{margin-top:22px}.side-gap{margin-top:15px}
.small-btn{padding:8px 12px;font-size:11px}
.table-link{color:var(--purple);text-decoration:none;font-weight:600}
/* buy box */
.buy-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;gap:10px;width:min(380px,100%);box-shadow:var(--shadow)}
.buy-box .notice{max-width:none}
.price-line{display:flex;align-items:baseline;gap:10px}.price-line strong{font:800 28px Manrope}.price-line s{font-size:14px}
.coupon-row{display:flex;gap:8px}.coupon-row input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:inherit;text-transform:uppercase}
.buy-box .login-error,.buy-box .signup-success{margin:0;min-height:0;font-size:11px}
.buy-box .primary-btn{width:100%;justify-content:center}
.hero-actions{flex-wrap:wrap}
/* course complete banner */
.course-complete{display:flex;align-items:center;gap:14px;background:#e9f8f1;border:1px solid #c8ebdb;border-radius:12px;padding:14px 16px;margin-bottom:14px;flex-wrap:wrap}
.course-complete>div:nth-child(2){flex:1;min-width:180px}.course-complete p{margin:3px 0 0;font-size:12px}
/* quiz player */
.quiz{padding:24px 26px}
.quiz-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:8px}.quiz-head .eyebrow{margin-left:0}.quiz-head h3{font:700 16px Manrope;margin:4px 0 0}
.quiz-summary{font-size:11px;font-weight:700;color:#8a5426;background:#fff6ec;border-radius:20px;padding:6px 10px;margin:0}.quiz-summary.passed{color:var(--green);background:#e7f7f0}
.quiz-question{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:14px 0 0;transition:border-color .15s,background .15s}
.quiz-question legend{font-weight:700;font-size:14px;padding:0 6px;line-height:1.45}
.quiz-question.right{border-color:#9bd8bd;background:#f2fbf7}.quiz-question.wrong{border-color:#efb3b3;background:#fdf5f5}
.quiz-option{display:flex;align-items:flex-start;gap:10px;padding:9px 8px;border-radius:8px;cursor:pointer;font-size:13px;line-height:1.45}
.quiz-option:hover{background:#f6f5ff}.quiz-option input{accent-color:var(--purple);margin-top:3px;flex:none}
.quiz-result{margin-top:16px;border-radius:10px;padding:12px 14px;font-size:13px;font-weight:600}.quiz-result.passed{background:#e7f7f0;color:#21704f}.quiz-result.failed{background:#fff1e7;color:#8a5426}
/* quiz editor */
.quiz-editor{margin-top:10px}
.inline-field{display:flex!important;align-items:center;gap:8px;margin-top:6px!important}.builder-modal .inline-field input{width:80px;margin:0}
.quiz-edit{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0}
.option-hint{margin:10px 0 2px;font-size:10px}
.option-row{display:flex;align-items:center;gap:8px;margin-top:6px}.builder-modal .option-row input[type=radio]{width:auto;margin:0;accent-color:var(--purple);flex:none}.builder-modal .option-row input:not([type=radio]){margin:0;flex:1}
.option-row .remove-section{height:34px;width:34px;flex:none}.remove-section:disabled{opacity:.35;cursor:not-allowed}
.builder-row.two{grid-template-columns:1fr 1fr}
.builder-actions.end{justify-content:flex-end}
.enroll-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* certificates */
.cert-wrap{width:min(900px,92%);margin:34px auto 60px}
.verified-badge{display:inline-block;background:#e7f7f0;color:#21704f;font-weight:700;font-size:12px;border-radius:20px;padding:6px 12px;margin:0 0 14px}
.certificate{background:#fff;border:1px solid var(--line);border-radius:18px;padding:56px 48px;text-align:center;position:relative;box-shadow:var(--shadow);outline:6px solid #f3f1ff;outline-offset:-18px}
.cert-brand{font:800 18px Manrope;display:flex;justify-content:center;align-items:center;gap:8px;margin-bottom:26px}
.certificate .eyebrow{margin:0;letter-spacing:3px}
.cert-intro{color:var(--muted);margin:22px 0 6px}
.cert-name{font:800 clamp(28px,5vw,44px) Manrope;letter-spacing:-1px;margin:0;color:var(--purple)}
.cert-course{font:700 clamp(18px,3vw,24px) Manrope;margin:0}
.cert-meta{display:flex;justify-content:center;gap:48px;margin-top:38px;flex-wrap:wrap}.cert-meta small{display:block;color:var(--muted);font-size:10px;letter-spacing:1px;text-transform:uppercase}.cert-meta b{display:block;margin-top:4px}
.cert-verify{color:var(--muted);font-size:10px;margin:30px 0 0;word-break:break-all}
.cert-actions{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cert-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:4px;transition:box-shadow .15s}.cert-card:hover{box-shadow:var(--shadow)}
.cert-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.cert-card h3{font:700 15px Manrope;margin:0 0 4px}.cert-card p{margin:0;font-size:11px}
/* coupons */
.coupon-form{display:grid;grid-template-columns:1fr 1.2fr 1.4fr 1fr 1fr auto;gap:10px;align-items:end;margin-bottom:18px}
.coupon-form label{display:block;font-weight:700;font-size:11px;color:#4d4b5c}
.coupon-form input,.coupon-form select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:8px;padding:9px 10px;font:inherit;color:var(--ink);background:#fff}
.coupon-form input[name=code]{text-transform:uppercase}
.input-group{display:flex;gap:0;margin-top:6px}.input-group input{margin:0!important;border-radius:8px 0 0 8px!important;min-width:0}.input-group select{margin:0!important;width:auto!important;border-left:0!important;border-radius:0 8px 8px 0!important}
@media(max-width:1000px){.coupon-form{grid-template-columns:1fr 1fr 1fr}.cert-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.coupon-form{grid-template-columns:1fr}.cert-grid{grid-template-columns:1fr}.certificate{padding:40px 22px;outline-offset:-10px}.cert-meta{gap:22px}.builder-row.two{grid-template-columns:1fr}.quiz{padding:18px}}
@media print{
  body{background:#fff}.no-print,.landing-nav,.site-footer,.sidebar,.topbar,.toast{display:none!important}
  .cert-wrap{width:100%;margin:0}.certificate{box-shadow:none;border:2px solid #d9d6ee;page-break-inside:avoid}
  @page{size:A4 landscape;margin:12mm}
}
/* ---- UI review fixes ---- */
.table-wrap{position:relative}
.eyebrow{margin-left:0;margin-right:0}
.panel>.eyebrow,.next-card .eyebrow,.streak-card .eyebrow{margin-left:0}
a.next-item{text-decoration:none;color:inherit}a.next-item:hover b{color:var(--purple)}
.sidebar .brand{font-size:17px;white-space:nowrap;letter-spacing:-.6px}
.brand{white-space:nowrap}
.view-grid+.page-panel,.stats-grid+.page-panel,.stats-grid+.view-grid{margin-top:22px}
.row-actions .text-btn{font-size:12px}
.data-table td small{font-size:11px}
.lesson-copy-top{padding:4px 4px 18px}
.learning-head{gap:10px;flex-wrap:wrap}
.coupon-row input::placeholder,.coupon-form input[name=code]::placeholder{text-transform:none}
.landing-link{white-space:nowrap}
@media(max-width:640px){
  .learning-head{display:flex;flex-direction:column;align-items:flex-start;margin-top:20px}
  .builder-steps{flex-wrap:wrap;white-space:normal}
  .landing-nav{height:64px}.landing-actions{gap:12px}
  .landing-nav .primary-btn{padding:9px 12px;font-size:12px;white-space:nowrap}.landing-nav .primary-btn span{display:none}
  .landing-nav .brand{font-size:15px}
  .enroll-controls{gap:8px 14px}
}
@media(max-width:360px){.landing-nav .brand>span:last-child{display:none}}
/* ---- Student management, settings, guest enroll, locked lessons ---- */
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
div.workspace-switch{cursor:default}
.fix-steps{margin:14px 0 0;padding-left:20px;color:var(--ink);line-height:1.9;font-size:13px;max-width:640px}
.enroll-cta{padding:14px 22px;font-size:15px}
.order-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);margin-top:14px;padding-top:14px;font-weight:700}.order-total strong{font:800 22px Manrope}
.builder-modal .coupon-row input{margin-top:0}.builder-modal .coupon-row{margin-top:7px}.builder-modal .coupon-row .secondary-btn{flex:none}
.builder-modal form>small{display:block;margin-top:14px;line-height:1.5}.builder-modal form>small a{color:var(--purple);font-weight:700;text-decoration:none}
.builder-modal .login-error:empty{min-height:0;margin:0}
.check-row{display:flex!important;align-items:center;gap:8px;font-weight:600!important}.builder-modal .check-row input{width:auto;margin:0;accent-color:var(--purple)}
.credential-box{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#f6f5fb;border-radius:12px;padding:16px;margin:16px 0 8px}.credential-box small{display:block;color:var(--muted);font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:4px}.credential-box b{word-break:break-all;font-size:14px}
.grant-row{grid-template-columns:1fr 150px auto;align-items:end;margin-top:8px}.grant-row .primary-btn{margin-top:7px;padding:11px 14px;white-space:nowrap}
.account-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:14px 0}.account-actions small{display:block;color:var(--muted);margin-top:3px;line-height:1.45;font-size:11px}.account-actions .secondary-btn{flex:none}
.secondary-btn.danger{color:#c35757;border-color:#f1cfcf}
/* settings */
.settings-card{margin-bottom:18px}.settings-card .subtle{max-width:720px}
.settings-form{display:grid;gap:16px;margin-top:18px;max-width:720px}
.setting-field{display:block}.setting-label{display:block;font-weight:700;font-size:12px;color:#4d4b5c;margin-bottom:6px}
.setting-field input{display:block;width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 12px;font:inherit;color:var(--ink);background:#fff}.setting-field input:disabled{background:#f6f5fb}
.setting-status{display:block;margin-top:6px;font-size:11px}.setting-status .text-btn{font-size:11px;padding:0}.setting-ok{color:var(--green);font-weight:700}
.copy-row{display:flex;align-items:center;gap:12px;background:#f6f5fb;border-radius:8px;padding:10px 12px;margin-bottom:6px}.copy-row code{background:none;border:0;padding:0;font-size:12px;word-break:break-all;flex:1}
.settings-form .login-error:empty{display:none}.settings-form .builder-actions{margin-top:0}
/* lesson flow */
.course-progress{width:min(1060px,88%);margin:0 auto 18px;padding:14px 18px}
.course-progress-top{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}.course-progress-top b{color:var(--ink)}
.course-progress .progress-line{margin:10px 0 0;height:8px}
.lesson-status{margin:14px 0 0;font-size:12px;min-height:22px}.lesson-status .pill{font-size:11px;padding:5px 10px}
.outline-item.locked{color:#a9a7b6;cursor:not-allowed}.outline-item.locked b{font-weight:600}.outline-item.locked span{filter:grayscale(1);opacity:.7;font-size:10px}
.outline-item.done>span{color:var(--green);font-weight:700}
.lesson-actions [hidden]{display:none!important}
@media(max-width:640px){.course-progress{width:92%}.credential-box,.grant-row{grid-template-columns:1fr}.account-actions{flex-direction:column;align-items:flex-start}.course-progress-top{font-size:11px}}

.builder-modal .enroll-row{display:block}.builder-modal .enroll-row .enroll-controls{margin-top:10px}

.data-table .pill:not(.enroll-pill){white-space:nowrap}
