:root{--bg:#f4f6fa;--surface:#fff;--ink:#101828;--muted:#667085;--line:#e5e9f0;--navy:#0b1220;--primary:#4f46e5;--soft:#eef2ff;--green:#16a34a}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit}.eyebrow{font-size:.69rem;letter-spacing:.14em;font-weight:800}.app-sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:246px;background:var(--navy);color:#fff;padding:20px 14px;display:flex;flex-direction:column}.app-brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;padding:0 8px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-symbol{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 8px 22px rgba(79,70,229,.3)}.app-brand strong,.app-brand small{display:block}.app-brand small{font-size:.7rem;color:#94a3b8}.nav-caption{font-size:.64rem;letter-spacing:.15em;color:#64748b;font-weight:800;padding:20px 10px 7px}.sidebar-nav{display:grid;gap:3px}.sidebar-nav a{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:9px;color:#a9b5c7;text-decoration:none;font-size:.88rem;font-weight:650}.sidebar-nav a:hover,.sidebar-nav a.active{background:#18243a;color:#fff}.sidebar-spacer{flex:1}.user-box{display:flex;align-items:center;gap:9px;border-top:1px solid rgba(255,255,255,.08);padding:14px 6px 0}.user-avatar{width:36px;height:36px;border-radius:10px;background:#fff;color:#111827;display:grid;place-items:center;font-weight:800}.user-copy{min-width:0;flex:1}.user-copy strong,.user-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-copy strong{font-size:.8rem}.user-copy small{font-size:.68rem;color:#94a3b8}.user-box>a{color:#94a3b8}.app-main{margin-left:246px;min-height:100vh}.app-topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 30px}.app-topbar strong,.app-topbar small{display:block}.app-topbar small{font-size:.72rem;color:var(--muted)}.top-actions{display:flex;gap:8px}.page-wrap{padding:30px;max-width:1500px;margin:auto}.narrow-page{max-width:1100px}.page-title{margin-bottom:24px}.page-title h1{font-size:2rem;font-weight:800;letter-spacing:-.04em;margin:.35rem 0}.page-title p{margin:0;color:var(--muted);max-width:780px}.back-link{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--muted);font-weight:650;font-size:.85rem;margin-bottom:18px}.hero-dashboard{background:linear-gradient(120deg,#0b1220,#172554 65%,#312e81);color:#fff;border-radius:20px;padding:32px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px}.hero-dashboard h1{font-size:2rem;font-weight:800;letter-spacing:-.04em;margin:.35rem 0}.hero-dashboard p{color:#cbd5e1;max-width:720px;margin:0}.hero-code{font:13px/1.75 Consolas,monospace;color:#94a3b8;background:rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.08);padding:18px 22px;border-radius:14px;min-width:330px}.hero-code span{color:#fca5a5}.hero-code b{color:#86efac}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0}.stat-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;gap:12px;align-items:center}.stat-box>span{width:42px;height:42px;border-radius:11px;background:var(--soft);color:var(--primary);display:grid;place-items:center}.stat-box small,.stat-box strong{display:block}.stat-box small{font-size:.72rem;color:var(--muted)}.stat-box strong{font-size:1.35rem}.content-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.7fr);gap:16px}.surface{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 4px 18px rgba(16,24,40,.025)}.surface-head{display:flex;align-items:end;justify-content:space-between;gap:15px;padding-bottom:16px;border-bottom:1px solid var(--line)}.surface-head h2{font-size:1.18rem;font-weight:800;margin:.25rem 0 0}.surface-head>a{font-size:.8rem;color:var(--primary);font-weight:700;text-decoration:none}.compact-course-list{display:grid}.compact-course{display:grid;grid-template-columns:42px 42px 1fr 20px;gap:12px;align-items:center;padding:14px 2px;border-bottom:1px solid #eef1f5;text-decoration:none}.course-num{font-weight:800;color:#c3cad5}.course-symbol{width:40px;height:40px;border-radius:10px;background:#f8fafc;border:1px solid var(--line);display:grid;place-items:center;color:var(--primary)}.compact-course small,.compact-course strong,.compact-course span{display:block}.compact-course small{font-size:.67rem;color:var(--primary);font-weight:700}.compact-course strong{font-size:.9rem}.compact-course span{font-size:.68rem;color:var(--muted)}.recent-project{display:grid;grid-template-columns:38px 1fr 18px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #eef1f5;text-decoration:none}.recent-project>span{width:36px;height:36px;border-radius:9px;background:#f8fafc;display:grid;place-items:center}.recent-project strong,.recent-project small{display:block}.recent-project small{font-size:.66rem;color:var(--muted)}.empty-state{text-align:center;padding:40px 18px;color:var(--muted)}.empty-state>i{font-size:2.2rem;color:#cbd5e1}.empty-state strong,.empty-state small{display:block}.empty-state strong{color:var(--ink);margin-top:9px}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.course-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;text-decoration:none;transition:.2s}.course-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(16,24,40,.07);border-color:#c7d2fe}.course-card-icon{width:48px;height:48px;border-radius:13px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-size:1.25rem;margin-bottom:22px}.course-card-meta{display:flex;gap:7px}.course-card-meta span{font-size:.64rem;font-weight:750;padding:4px 7px;background:#f8fafc;border-radius:6px;color:#64748b}.course-card h3{font-size:1.15rem;font-weight:800;margin:10px 0 7px}.course-card p{color:var(--muted);font-size:.84rem;line-height:1.55;min-height:64px}.course-card-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px;margin-top:14px;font-size:.68rem;color:var(--muted)}.course-header{background:#fff;border:1px solid var(--line);border-radius:17px;padding:26px;display:flex;align-items:center;gap:20px}.course-header-icon{width:66px;height:66px;border-radius:17px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-size:1.65rem}.course-header h1{font-size:1.8rem;font-weight:800;letter-spacing:-.04em;margin:.3rem 0}.course-header p{margin:0;color:var(--muted)}.course-tags{display:flex;gap:6px}.course-tags span{white-space:nowrap;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:.7rem;background:#f8fafc}.module-block+.module-block{border-top:1px solid var(--line);margin-top:18px;padding-top:20px}.module-title span{font-size:.62rem;color:var(--primary);letter-spacing:.13em;font-weight:800}.module-title h3{font-size:1rem;font-weight:800}.lesson-row{display:grid;grid-template-columns:42px 1fr 20px;gap:12px;align-items:center;padding:13px 4px;border-top:1px solid #eef1f5;text-decoration:none}.lesson-status{width:34px;height:34px;border-radius:50%;background:#f1f5f9;color:#64748b;display:grid;place-items:center;font-size:.72rem;font-weight:800}.lesson-row.done .lesson-status{background:#dcfce7;color:#16a34a}.lesson-row small,.lesson-row strong,.lesson-row p{display:block}.lesson-row small{font-size:.64rem;color:var(--primary);font-weight:700}.lesson-row strong{font-size:.86rem}.lesson-row p{font-size:.75rem;color:var(--muted);margin:0}.lesson-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:20px;padding:26px;max-width:1500px;margin:auto}.lesson-nav{position:sticky;top:98px;height:calc(100vh - 124px);overflow:auto}.lesson-nav-list{display:grid;gap:4px}.lesson-nav-list a{display:flex;gap:9px;align-items:center;padding:9px;border-radius:9px;text-decoration:none;color:#475569}.lesson-nav-list a:hover,.lesson-nav-list a.active{background:#fff}.lesson-nav-list a>span{width:28px;height:28px;border-radius:50%;background:#e8edf3;display:grid;place-items:center;font-size:.68rem;font-weight:800}.lesson-nav-list strong,.lesson-nav-list small{display:block}.lesson-nav-list strong{font-size:.76rem}.lesson-nav-list small{font-size:.62rem;color:#98a2b3}.lesson-header,.article-body,.lesson-complete{background:#fff;border:1px solid var(--line);border-radius:16px}.lesson-header{padding:28px;margin-bottom:14px}.lesson-header h1{font-size:2rem;font-weight:800;letter-spacing:-.04em}.lesson-header p{color:var(--muted)}.article-body{padding:30px;font-size:1rem;line-height:1.8}.article-body h2{font-size:1.25rem;font-weight:800;margin:1.6rem 0 .7rem}.article-body pre{background:#0b1120;color:#dbeafe;border-radius:12px;padding:18px;overflow:auto;font:13px/1.65 Consolas,monospace}.inline-lab{background:#0b1120;color:#fff;border-radius:16px;overflow:hidden;margin-top:14px}.inline-lab-head{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #253147}.inline-lab-grid{display:grid;grid-template-columns:1fr 1fr;min-height:430px}.inline-lab textarea{resize:none;border:0;outline:0;background:#0f172a;color:#dbeafe;padding:18px;font:13px/1.65 Consolas,monospace}.inline-lab iframe{width:100%;height:100%;border:0;background:#fff}.lesson-complete{padding:18px 20px;margin-top:14px;display:flex;align-items:center;justify-content:space-between}.lesson-complete strong,.lesson-complete small{display:block}.lesson-complete small{font-size:.72rem;color:var(--muted)}.clean-table thead th{font-size:.67rem;letter-spacing:.08em;color:#667085;background:#f9fafb;padding:12px 16px}.clean-table td{padding:13px 16px;border-color:#eef1f5;font-size:.8rem}.table-course{display:flex;gap:10px;align-items:center}.table-course>span{width:36px;height:36px;border-radius:9px;background:var(--soft);color:var(--primary);display:grid;place-items:center}.table-course strong,.table-course small{display:block}.table-course small{font-size:.66rem;color:var(--muted)}.status-pill{font-size:.62rem;font-weight:800;padding:4px 8px;border-radius:999px;text-transform:uppercase}.status-pill.published{background:#dcfce7;color:#15803d}.status-pill.draft{background:#f1f5f9;color:#64748b}.status-pill.submitted{background:#dbeafe;color:#1d4ed8}.form-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.builder-header{background:#fff;border:1px solid var(--line);border-radius:17px;padding:24px;display:flex;justify-content:space-between;align-items:end;gap:20px}.builder-header h1{font-size:1.7rem;font-weight:800}.builder-header p{margin:0;color:var(--muted)}.builder-tabs{margin-top:18px}.builder-module{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:14px}.builder-module-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#f8fafc}.builder-module-head small,.builder-module-head strong{display:block}.builder-module-head small{font-size:.59rem;color:var(--primary);font-weight:800}.builder-lesson{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:11px 14px;border-top:1px solid #eef1f5}.builder-lesson>span{width:30px;height:30px;border-radius:8px;background:#f1f5f9;display:grid;place-items:center}.builder-lesson strong,.builder-lesson small{display:block}.builder-lesson strong{font-size:.8rem}.builder-lesson small{font-size:.63rem;color:var(--muted)}.add-row{display:block;padding:10px 14px;text-decoration:none;color:var(--primary);font-size:.74rem;font-weight:700}.icon-danger{border:0;background:transparent;color:#ef4444}.assignment-admin{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #eef1f5}.assignment-admin strong,.assignment-admin small{display:block}.assignment-admin small{font-size:.67rem;color:var(--muted)}.submission-answer{max-width:260px;max-height:90px;overflow:auto;font-size:.7rem}.rich-toolbar{border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;background:#f8fafc;padding:6px;display:flex;gap:4px}.rich-toolbar button{border:1px solid transparent;background:transparent;border-radius:6px;padding:5px 8px}.rich-editor{min-height:460px;border:1px solid var(--line);border-radius:0 0 10px 10px;padding:22px;outline:none;line-height:1.75}.rich-editor pre{background:#0b1120;color:#dbeafe;padding:15px;border-radius:10px}.code-input{width:100%;border:1px solid #273449;border-radius:10px;background:#0b1120;color:#dbeafe;padding:16px;font:13px/1.65 Consolas,monospace}.assignment-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.assignment-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.assignment-top{display:flex;justify-content:space-between}.assignment-card h3{font-size:1.1rem;font-weight:800;margin:12px 0}.deadline{font-size:.74rem;color:#475467}.instruction-box{background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:12px;font-size:.78rem;margin:12px 0}.grade-box{display:grid;grid-template-columns:120px 1fr;gap:14px;background:#ecfdf3;border:1px solid #abefc6;border-radius:10px;padding:12px;margin-bottom:14px}.project-library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.project-library-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;text-decoration:none}.project-card-preview{height:120px;background:linear-gradient(135deg,#0b1220,#1e293b);color:#fff;display:grid;place-items:center;font-size:2rem}.project-card-body{display:flex;align-items:center;justify-content:space-between;padding:14px}.project-card-body strong,.project-card-body small{display:block}.project-card-body small{font-size:.66rem;color:var(--muted)}.auth-bg{min-height:100vh;background:#eef2ff;display:grid;place-items:center;padding:24px}.auth-shell{width:min(1100px,100%);display:grid;grid-template-columns:1.15fr .85fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 80px rgba(16,24,40,.16)}.auth-visual{min-height:660px;padding:50px;background:linear-gradient(145deg,#0b1220,#172554 70%,#312e81);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.auth-logo{width:48px;height:48px;border-radius:13px;background:var(--primary);display:grid;place-items:center;margin-bottom:28px}.auth-visual h1{font-size:2.45rem;line-height:1.12;font-weight:800;letter-spacing:-.05em}.auth-visual p{color:#cbd5e1}.auth-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.auth-feature-grid>div{border-top:1px solid rgba(255,255,255,.15);padding-top:12px}.auth-feature-grid i,.auth-feature-grid strong,.auth-feature-grid small{display:block}.auth-feature-grid small{font-size:.66rem;color:#94a3b8}.auth-form{padding:50px;display:flex;flex-direction:column;justify-content:center}.demo-accounts{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px}.demo-accounts>div{display:flex;justify-content:space-between;gap:12px;margin-top:6px}.demo-accounts span,.demo-accounts code{font-size:.67rem}.studio-body{background:#060a11;color:#dbe4f0;overflow:hidden}.studio-app{height:100vh;display:grid;grid-template-columns:230px minmax(430px,1fr) minmax(380px,43%);grid-template-rows:58px 1fr 160px}.studio-bar{grid-column:1/4;background:#0d1420;border-bottom:1px solid #263244;display:flex;align-items:center;justify-content:space-between;padding:0 13px}.studio-brand{display:flex;align-items:center;gap:9px}.studio-brand>a{width:32px;height:32px;border-radius:8px;background:#172235;color:#94a3b8;display:grid;place-items:center;text-decoration:none}.small-symbol{width:31px;height:31px;border-radius:8px}.studio-brand strong,.studio-brand small{display:block}.studio-brand small{font-size:.64rem;color:#64748b}.studio-actions{display:flex;align-items:center;gap:7px}.studio-actions>span{font-size:.67rem;color:#64748b}.studio-tree{grid-row:2/4;background:#0d1420;border-right:1px solid #263244;padding:10px;overflow:auto}.tree-head{height:32px;display:flex;align-items:center;justify-content:space-between;color:#64748b;font-size:.63rem;letter-spacing:.12em;font-weight:800}.tree-head button{border:0;background:transparent;color:#94a3b8}.project-root{display:flex;gap:7px;align-items:center;font-size:.73rem;padding:7px 6px}.tree-item{display:flex;align-items:center;border-radius:6px;padding-left:calc(var(--depth)*14px)}.tree-item:hover,.tree-item.selected{background:#172235}.tree-open{min-width:0;flex:1;border:0;background:transparent;color:#aeb9c9;text-align:left;padding:6px;display:flex;gap:7px;align-items:center;font-size:.72rem}.tree-open span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-item.folder>.tree-open i{color:#fbbf24}.tree-item.file>.tree-open i{color:#93c5fd}.tree-more{opacity:0;border:0;background:transparent;color:#64748b}.tree-item:hover .tree-more{opacity:1}.tree-tip{margin-top:18px;padding:10px;background:#0a101a;border:1px solid #1f2a3a;border-radius:9px}.tree-tip strong,.tree-tip small{display:block}.tree-tip strong{font-size:.67rem}.tree-tip small{font-size:.61rem;color:#64748b}.studio-center{display:flex;flex-direction:column;border-right:1px solid #263244;min-width:0}.editor-tabs{height:38px;background:#0a101a;border-bottom:1px solid #263244}.editor-tab{height:100%;border:0;border-right:1px solid #1e293b;background:#0f172a;color:#dbe4f0;padding:0 13px;font-size:.7rem;border-top:2px solid var(--primary)}.editor-toolbar{height:34px;background:#0b111b;border-bottom:1px solid #1e293b;display:flex;justify-content:space-between;align-items:center;padding:0 10px;font-size:.64rem;color:#64748b}.language-chip{margin-left:7px;border:1px solid #263244;padding:2px 5px;border-radius:5px}.shortcut{margin-left:10px}#monacoEditor{flex:1;min-height:0}.studio-preview{display:flex;flex-direction:column;min-width:0}.preview-toolbar{height:42px;background:#0a101a;border-bottom:1px solid #263244;display:flex;align-items:center;justify-content:space-between;padding:0 10px}.preview-toolbar>div{display:flex;gap:8px;font-size:.72rem}.preview-toolbar>div span{font-size:.62rem;color:#64748b}.preview-toolbar select{background:#111827;color:#cbd5e1;border:1px solid #334155;border-radius:6px;padding:4px 6px;font-size:.67rem}.preview-space{flex:1;padding:14px;background:#05080e;overflow:auto;display:flex;justify-content:center;align-items:flex-start}.device-shell{background:#fff;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}.device-shell.desktop{width:100%;height:100%;min-height:450px;border-radius:8px}.device-shell.tablet{width:768px;height:650px;border-radius:12px}.device-shell.mobile{width:375px;height:720px;border:9px solid #171717;border-radius:32px}.browser-chrome{height:34px;background:#e5e7eb;display:flex;align-items:center;gap:5px;padding:0 9px}.browser-chrome>span{width:7px;height:7px;border-radius:50%;background:#94a3b8}.browser-chrome>div{flex:1;margin-left:5px;background:#fff;border-radius:5px;padding:3px 7px;color:#94a3b8;font-size:.58rem}.device-shell iframe{width:100%;height:calc(100% - 34px);border:0}.device-shell.mobile .browser-chrome{display:none}.device-shell.mobile iframe{height:100%}.studio-console{grid-column:2/4;background:#070b12;border-top:1px solid #263244;overflow:auto}.console-bar{height:34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1f2937;padding:0 8px}.console-tab{border:0;background:transparent;color:#64748b;font-size:.61rem;padding:8px}.console-tab.active{color:#dbe4f0}.console-bar>button{border:0;background:transparent;color:#64748b;font-size:.62rem}.console-line{font:11px/1.6 Consolas,monospace;color:#94a3b8;padding:2px 10px}.console-line.success{color:#86efac}.console-line.error{color:#fca5a5}@media(max-width:1200px){.course-grid,.project-library-grid{grid-template-columns:repeat(2,1fr)}.content-layout{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:1000px){.app-sidebar{width:72px;padding:16px 8px}.app-brand span:last-child,.nav-caption,.sidebar-nav span,.user-copy,.user-box>a{display:none}.app-brand{justify-content:center}.sidebar-nav a{justify-content:center}.app-main{margin-left:72px}.lesson-layout{grid-template-columns:1fr}.lesson-nav{position:static;height:auto}.inline-lab-grid{grid-template-columns:1fr}.assignment-grid{grid-template-columns:1fr}}@media(max-width:760px){.app-sidebar{display:none}.app-main{margin-left:0}.app-topbar{padding:0 16px}.top-actions{display:none}.page-wrap{padding:20px}.stat-grid,.course-grid,.project-library-grid{grid-template-columns:1fr}.auth-shell{grid-template-columns:1fr}.auth-visual{min-height:380px;padding:30px}.auth-feature-grid{display:none}.auth-form{padding:30px}.course-header{flex-wrap:wrap}}


/* Editor host + guaranteed editable fallback */
#editorHost{
  flex:1;
  min-height:0;
  position:relative;
  overflow:hidden;
  background:#0b1120;
}

/* =========================================================
   NgodingLab v13.13 — automatic project simulator
   Web fills its responsive canvas; Mobile owns an elegant phone frame.
   ========================================================= */
.studio-app.simulator-web .preview-space{
    padding:12px;
    align-items:stretch;
}
.studio-app.simulator-web .device-shell.desktop{
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    border:1px solid #263244;
    border-radius:10px;
}
.studio-app.simulator-mobile .preview-space{
    padding:20px 14px;
    align-items:flex-start;
    justify-content:center;
    overflow:auto;
    scrollbar-gutter:stable;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y pinch-zoom;
}
.studio-app.simulator-mobile .device-shell.mobile{
    position:relative;
    flex:0 0 auto;
    width:min(390px,calc(100vw - 32px));
    height:min(780px,calc(100dvh - 148px));
    min-height:540px;
    padding:5px;
    overflow:hidden;
    border:9px solid #111827;
    border-radius:38px;
    background:#111827;
    box-shadow:0 24px 70px rgba(0,0,0,.58),0 0 0 1px #475569;
}
.studio-app.simulator-mobile .device-shell.mobile::before{
    content:"";
    position:absolute;
    z-index:3;
    top:8px;
    left:50%;
    width:92px;
    height:24px;
    transform:translateX(-50%);
    border-radius:999px;
    background:#080b12;
    pointer-events:none;
}
.studio-app.simulator-mobile .device-shell.mobile iframe{
    display:block;
    width:100%;
    height:100%;
    overflow:auto;
    border:0;
    border-radius:24px;
    background:#fff;
    overscroll-behavior:auto;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y pinch-zoom;
}
.simulator-menu-btn,
.studio-back,
.preview-controls button{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    line-height:1!important;
}
.simulator-menu-btn i,
.studio-back i,
.preview-controls button i{
    display:block!important;
    width:1em;
    height:1em;
    margin:0!important;
    line-height:1!important;
    transform:none!important;
}
.simulator-menu-btn i::before,
.studio-back i::before,
.preview-controls button i::before{
    display:block;
    line-height:1;
    vertical-align:0;
}
@media(max-width:900px){
    .studio-app.preview-focus.simulator-web .preview-space{padding:8px}
    .studio-app.preview-focus.simulator-web .device-shell.desktop{
        width:100%;height:100%;min-height:0;
    }
    .studio-app.preview-focus.simulator-mobile .preview-space{
        padding:12px 8px 22px;
    }
    .studio-app.preview-focus.simulator-mobile .device-shell.mobile{
        width:min(390px,calc(100vw - 20px));
        height:max(540px,calc(100% - 8px));
        min-height:0;
    }
}

/* v13.15 — project card actions */
.project-library-card{position:relative}
.project-card-link{display:block;color:inherit;text-decoration:none}
.project-delete-form{position:absolute;z-index:4;right:12px;bottom:12px;margin:0}
.project-delete-form button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #fecaca;border-radius:9px;background:#fff;color:#dc2626;box-shadow:0 5px 14px rgba(15,23,42,.08)}
.project-delete-form button:hover,.project-delete-form button:focus-visible{background:#fef2f2;border-color:#ef4444;outline:0}
.project-library-card:has(.project-delete-form) .project-card-body{padding-right:58px}

/* v13.13 final cascade guard: simulator mode follows project type only. */
.studio-app.simulator-web .preview-space{padding:12px;align-items:stretch}
.studio-app.simulator-web .device-shell.desktop{
    width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;
    border:1px solid #263244;border-radius:10px
}
.studio-app.simulator-mobile .preview-space{
    padding:20px 14px;align-items:flex-start;justify-content:center;overflow:auto!important;
    scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;touch-action:pan-y pinch-zoom!important
}
.studio-app.simulator-mobile .device-shell.mobile{
    position:relative;flex:0 0 auto;width:min(390px,calc(100vw - 32px))!important;
    height:min(780px,calc(100dvh - 148px))!important;min-height:540px;
    padding:5px;overflow:hidden;border:9px solid #111827;border-radius:38px;
    background:#111827;box-shadow:0 24px 70px rgba(0,0,0,.58),0 0 0 1px #475569
}
.studio-app.simulator-mobile .device-shell.mobile::before{
    content:"";position:absolute;z-index:3;top:8px;left:50%;width:92px;height:24px;
    transform:translateX(-50%);border-radius:999px;background:#080b12;pointer-events:none
}
.studio-app.simulator-mobile .device-shell.mobile iframe{
    display:block;width:100%;height:100%!important;overflow:auto;border:0;border-radius:24px;
    background:#fff;overscroll-behavior:auto;-webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y pinch-zoom!important
}
.simulator-menu-btn,.studio-back,.preview-controls button{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    padding:0!important;line-height:1!important
}
.simulator-menu-btn i,.studio-back i,.preview-controls button i{
    display:block!important;width:1em;height:1em;margin:0!important;line-height:1!important;transform:none!important
}
.simulator-menu-btn i::before,.studio-back i::before,.preview-controls button i::before{
    display:block;line-height:1;vertical-align:0
}
@media(max-width:900px){
    .studio-app.preview-focus.simulator-web .preview-space{padding:8px}
    .studio-app.preview-focus.simulator-web .device-shell.desktop{width:100%!important;height:100%!important;min-height:0!important}
    .studio-app.preview-focus.simulator-mobile .preview-space{padding:12px 8px 22px}
    .studio-app.preview-focus.simulator-mobile .device-shell.mobile{
        width:min(390px,calc(100vw - 20px))!important;height:max(540px,calc(100% - 8px))!important;min-height:0
    }
}
#monacoEditor{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.fallback-code-editor{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  resize:none;
  border:0;
  outline:0;
  padding:16px 18px 40px;
  background:#0b1120;
  color:#dbeafe;
  caret-color:#fff;
  font:14px/1.65 "Cascadia Code", Consolas, "Courier New", monospace;
  tab-size:2;
  white-space:pre;
  overflow:auto;
}
.fallback-code-editor:focus{
  box-shadow:inset 0 0 0 1px rgba(99,102,241,.45);
}


/* =========================================================
   v3.3 SIMPLE EDITOR
   Deliberately no Monaco. Each file has its own textarea.
   ========================================================= */

#simpleEditorHost{
    position:relative;
    flex:1;
    min-height:0;
    overflow:hidden;
    background:#0b1120;
}

.simple-code-editor{
    display:none;
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    resize:none;
    border:0;
    outline:0;
    background:#0b1120;
    color:#dbeafe;
    caret-color:#ffffff;
    padding:18px 20px 60px;
    font:14px/1.65 "Cascadia Code", Consolas, "Courier New", monospace;
    tab-size:2;
    white-space:pre;
    overflow:auto;
}

.simple-code-editor.active-editor{
    display:block;
}

.simple-code-editor:focus{
    box-shadow:inset 0 0 0 1px rgba(99,102,241,.38);
}

.tree-item.selected{
    background:#172235;
}

.tree-item.selected .tree-open{
    color:#fff;
}

.tree-open,
.tree-more,
#newFileBtn,
#newFolderBtn{
    cursor:pointer;
}

.tree-open{
    pointer-events:auto;
}

.tree-open i,
.tree-open span{
    pointer-events:none;
}

.tree-more i{
    pointer-events:none;
}


/* =========================================================
   NgodingLab v4 — professional multi-page workspace
   ========================================================= */

.workspace-state{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:.7rem;
    color:#94a3b8;
    padding:4px 8px;
    border:1px solid #253047;
    border-radius:7px;
    background:#0a101a;
}

.studio-back{
    width:32px;
    height:32px;
    border-radius:8px;
    display:grid;
    place-items:center;
    color:#94a3b8;
    text-decoration:none;
    background:#172235;
    border:1px solid #263244;
}

.studio-back:hover{
    color:#fff;
    background:#1f2d45;
}

.editor-path{
    display:flex;
    align-items:center;
    gap:7px;
}

.editor-shortcuts{
    display:flex;
    gap:12px;
    align-items:center;
}

.editor-shortcuts span{
    white-space:nowrap;
}

.editor-shortcuts kbd{
    background:#172235;
    border:1px solid #29364e;
    border-bottom-color:#3b4b68;
    color:#94a3b8;
    font-size:.56rem;
    padding:1px 4px;
    border-radius:4px;
    box-shadow:none;
}

.editor-statusbar{
    height:25px;
    background:#0a101a;
    border-top:1px solid #1f2937;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:14px;
    padding:0 10px;
    color:#64748b;
    font-size:.58rem;
}

.editor-statusbar .bi-circle-fill{
    font-size:.38rem;
    color:#22c55e;
}

.preview-controls{
    display:flex;
    gap:5px;
    align-items:center;
}

.preview-controls button{
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid #2b374e;
    border-radius:6px;
    background:#111827;
    color:#94a3b8;
}

.preview-controls button:hover{
    color:#fff;
    background:#1b2639;
}

.preview-addressbar{
    height:31px;
    display:flex;
    align-items:center;
    gap:6px;
    padding:0 11px;
    background:#0d1420;
    border-bottom:1px solid #263244;
    color:#64748b;
    font-size:.62rem;
}

.preview-addressbar i{
    color:#22c55e;
    font-size:.58rem;
}

.preview-addressbar strong{
    color:#aeb9c9;
    font-weight:600;
}

.preview-title{
    display:flex;
    align-items:center;
    gap:9px;
}

.console-context{
    color:#64748b;
    font-size:.58rem;
    margin-left:8px;
}

.modal-kicker{
    color:#4f46e5;
    font-size:.62rem;
    letter-spacing:.12em;
    font-weight:800;
    margin-bottom:3px;
}

.tree-tip code{
    color:#a5b4fc;
    font-size:.59rem;
}

.studio-actions .btn{
    border-radius:7px;
}

.project-library-card{
    position:relative;
}

.project-library-card::after{
    content:"MULTI-PAGE";
    position:absolute;
    top:12px;
    right:12px;
    padding:4px 7px;
    background:rgba(255,255,255,.09);
    border:1px solid rgba(255,255,255,.12);
    color:#cbd5e1;
    border-radius:999px;
    font-size:.55rem;
    letter-spacing:.08em;
    font-weight:800;
}

@media(max-width:1150px){
    .editor-shortcuts{display:none}
}

@media(max-width:900px){
    .studio-actions .workspace-state{display:none}
}

/* v13.12 — device selection controls console, not browser width. */
.studio-app.preview-focus.device-tablet{
    grid-template-rows:58px minmax(0,1fr) 180px!important;
}
.studio-app.preview-focus.device-tablet .studio-preview{
    grid-column:1!important;
    grid-row:2!important;
    min-height:0!important;
}
.studio-app.preview-focus.device-tablet .studio-console{
    display:block!important;
    grid-column:1!important;
    grid-row:3!important;
    width:100%!important;
    height:180px!important;
    min-height:0!important;
    max-height:180px!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y!important;
}
.studio-app.preview-focus.device-tablet .preview-space,
.studio-app.preview-focus.device-mobile .preview-space{
    overflow:auto!important;
    overscroll-behavior:auto!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-x pan-y pinch-zoom!important;
}

/* =========================================================
   NgodingLab v13.7 — icon-only menu inside simulator
   ========================================================= */
.studio-bar{
    background:#0d1420;
    border-bottom-color:#263244;
}
.studio-actions{gap:5px}
.simulator-menu-btn,
.studio-actions .workspace-state,
.studio-actions .team-role-pill{
    width:34px;
    min-width:34px!important;
    height:34px;
    padding:0!important;
    display:inline-grid;
    place-items:center;
    flex:0 0 34px;
    border:1px solid #2b374e;
    border-radius:8px;
    background:#172033;
    color:#cbd5e1;
    text-decoration:none;
    font-size:0;
    line-height:1;
    cursor:pointer;
}
.simulator-menu-btn i,
.studio-actions .workspace-state i,
.studio-actions .team-role-pill i{font-size:.9rem;margin:0!important}
.simulator-menu-btn:hover,.simulator-menu-btn:focus-visible{
    background:#24324a;
    border-color:#3b4b68;
    color:#fff;
    outline:0;
}
.simulator-menu-btn:disabled{opacity:.42;cursor:not-allowed}
.simulator-menu-btn.simulator-run{background:#16a34a;border-color:#22c55e;color:#fff}
.simulator-menu-btn.simulator-run:hover{background:#15803d}
.simulator-tip{position:relative!important}
.simulator-tip::after{
    content:attr(data-tooltip);
    position:absolute;
    z-index:2000;
    top:calc(100% + 9px);
    left:50%;
    transform:translate(-50%,-3px);
    width:max-content;
    max-width:220px;
    padding:6px 9px;
    border:1px solid #334155;
    border-radius:7px;
    background:#020617;
    color:#fff;
    box-shadow:0 8px 24px rgba(0,0,0,.35);
    font-size:.68rem;
    font-weight:600;
    line-height:1.25;
    white-space:normal;
    pointer-events:none;
    opacity:0;
    visibility:hidden;
    transition:opacity .15s ease,transform .15s ease;
}
.simulator-tip:hover::after,.simulator-tip:focus-visible::after{
    opacity:1;
    visibility:visible;
    transform:translate(-50%,0);
}
.simulator-more{display:flex;flex:0 0 auto}
.simulator-more-menu{
    min-width:205px;
    padding:7px;
    border:1px solid #334155;
    border-radius:10px;
    background:#0f172a;
    box-shadow:0 18px 45px rgba(0,0,0,.42);
}
.simulator-more-menu .dropdown-item{
    display:flex;
    align-items:center;
    gap:10px;
    padding:9px 10px;
    border:0;
    border-radius:7px;
    background:transparent;
    color:#cbd5e1;
    font-size:.76rem;
}
.simulator-more-menu .dropdown-item:hover,.simulator-more-menu .dropdown-item:focus{background:#1e293b;color:#fff}
.simulator-more-menu .dropdown-item i{width:18px;color:#93c5fd;text-align:center}
.mobile-more-only{display:none!important}
.editor-tabs{display:flex;align-items:stretch;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.editor-tabs::-webkit-scrollbar{display:none}
.editor-tab{display:flex;align-items:center;gap:7px;min-width:max-content}
.editor-tab>span{max-width:160px;overflow:hidden;text-overflow:ellipsis}
.editor-tab .tab-close{width:17px;height:17px;display:grid;place-items:center;border-radius:4px;color:#64748b;font-size:.8rem}
.editor-tab .tab-close:hover{background:#263244;color:#fff}
.editor-tab .tab-dirty{display:none;width:7px;height:7px;border-radius:50%;background:#fbbf24}
.editor-tab.is-dirty .tab-dirty{display:block}
.editor-tab.is-dirty .tab-close{display:none}
.preview-title{align-items:center}
.preview-open-browser{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid #334155;border-radius:7px;color:#bfdbfe;text-decoration:none}
.preview-open-browser:hover{background:#172033;color:#fff}

.studio-app.preview-focus .preview-toolbar{
    justify-content:flex-end;
    flex:0 0 42px;
}
.studio-app.preview-focus .preview-space{
    min-height:0!important;
    overflow:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y!important;
    padding-bottom:max(24px,env(safe-area-inset-bottom))!important;
}
.studio-app.preview-focus .device-shell{
    flex:0 0 auto;
    max-width:none;
}
.studio-app.preview-focus .device-shell iframe{
    display:block;
    overflow:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y;
}
@media(max-width:900px){
    .studio-bar{padding:0 8px;gap:8px}
    .studio-brand>div{display:none}
    .studio-actions{
        min-width:0;
        flex:1 1 auto;
        flex-wrap:nowrap;
        justify-content:flex-start;
        overflow-x:auto;
        overflow-y:hidden;
        scrollbar-width:none;
    }
    .studio-actions::-webkit-scrollbar{display:none}
    #editorSettingsBtn,#openReferenceBtn,#openVirtualDbBtn{display:none}
    .simulator-more-menu .mobile-more-only{display:flex!important}
    .simulator-tip::after{display:none}
    .studio-app.preview-focus{
        height:100dvh!important;
        max-height:100dvh!important;
    }
    .studio-app.preview-focus .studio-preview{height:100%!important;min-height:0!important}
    .studio-app.preview-focus .preview-controls{width:100%;justify-content:flex-end}
    .studio-app.preview-focus .device-shell.tablet{width:768px;height:calc(100dvh - 126px);min-height:560px}
    .studio-app.preview-focus .device-shell.mobile{height:calc(100dvh - 126px);min-height:560px}
}

/* =========================================================
   NgodingLab v4.1 — Resizable Editor + Toggle Preview
   ========================================================= */

.studio-app{
    --editor-percent:56%;
    grid-template-columns:
        230px
        minmax(320px, var(--editor-percent))
        7px
        minmax(320px, 1fr);
    grid-template-rows:58px 1fr 160px;
}

.studio-bar{
    grid-column:1 / 5;
}

.studio-tree{
    grid-column:1;
    grid-row:2 / 4;
}

.studio-center{
    grid-column:2;
    grid-row:2;
}

.panel-resizer{
    grid-column:3;
    grid-row:2;
    position:relative;
    background:#080d16;
    border-left:1px solid #1d2738;
    border-right:1px solid #1d2738;
    cursor:col-resize;
    z-index:5;
}

.panel-resizer::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:3px;
    height:42px;
    border-radius:999px;
    transform:translate(-50%,-50%);
    background:#334155;
    transition:.15s;
}

.panel-resizer:hover::after,
body.is-resizing .panel-resizer::after{
    height:70px;
    background:#818cf8;
}

.studio-preview{
    grid-column:4;
    grid-row:2;
}

.studio-console{
    grid-column:2 / 5;
    grid-row:3;
}

.studio-app.preview-hidden{
    grid-template-columns:230px minmax(0,1fr) 0 0;
}

.studio-app.preview-hidden .studio-preview,
.studio-app.preview-hidden .panel-resizer{
    display:none;
}

.studio-app.preview-hidden .studio-center{
    grid-column:2 / 5;
    border-right:0;
}

.studio-app.preview-hidden .studio-console{
    grid-column:2 / 5;
}

body.is-resizing{
    cursor:col-resize !important;
    user-select:none !important;
}

body.is-resizing iframe{
    pointer-events:none;
}

.preview-toolbar{
    min-height:42px;
}

.preview-controls button{
    flex:0 0 auto;
}

#togglePreviewBtn{
    min-width:92px;
}

.simple-code-editor{
    font-size:14px;
    line-height:1.7;
}

@media(max-width:1180px){
    .studio-app{
        grid-template-columns:210px minmax(330px,58%) 6px minmax(300px,1fr);
    }

    .studio-tree{
        width:auto;
    }

    .studio-actions .btn{
        font-size:.68rem;
    }
}

/* =========================================================
   v13.10 — complete code scrolling on every viewport
   ========================================================= */
.studio-center,
#simpleEditorHost{
    min-height:0!important;
    overflow:hidden!important;
}
.simple-code-editor.active-editor{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    overflow-x:scroll!important;
    overflow-y:scroll!important;
    padding-bottom:max(140px,env(safe-area-inset-bottom))!important;
    scrollbar-gutter:stable;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y!important;
}
.syntax-layer{
    position:absolute!important;
    inset:0!important;
    overflow:scroll!important;
    padding-bottom:max(140px,env(safe-area-inset-bottom))!important;
    scrollbar-gutter:stable;
    pointer-events:none!important;
}

/* v13.11 — console tablet/mobile + smooth preview touch scroll */
@media(max-width:900px){
    .studio-app:not(.preview-focus){
        grid-template-rows:auto minmax(0,1fr) 150px!important;
    }
    .studio-app:not(.preview-focus) .studio-console{
        display:block!important;
        grid-column:1!important;
        grid-row:3!important;
        width:100%!important;
        min-height:0!important;
        max-height:150px!important;
        overflow:auto!important;
        -webkit-overflow-scrolling:touch;
        touch-action:pan-y!important;
    }
    .studio-app.preview-focus{
        grid-template-rows:auto minmax(0,1fr) 150px!important;
    }
    .studio-app.preview-focus .studio-preview{grid-row:2!important}
    .studio-app.preview-focus .studio-console{
        display:block!important;
        grid-column:1!important;
        grid-row:3!important;
        width:100%!important;
        min-height:0!important;
        max-height:150px!important;
        overflow:auto!important;
        -webkit-overflow-scrolling:touch;
        touch-action:pan-y!important;
    }
    .studio-app.preview-focus .preview-space{
        overflow:auto!important;
        overscroll-behavior:auto!important;
        -webkit-overflow-scrolling:touch!important;
        touch-action:pan-x pan-y pinch-zoom!important;
    }
    .studio-app.preview-focus .device-shell iframe{
        overflow:auto!important;
        overscroll-behavior:auto!important;
        -webkit-overflow-scrolling:touch!important;
        touch-action:pan-x pan-y pinch-zoom!important;
    }
}
@media(max-width:900px){
    .studio-app:not(.preview-focus) .studio-center{
        height:100%!important;
        max-height:none!important;
    }
    .studio-app:not(.preview-focus) #simpleEditorHost{
        height:100%!important;
    }
}

@media(max-width:900px){
    .studio-app{
        height:auto;
        min-height:100vh;
        display:block;
        overflow:auto;
    }

    .studio-bar{
        position:sticky;
        top:0;
        z-index:30;
        min-height:58px;
    }

    .studio-tree{
        display:none;
    }

    .studio-center{
        height:58vh;
        min-height:480px;
        border-right:0;
        border-bottom:1px solid #263244;
    }

    .panel-resizer{
        display:none !important;
    }

    .studio-preview{
        height:60vh;
        min-height:500px;
    }

    .studio-console{
        min-height:170px;
    }

    .studio-app.preview-hidden .studio-preview{
        display:none;
    }

    .studio-actions{
        flex-wrap:wrap;
        justify-content:flex-end;
    }
}


/* =========================================================
   NgodingLab v4.2 — Editor Appearance Settings
   ========================================================= */

#simpleEditorHost{
    --code-bg:#0b1120;
    --code-text:#dbeafe;
    --code-caret:#ffffff;
    --code-selection:#25365c;
    --code-font:"Cascadia Code", Consolas, "Courier New", monospace;
    --code-size:14px;
    --code-line:1.70;
    --code-tab:2;
    background:var(--code-bg);
}

.simple-code-editor{
    background:var(--code-bg) !important;
    color:var(--code-text) !important;
    caret-color:var(--code-caret) !important;
    font-family:var(--code-font) !important;
    font-size:var(--code-size) !important;
    line-height:var(--code-line) !important;
    tab-size:var(--code-tab) !important;
    transition:background .15s,color .15s,font-size .15s;
}

.simple-code-editor::selection{
    background:var(--code-selection);
}

.setting-range-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:5px;
}

.setting-range-head strong{
    font-size:.78rem;
    color:#4f46e5;
}

.editor-setting-preview{
    border:1px solid #e5e7eb;
    border-radius:12px;
    overflow:hidden;
}

.editor-setting-preview>small{
    display:block;
    padding:8px 12px;
    background:#f8fafc;
    border-bottom:1px solid #e5e7eb;
    color:#667085;
    font-size:.62rem;
    letter-spacing:.1em;
    font-weight:800;
}

.editor-setting-preview pre{
    margin:0;
    min-height:110px;
    padding:16px;
    white-space:pre-wrap;
    transition:.15s;
}

@media(max-width:760px){
    #editorSettingsBtn{
        padding-left:.55rem;
        padding-right:.55rem;
    }

    #editorSettingsBtn{
        font-size:0;
    }

    #editorSettingsBtn i{
        font-size:.85rem;
    }
}


/* =========================================================
   NgodingLab v4.3 — Live Preview vs Browser Preview
   ========================================================= */

.preview-open-browser{
    height:28px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:0 9px;
    border:1px solid #2b374e;
    border-radius:6px;
    background:#111827;
    color:#cbd5e1;
    text-decoration:none;
    font-size:.63rem;
    white-space:nowrap;
}

.preview-open-browser:hover{
    color:#fff;
    background:#1b2639;
}

.console-line.info{
    color:#93c5fd;
}

@media(max-width:1180px){
    .preview-open-browser span{
        display:none;
    }

    .preview-open-browser{
        width:28px;
        padding:0;
        justify-content:center;
    }
}


/* =========================================================
   NgodingLab v5 — PHP Sandbox
   ========================================================= */

.codelab-php-error{
    white-space:pre-wrap;
    padding:14px 16px;
    border-radius:10px;
    background:#180b0b;
    color:#fecaca;
    border:1px solid #7f1d1d;
    font:13px/1.6 Consolas,monospace;
}

.tree-tip strong strong{
    color:#86efac;
}

/* NgodingLab v6 - course flow and assignment uploads */
.assignment-guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 24px}.assignment-guide>div{display:flex;flex-direction:column;gap:4px;padding:16px 18px;background:#fff;border:1px solid #e4e8f1;border-radius:14px}.assignment-guide strong{color:#6f42c1}.assignment-guide span{font-size:.82rem;color:#64748b}.submitted-file{display:flex;gap:12px;align-items:flex-start;margin:14px 0;padding:14px 16px;border-radius:12px;background:#ecfdf5;color:#166534}.submitted-file>i{font-size:1.2rem}.submitted-file div{display:flex;flex-direction:column;gap:4px}.submitted-file a{color:#166534;font-size:.85rem;font-weight:700}.article-body .lesson-check{margin:24px 0;padding:18px 20px;border-left:4px solid #7952b3;border-radius:0 12px 12px 0;background:#f4f0fb}.article-body .lesson-check strong{display:block;margin-bottom:4px;color:#5b36a3}.article-body .lesson-check p{margin:0}.assignment-card input[type=file]{padding:.65rem}.assignment-card .form-text{color:#64748b}
@media(max-width:900px){.assignment-guide{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.assignment-guide{grid-template-columns:1fr}}

/* NgodingLab v7 - ordered learning and readable code */
.lesson-progress-copy{margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.lesson-progress-copy strong,.lesson-progress-copy span{display:block}.lesson-progress-copy strong{font-size:.82rem;color:var(--primary)}.lesson-progress-copy span{margin-top:4px;font-size:.7rem;line-height:1.45;color:var(--muted)}.lesson-step-label{float:right;padding:5px 8px;border-radius:7px;background:var(--soft);color:var(--primary);font-size:.65rem;font-weight:800;letter-spacing:.05em}.article-body>h2:first-child{margin-top:0}.article-body h2{padding-bottom:.45rem;border-bottom:1px solid #eef1f5}.article-body h3{margin:1.25rem 0 .55rem;font-size:1.05rem;font-weight:800}.article-body p,.article-body li{color:#344054}.article-body li+li{margin-top:.4rem}.article-body pre{margin:1rem 0 1.35rem;padding:22px;font-size:15px;line-height:1.75;tab-size:2;white-space:pre;box-shadow:inset 0 0 0 1px #24324a}.article-body table{width:100%;margin:1rem 0;border-collapse:collapse}.article-body th,.article-body td{padding:11px 13px;border:1px solid var(--line);text-align:left}.article-body th{background:#f8fafc}.inline-lab textarea{font-size:15px;line-height:1.7;tab-size:2;white-space:pre}.inline-lab-grid.single-code{grid-template-columns:1fr;min-height:480px}.php-lab-note{padding:11px 18px;background:#172033;color:#bfdbfe;font-size:.78rem}.lesson-pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.lesson-pager a{display:flex;flex-direction:column;padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:#fff;text-decoration:none}.lesson-pager a.next{text-align:right;align-items:flex-end}.lesson-pager small{color:var(--muted);font-size:.68rem}.lesson-pager strong{margin-top:4px;font-size:.8rem;color:var(--primary)}
@media(max-width:760px){.lesson-step-label{float:none;display:inline-block;margin-bottom:12px}.lesson-pager{grid-template-columns:1fr}.lesson-pager a.next{text-align:left;align-items:flex-start}}
.course-flow{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0;padding:13px 18px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--muted);font-size:.76rem;font-weight:700}.course-flow span{color:var(--primary)}
@media(max-width:700px){.course-flow{align-items:flex-start;flex-direction:column}.course-flow i{display:none}}
.learning-code{position:relative;margin:1rem 0 1.35rem}.learning-code pre{margin:0!important;padding-top:50px!important}.copy-code{position:absolute;z-index:2;top:10px;right:10px;border:1px solid #334155;border-radius:7px;background:#172033;color:#dbeafe;padding:6px 10px;font-size:.7rem}.copy-code:hover{background:#24324a}.inline-lab-head h3{margin:.15rem 0 0;font-size:1rem}.inline-lab textarea{padding:22px 24px;letter-spacing:0}.lesson-row strong{line-height:1.35}

/* NgodingLab v9 - private library, guided reference, syntax colors */
.code-library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.code-library-card{padding:22px}.code-library-card h2{margin:10px 0 6px;font-size:1rem}.code-library-card>code{display:inline-block;margin:5px 0 12px;padding:6px 9px;border-radius:7px;background:#eef2ff;color:#5b36a3}.code-library-card p{min-height:44px;margin:0 0 10px;color:#64748b;font-size:.82rem;line-height:1.6}.code-library-card>small{color:#64748b}.library-code-input{font:14px/1.65 Consolas,"Courier New",monospace;tab-size:2}
#simpleEditorHost{position:relative}.syntax-layer,.simple-code-editor{font-family:var(--code-font)!important;font-size:var(--code-size)!important;line-height:var(--code-line)!important;tab-size:var(--code-tab)!important}.syntax-layer{position:absolute;z-index:0;inset:0;margin:0;padding:18px 20px 60px;overflow:auto;pointer-events:none;white-space:pre;color:var(--code-text);background:var(--code-bg);scrollbar-width:none}.syntax-layer::-webkit-scrollbar{display:none}.simple-code-editor.active-editor{position:relative;z-index:1;background:transparent!important;color:transparent!important;-webkit-text-fill-color:transparent;caret-color:var(--code-caret)!important}.simple-code-editor.active-editor::selection{background:var(--code-selection);color:transparent}.tok-comment{color:#64748b;font-style:italic}.tok-tag,.tok-keyword{color:#f472b6}.tok-attr,.tok-function{color:#60a5fa}.tok-string{color:#a7f3d0}.tok-number,.tok-variable{color:#fbbf24}.studio-body:has(#simpleEditorHost[style*="#ffffff"]) .tok-comment{color:#6b7280}.studio-body:has(#simpleEditorHost[style*="#ffffff"]) .tok-tag,.studio-body:has(#simpleEditorHost[style*="#ffffff"]) .tok-keyword{color:#be185d}.studio-body:has(#simpleEditorHost[style*="#ffffff"]) .tok-attr,.studio-body:has(#simpleEditorHost[style*="#ffffff"]) .tok-function{color:#1d4ed8}.studio-body:has(#simpleEditorHost[style*="#ffffff"]) .tok-string{color:#047857}
.reference-panel{position:fixed;z-index:1090;top:0;right:0;width:min(520px,94vw);height:100vh;padding:0 20px 28px;overflow:auto;transform:translateX(102%);transition:transform .24s ease;background:#0b1120;color:#dbeafe;border-left:1px solid #29364d;box-shadow:-20px 0 50px rgba(0,0,0,.35)}.reference-panel.open{transform:none}.reference-backdrop{position:fixed;z-index:1085;inset:0;display:none;background:rgba(2,6,23,.62)}.reference-backdrop.open{display:block}.reference-head{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;margin:0 -20px 18px;padding:16px 20px;background:#111827;border-bottom:1px solid #29364d}.reference-head div{display:flex;flex-direction:column}.reference-head small{color:#60a5fa;font-size:.62rem;font-weight:800;letter-spacing:.12em}.reference-head button{border:0;background:none;color:#cbd5e1;font-size:1.1rem}.reference-command label{display:block;margin-bottom:7px;font-size:.78rem;font-weight:700}.reference-command>small{display:block;margin-top:7px;color:#94a3b8;font-size:.68rem}.reference-filter{display:grid;grid-template-columns:1fr 150px;gap:8px;margin:18px 0 10px}.reference-list{display:grid;gap:7px;max-height:190px;overflow:auto}.reference-list button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:1px solid #29364d;border-radius:9px;background:#111827;color:#e2e8f0;text-align:left}.reference-list button:hover{border-color:#60a5fa}.reference-list button span{display:flex;flex-direction:column}.reference-list small{color:#94a3b8;font:11px Consolas,monospace}.reference-list em{font-size:.61rem;color:#60a5fa;font-style:normal}.reference-detail{margin-top:20px;padding-top:18px;border-top:1px solid #29364d}.reference-detail h2{margin:8px 0 2px;font-size:1.1rem}.reference-detail p{margin:15px 0;color:#94a3b8;font-size:.78rem;line-height:1.55}.reference-code-wrap{position:relative}.reference-code-wrap pre{max-height:350px;margin:0;padding:18px 18px 44px;overflow:auto;white-space:pre;background:#050914;border:1px solid #29364d;border-radius:10px;color:#dbeafe;font:13px/1.65 Consolas,monospace;user-select:none;-webkit-user-select:none}.reference-code-wrap>span{position:absolute;right:10px;bottom:9px;padding:5px 8px;border-radius:6px;background:#172033;color:#93c5fd;font-size:.62rem}.reference-empty{display:flex;min-height:220px;align-items:center;justify-content:center;flex-direction:column;color:#64748b;text-align:center}.reference-empty i{font-size:2rem}.reference-empty strong,.reference-empty small{margin-top:8px}.reference-check>div{display:flex;flex-direction:column;gap:5px;margin-top:10px;padding:11px 12px;border-radius:8px;font-size:.73rem}.check-success{background:#052e2b;color:#6ee7b7}.check-error{background:#450a0a;color:#fecaca}.check-info{background:#172554;color:#bfdbfe}.check-progress{background:#172033;color:#dbeafe}.check-progress>div{height:6px;overflow:hidden;border-radius:99px;background:#334155}.check-progress>div>span{display:block;height:100%;background:#22c55e}.check-progress small{color:#94a3b8}
@media(max-width:1000px){.code-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.code-library-grid{grid-template-columns:1fr}.reference-filter{grid-template-columns:1fr}}

/* v9.2 - precise editor overlay and Library actions */
.syntax-layer,
.simple-code-editor{
    box-sizing:border-box;
    font-family:var(--code-font)!important;
    font-size:var(--code-size)!important;
    font-weight:400!important;
    font-style:normal;
    line-height:var(--code-line)!important;
    letter-spacing:0!important;
    font-variant-ligatures:none;
    text-rendering:auto;
    tab-size:var(--code-tab)!important;
    scrollbar-gutter:stable;
}
.syntax-layer{
    border:0;
    padding:18px 20px 60px;
    overflow:scroll;
    scrollbar-color:transparent transparent;
    scrollbar-width:auto;
}
.simple-code-editor.active-editor{position:absolute}
.syntax-layer::-webkit-scrollbar{width:14px;height:14px}
.syntax-layer::-webkit-scrollbar-thumb,.syntax-layer::-webkit-scrollbar-track{background:transparent}
.reference-code-wrap pre{user-select:text;-webkit-user-select:text}
.reference-code-wrap>span{user-select:none;-webkit-user-select:none}
.reference-actions{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px;margin-top:10px}
@media(max-width:420px){.reference-actions{grid-template-columns:1fr}}

/* v9.5 - cursor and syntax layer must use identical text metrics */
.syntax-layer code,
.syntax-layer code span{
    font-family:inherit!important;
    font-size:inherit!important;
    font-weight:400!important;
    font-style:normal!important;
    line-height:inherit!important;
    letter-spacing:inherit!important;
    font-variant-ligatures:none!important;
    text-rendering:inherit!important;
}
.syntax-layer code{
    display:block;
    min-width:100%;
    min-height:100%;
    padding:0;
    color:inherit;
    background:transparent;
    white-space:inherit;
    overflow-wrap:inherit;
}
.tok-comment{font-style:normal!important}

/* v10 - project generator and team workspace */
.team-feature-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 24px}.team-feature-strip>div{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff}.team-feature-strip i{display:grid;width:38px;height:38px;place-items:center;border-radius:10px;background:#eef2ff;color:#5b36a3;font-size:1.05rem}.team-feature-strip span{display:flex;flex-direction:column}.team-feature-strip strong{font-size:.82rem}.team-feature-strip small{color:#64748b;font-size:.68rem}.project-card-preview{position:relative}.project-role-badge,.team-role-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:7px;font-size:.6rem;font-weight:800;font-style:normal;letter-spacing:.05em}.project-role-badge{position:absolute;right:12px;top:12px}.project-role-badge.owner,.team-role-pill.owner{background:#ede9fe;color:#6d28d9}.project-role-badge.editor,.team-role-pill.editor{background:#dcfce7;color:#166534}.project-role-badge.viewer,.team-role-pill.viewer{background:#e2e8f0;color:#475569}.studio-bar .team-role-pill{position:static}.template-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.template-choice-grid label{cursor:pointer}.template-choice-grid input{position:absolute;opacity:0;pointer-events:none}.template-choice-grid span{display:flex;min-height:110px;flex-direction:column;padding:16px;border:1px solid #dbe1ea;border-radius:12px;background:#fff}.template-choice-grid i{margin-bottom:9px;color:#6d28d9;font-size:1.2rem}.template-choice-grid small{margin-top:4px;color:#64748b;font-size:.68rem}.template-choice-grid input:checked+span{border-color:#7c3aed;background:#f5f3ff;box-shadow:0 0 0 2px rgba(124,58,237,.12)}.team-invite-form{display:grid;grid-template-columns:1fr 130px 100px;gap:8px}.team-member-list{display:grid;gap:8px}.team-member-list>div{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:11px}.team-member-list>div>span:nth-child(2){display:flex;min-width:0;flex:1;flex-direction:column}.team-member-list small{color:#64748b;font-size:.68rem}.team-comment-list{display:grid;gap:8px;max-height:360px;overflow:auto}.team-comment-list article{padding:12px 14px;border-radius:10px;background:#f8fafc}.team-comment-list strong,.team-comment-list small{display:block}.team-comment-list small{color:#64748b;font-size:.65rem}.team-comment-list p{margin:8px 0 0;font-size:.78rem}.team-activity-list{display:grid;gap:7px;max-height:390px;overflow:auto}.team-activity-list>div{display:flex;gap:10px;padding:10px;border-bottom:1px solid #eef2f7}.team-activity-list>div>span{display:flex;flex-direction:column}.team-activity-list strong{font-size:.74rem;text-transform:capitalize}.team-activity-list small{color:#64748b;font-size:.65rem}.history-list{display:grid;gap:8px}.history-list>div{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border:1px solid #e5e7eb;border-radius:10px}.history-list span{display:flex;flex-direction:column}.history-list small{color:#64748b;font-size:.66rem}
@media(max-width:760px){.team-feature-strip{grid-template-columns:1fr}.template-choice-grid{grid-template-columns:1fr}.team-invite-form{grid-template-columns:1fr}.studio-bar .team-role-pill{display:none}}

/* NgodingLab v12 - Virtual Database */
.vdb-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.vdb-summary>div{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc}.vdb-summary small{font-size:.6rem;font-weight:800;letter-spacing:.08em;color:#64748b}.vdb-summary strong{font-size:.78rem;overflow:hidden;text-overflow:ellipsis}.vdb-side-card,.vdb-main-card{min-height:430px;padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}.vdb-table-list{display:grid;gap:7px;max-height:340px;overflow:auto}.vdb-table-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 11px;border:1px solid #e5e7eb;border-radius:9px;background:#fff;color:#334155;text-align:left}.vdb-table-item:hover,.vdb-table-item.active{border-color:#7c3aed;background:#f5f3ff}.vdb-table-item span{display:flex;align-items:center;gap:8px}.vdb-table-item small{color:#64748b;font-size:.62rem}.vdb-empty-state{display:flex;min-height:390px;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#64748b}.vdb-empty-state i{font-size:2.2rem;color:#94a3b8}.vdb-empty-state strong{margin-top:10px;color:#334155}.vdb-empty-state small{margin-top:4px}.vdb-column-builder{display:grid;gap:8px}.vdb-column-row{display:grid;grid-template-columns:minmax(120px,1.4fr) 130px 90px 72px 62px 62px 36px;gap:7px;align-items:center}.vdb-column-row .form-check{display:flex;align-items:center;gap:5px;margin:0;font-size:.68rem}.vdb-schema-chips{display:flex;flex-wrap:wrap;gap:7px}.vdb-schema-chips>span{display:flex;flex-direction:column;padding:7px 9px;border-radius:8px;background:#f1f5f9;border:1px solid #e2e8f0}.vdb-schema-chips strong{font-size:.7rem}.vdb-schema-chips small{font-size:.57rem;color:#64748b}.vdb-row-editor{padding:14px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff}.vdb-sql-editor{min-height:250px;resize:vertical}.vdb-sql-result{min-height:300px;max-height:420px;padding:12px;overflow:auto;border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc;font-size:.72rem}.vdb-code{min-height:260px;margin:0;padding:20px;border-radius:12px;background:#0f172a;color:#dbeafe;font:13px/1.7 Consolas,monospace;white-space:pre;overflow:auto}.vdb-security-card{display:flex;gap:12px;align-items:flex-start;height:100%;padding:16px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.vdb-security-card>i{display:grid;width:38px;height:38px;place-items:center;flex:0 0 auto;border-radius:10px;background:#eef2ff;color:#6d28d9}.vdb-security-card div{display:flex;flex-direction:column;gap:4px}.vdb-security-card strong{font-size:.78rem}.vdb-security-card small{color:#64748b;font-size:.68rem;line-height:1.5}
@media(max-width:992px){.vdb-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.vdb-column-row{grid-template-columns:1fr 120px 80px}.vdb-column-row .form-check{padding-left:1.5rem}.vdb-side-card,.vdb-main-card{min-height:auto}}
@media(max-width:560px){.vdb-summary{grid-template-columns:1fr}.vdb-column-row{grid-template-columns:1fr 1fr}.vdb-column-row .vdb-col-length{grid-column:1/2}}


/* =========================================================
   NgodingLab v13.2 — Preview Focus Mode
   Preview is a simulator view, not an editor stacked below it.
   ========================================================= */
.studio-app.preview-focus{
    display:grid!important;
    height:100vh!important;
    min-height:0!important;
    overflow:hidden!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto minmax(0,1fr)!important;
}
.studio-app.preview-focus .studio-bar{
    grid-column:1!important;
    grid-row:1!important;
    min-height:58px;
}
.studio-app.preview-focus .studio-tree,
.studio-app.preview-focus .studio-center,
.studio-app.preview-focus .panel-resizer,
.studio-app.preview-focus .studio-console{
    display:none!important;
}
.studio-app.preview-focus .studio-preview{
    display:flex!important;
    grid-column:1!important;
    grid-row:2!important;
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
}
.studio-app.preview-focus .preview-space{
    flex:1;
    min-height:0;
    overflow:auto;
}
.studio-app.preview-focus .studio-actions > *{
    display:none!important;
}
.studio-app.preview-focus .studio-actions #togglePreviewBtn{
    display:inline-flex!important;
}
.studio-app.preview-focus .device-shell.desktop{
    height:100%;
    min-height:0;
}
@media(max-width:900px){
    .studio-app.preview-focus .studio-bar{
        position:static;
        display:flex;
        flex-wrap:nowrap;
        height:58px;
        padding:0 10px;
    }
    .studio-app.preview-focus .studio-brand small{display:none}
    .studio-app.preview-focus .preview-toolbar{
        min-height:44px;
        height:auto;
        flex-wrap:wrap;
        gap:6px;
        padding:7px 9px;
    }
    .studio-app.preview-focus .preview-title span{display:none}
    .studio-app.preview-focus .preview-open-browser span{display:none}
    .studio-app.preview-focus .preview-addressbar{display:none}
    .studio-app.preview-focus .preview-space{padding:8px}
}

/* =========================================================
   NgodingLab v13.4 — Simulator Read-only
   Simulator menampilkan hasil terkini, interaksi hanya di Browser.
   ========================================================= */
.preview-readonly-badge{
    display:inline-flex!important;
    align-items:center;
    gap:4px;
    padding:3px 7px;
    border:1px solid #334155;
    border-radius:999px;
    background:#111827;
    color:#94a3b8!important;
    font-size:.58rem!important;
    font-weight:700;
    white-space:nowrap;
}
.preview-readonly-badge i{font-size:.62rem}
@media(max-width:900px){
    .preview-readonly-badge{display:inline-flex!important}
}


/* =========================================================
   NgodingLab v13.6 — Mobile editor viewport + touch scroll
   - Mobile workspace does NOT stack preview below the editor.
   - Editor owns the remaining viewport and scrolls internally.
   - Preview remains a separate focus mode.
   ========================================================= */
@media(max-width:900px){
    .studio-app:not(.preview-focus){
        display:grid!important;
        width:100%!important;
        height:100dvh!important;
        min-height:0!important;
        overflow:hidden!important;
        grid-template-columns:minmax(0,1fr)!important;
        grid-template-rows:auto minmax(0,1fr)!important;
    }
    .studio-app:not(.preview-focus) .studio-bar{
        position:static!important;
        grid-column:1!important;
        grid-row:1!important;
        max-width:100vw;
    }
    .studio-app:not(.preview-focus) .studio-tree,
    .studio-app:not(.preview-focus) .studio-preview,
    .studio-app:not(.preview-focus) .studio-console,
    .studio-app:not(.preview-focus) .panel-resizer{
        display:none!important;
    }
    .studio-app:not(.preview-focus) .studio-center{
        display:flex!important;
        grid-column:1!important;
        grid-row:2!important;
        width:100%!important;
        height:auto!important;
        min-height:0!important;
        overflow:hidden!important;
        border-right:0!important;
        border-bottom:0!important;
    }
    .studio-app:not(.preview-focus) #simpleEditorHost{
        flex:1 1 auto!important;
        width:100%!important;
        height:auto!important;
        min-height:0!important;
        overflow:hidden!important;
        overscroll-behavior:contain;
    }
    .studio-app:not(.preview-focus) .simple-code-editor.active-editor{
        position:absolute!important;
        inset:0!important;
        width:100%!important;
        height:100%!important;
        overflow:auto!important;
        -webkit-overflow-scrolling:touch;
        touch-action:pan-x pan-y!important;
        overscroll-behavior:contain;
    }
    .studio-app:not(.preview-focus) .syntax-layer{
        position:absolute!important;
        inset:0!important;
        overflow:scroll!important;
        pointer-events:none!important;
        overscroll-behavior:contain;
    }
    .studio-app:not(.preview-focus) .editor-tabs,
    .studio-app:not(.preview-focus) .editor-toolbar{
        flex:0 0 auto;
    }
}

/* Final cascade guard: scrollbar and last line remain reachable everywhere. */
.studio-center,#simpleEditorHost{min-height:0!important;overflow:hidden!important}
.simple-code-editor.active-editor{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
    overflow-x:scroll!important;overflow-y:scroll!important;
    padding-bottom:max(140px,env(safe-area-inset-bottom))!important;
    scrollbar-gutter:stable;overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;touch-action:pan-x pan-y!important;
}
.syntax-layer{
    position:absolute!important;inset:0!important;overflow:scroll!important;
    padding-bottom:max(140px,env(safe-area-inset-bottom))!important;
    scrollbar-gutter:stable;pointer-events:none!important;
}

/* Final tablet/mobile layout guard. */
@media(max-width:900px){
    .studio-app:not(.preview-focus){grid-template-rows:auto minmax(0,1fr) 150px!important}
    .studio-app:not(.preview-focus) .studio-console,
    .studio-app.preview-focus .studio-console{
        display:block!important;grid-column:1!important;grid-row:3!important;
        width:100%!important;min-height:0!important;max-height:150px!important;
        overflow:auto!important;-webkit-overflow-scrolling:touch;touch-action:pan-y!important;
    }
    .studio-app.preview-focus{grid-template-rows:auto minmax(0,1fr) 150px!important}
    .studio-app.preview-focus .studio-preview{grid-row:2!important}
    .studio-app.preview-focus .preview-space,
    .studio-app.preview-focus .device-shell iframe{
        overflow:auto!important;overscroll-behavior:auto!important;
        -webkit-overflow-scrolling:touch!important;touch-action:pan-x pan-y pinch-zoom!important;
    }
}

/* v13.13 authoritative simulator rules — keep last in cascade. */
.studio-app.simulator-web .preview-space{padding:12px;align-items:stretch}
.studio-app.simulator-web .device-shell.desktop{width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;border:1px solid #263244;border-radius:10px}
.studio-app.simulator-mobile .preview-space{padding:20px 14px;align-items:flex-start;justify-content:center;overflow:auto!important;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;touch-action:pan-y pinch-zoom!important}
.studio-app.simulator-mobile .device-shell.mobile{position:relative;flex:0 0 auto;width:min(390px,calc(100vw - 32px))!important;height:min(780px,calc(100dvh - 148px))!important;min-height:540px;padding:5px;overflow:hidden;border:9px solid #111827;border-radius:38px;background:#111827;box-shadow:0 24px 70px rgba(0,0,0,.58),0 0 0 1px #475569}
.studio-app.simulator-mobile .device-shell.mobile::before{content:"";position:absolute;z-index:3;top:8px;left:50%;width:92px;height:24px;transform:translateX(-50%);border-radius:999px;background:#080b12;pointer-events:none}
.studio-app.simulator-mobile .device-shell.mobile iframe{display:block;width:100%;height:100%!important;overflow:auto;border:0;border-radius:24px;background:#fff;overscroll-behavior:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom!important}
.simulator-menu-btn,.studio-back,.preview-controls button{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:1!important}
.simulator-menu-btn i,.studio-back i,.preview-controls button i{display:block!important;width:1em;height:1em;margin:0!important;line-height:1!important;transform:none!important}
.simulator-menu-btn i::before,.studio-back i::before,.preview-controls button i::before{display:block;line-height:1;vertical-align:0}
@media(max-width:900px){
    .studio-app.preview-focus.simulator-web .preview-space{padding:8px}
    .studio-app.preview-focus.simulator-web .device-shell.desktop{width:100%!important;height:100%!important;min-height:0!important}
    .studio-app.preview-focus.simulator-mobile .preview-space{padding:12px 8px 22px}
    .studio-app.preview-focus.simulator-mobile .device-shell.mobile{width:min(390px,calc(100vw - 20px))!important;height:max(540px,calc(100% - 8px))!important;min-height:0}
}

/* =========================================================
   NgodingLab v14 — Multi-user platform
   ========================================================= */
.landing-body{background:#f7f9fc;color:#0f172a;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.landing-nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid #e8edf5;padding:14px 0}.landing-logo{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#4f46e5,#2563eb);color:#fff}.landing-hero{padding:88px 0 72px;background:radial-gradient(circle at 90% 15%,rgba(99,102,241,.14),transparent 30%),linear-gradient(180deg,#fff,#f7f9fc)}.landing-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:999px;background:#eef2ff;color:#4338ca;font-weight:800;font-size:.72rem;letter-spacing:.09em}.landing-hero h1{font-size:clamp(2.6rem,5vw,4.7rem);line-height:1.01;letter-spacing:-.055em;font-weight:800;margin:20px 0}.landing-hero p{font-size:1.08rem;line-height:1.8;color:#64748b;max-width:680px}.hero-trust{display:flex;flex-wrap:wrap;gap:18px;margin-top:30px;color:#475569;font-size:.88rem;font-weight:650}.hero-trust i{color:#22c55e;margin-right:5px}.platform-preview{background:#0b1120;border-radius:24px;padding:10px;box-shadow:0 35px 90px rgba(15,23,42,.22);transform:rotate(1deg)}.preview-top{height:38px;background:#111827;border-radius:16px 16px 8px 8px;display:flex;align-items:center;gap:6px;padding:0 12px;color:#64748b}.preview-top>span{width:8px;height:8px;border-radius:50%;background:#475569}.preview-top small{margin-left:10px}.preview-grid{display:grid;grid-template-columns:130px 1fr;min-height:390px;background:#f8fafc;border-radius:8px 8px 16px 16px;overflow:hidden}.preview-grid aside{padding:22px 12px;background:#111827;color:#94a3b8}.preview-grid aside b{display:block;color:#fff;margin:0 8px 24px}.preview-grid aside div{padding:10px;border-radius:9px;margin-bottom:6px;font-size:.72rem}.preview-grid aside .active{background:#4f46e5;color:#fff}.preview-grid section{padding:24px}.mini-header{display:flex;flex-direction:column}.mini-header small{color:#64748b}.mini-header strong{font-size:1.25rem}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.mini-stats article{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px;display:grid;gap:3px}.mini-stats i{color:#4f46e5}.mini-stats b{font-size:1.35rem}.mini-stats span{font-size:.68rem;color:#64748b}.mini-course{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:13px;margin-top:10px}.mini-course>div{display:grid;grid-template-columns:10px 1fr;column-gap:8px}.mini-course .dot{width:8px;height:8px;border-radius:50%;background:#4f46e5;margin-top:5px;grid-row:1/3}.mini-course .dot.alt{background:#06b6d4}.mini-course small{font-size:.62rem;color:#64748b}.mini-course button{border:0;background:#eef2ff;color:#4338ca;border-radius:8px;padding:7px 10px;font-size:.68rem}.landing-section{padding:86px 0}.section-heading span{font-size:.72rem;font-weight:800;letter-spacing:.12em;color:#4f46e5}.section-heading h2,.admin-highlight h2{font-weight:800;letter-spacing:-.035em;font-size:clamp(2rem,4vw,3.2rem)}.feature-card{height:100%;background:#fff;border:1px solid #e6eaf2;border-radius:20px;padding:28px;box-shadow:0 12px 40px rgba(15,23,42,.05);position:relative}.feature-card>span{position:absolute;right:20px;top:18px;color:#cbd5e1;font-weight:800;font-size:1.4rem}.feature-card>i{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#eef2ff;color:#4f46e5;font-size:1.3rem}.feature-card h3{font-size:1.08rem;font-weight:800;margin:22px 0 10px}.feature-card p{color:#64748b;line-height:1.7;margin:0}.admin-highlight{background:#fff}.admin-panel-demo{border:1px solid #e2e8f0;border-radius:22px;padding:26px;box-shadow:0 18px 55px rgba(15,23,42,.08)}.quota-row{display:grid;grid-template-columns:1fr auto;gap:7px;margin:18px 0}.quota-row .progress{grid-column:1/3;height:6px}.quota-row small{grid-column:1/3;color:#64748b}.landing-cta{padding:70px 0;background:linear-gradient(135deg,#4338ca,#2563eb);color:#fff}.landing-cta h2{font-size:2.5rem;font-weight:800}.landing-cta p{opacity:.8}.landing-footer{padding:24px 0;background:#0f172a;color:#94a3b8;font-size:.85rem}.register-shell{max-width:1120px}.role-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-picker input{position:absolute;opacity:0;pointer-events:none}.role-picker span{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;border:1px solid #dbe2ea;border-radius:14px;padding:13px;cursor:pointer}.role-picker i{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#f1f5f9}.role-picker small{color:#64748b}.role-picker input:checked+span{border-color:#4f46e5;background:#eef2ff;box-shadow:0 0 0 2px rgba(79,70,229,.08)}.role-picker input:checked+span i{background:#4f46e5;color:#fff}.auth-home-link{position:fixed;top:20px;left:22px;z-index:30;color:#475569;text-decoration:none;font-weight:700}.join-class-shell{max-width:880px;margin:50px auto;display:grid;grid-template-columns:1.25fr .75fr;background:#fff;border:1px solid #e2e8f0;border-radius:24px;overflow:hidden;box-shadow:0 20px 60px rgba(15,23,42,.07)}.join-class-shell section{padding:46px}.join-class-shell aside{padding:46px;background:linear-gradient(145deg,#312e81,#4f46e5);color:#fff;display:flex;flex-direction:column;justify-content:center}.join-class-shell aside>i{font-size:3rem;margin-bottom:20px}.join-code-form{display:flex;gap:10px;margin-top:26px}.join-code-form input{font-weight:800;letter-spacing:.12em}.class-code,.course-code-banner code,.builder-class-code code{font-weight:800;letter-spacing:.08em;color:#4338ca;background:#eef2ff;border-radius:8px;padding:5px 8px}.course-code-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px}.course-code-banner span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800}.course-code-banner small{color:#64748b}.builder-class-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.builder-class-code span{font-size:.75rem;color:#64748b;font-weight:800;text-transform:uppercase}.builder-class-code small{color:#64748b}.admin-legend{padding:9px 12px;border-radius:10px;background:#ecfdf5;color:#047857;font-size:.8rem;font-weight:700}.admin-user-cell{display:flex;gap:12px;align-items:center;min-width:210px}.admin-user-cell>span{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#eef2ff;color:#4338ca;font-weight:800}.admin-user-cell>div{display:flex;flex-direction:column}.admin-user-cell small{color:#64748b;font-size:.72rem}.usage-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:170px}.usage-chips span{font-size:.68rem;background:#f1f5f9;border-radius:999px;padding:6px 8px;color:#475569}.usage-chips i{margin-right:4px}.limit-grid{display:grid;grid-template-columns:repeat(2,100px);gap:7px}.limit-grid label{font-size:.63rem;color:#64748b;font-weight:700}.limit-grid input{margin-top:3px}.usage-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 24px}.usage-strip>div{padding:15px 17px;background:#fff;border:1px solid #e2e8f0;border-radius:14px}.usage-strip span{display:block;font-size:.7rem;color:#64748b;text-transform:uppercase;font-weight:800}.usage-strip strong{display:block;margin-top:4px}.multi-hero{background:linear-gradient(130deg,#312e81,#4338ca 55%,#2563eb)}
@media(max-width:900px){.preview-grid{grid-template-columns:90px 1fr}.landing-hero{padding-top:52px}.join-class-shell{grid-template-columns:1fr}.join-class-shell aside{display:none}.usage-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.landing-hero h1{font-size:2.6rem}.platform-preview{transform:none}.preview-grid{grid-template-columns:1fr}.preview-grid aside{display:none}.mini-stats{grid-template-columns:1fr}.join-code-form{flex-direction:column}.usage-strip{grid-template-columns:1fr}.role-picker{grid-template-columns:1fr}.limit-grid{grid-template-columns:1fr 1fr}}

/* =========================================================
   NgodingLab v15 — public experience & installation UI
   ========================================================= */
:root{
    --cl-primary:#3f46d8;
    --cl-primary-2:#6268f4;
    --cl-ink:#101426;
    --cl-muted:#687086;
    --cl-line:#e7e9f1;
    --cl-soft:#f6f7fb;
    --cl-card:#ffffff;
}
.landing-v15{margin:0;background:#fff;color:var(--cl-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.landing-v15-nav{position:sticky;top:0;z-index:50;padding:17px 0;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(231,233,241,.8)}
.landing-v15-brand{display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--cl-ink);font-size:1.04rem;letter-spacing:-.025em}
.landing-v15-brand span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,#353ad0,#696ef7);color:#fff;box-shadow:0 8px 22px rgba(63,70,216,.25)}
.landing-v15-brand b{font-size:1.12rem}.landing-v15-brand em{font-style:normal;color:#7a8194;font-weight:600}
.landing-v15-links{align-items:center;gap:34px}.landing-v15-links a{font-size:.9rem;font-weight:650;color:#5f6678;text-decoration:none}.landing-v15-links a:hover{color:var(--cl-primary)}
.landing-v15 .btn{border-radius:11px;font-weight:700}.landing-v15 .btn-primary{background:var(--cl-primary);border-color:var(--cl-primary);box-shadow:0 8px 22px rgba(63,70,216,.14)}
.landing-v15-hero{position:relative;overflow:hidden;padding:92px 0 88px;background:radial-gradient(circle at 80% 12%,rgba(102,107,244,.12),transparent 30%),linear-gradient(180deg,#fff,#fafbff)}
.landing-v15-hero::before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(63,70,216,.08);border-radius:50%;right:-140px;top:-160px;box-shadow:0 0 0 70px rgba(63,70,216,.025),0 0 0 140px rgba(63,70,216,.018)}
.landing-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dfe2ff;border-radius:999px;background:#f4f5ff;color:#4c52cf;font-size:.73rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.landing-badge.dark{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#cbd0ff}
.landing-v15-hero h1{max-width:690px;margin:22px 0 20px;font-size:clamp(2.75rem,5.4vw,5.05rem);line-height:.98;letter-spacing:-.06em;font-weight:820}.landing-v15-hero h1 span{color:var(--cl-primary)}
.landing-v15-hero .lead{max-width:650px;color:#626a80;font-size:1.08rem;line-height:1.8}
.landing-v15-trust{display:flex;flex-wrap:wrap;gap:20px;margin-top:28px;color:#687086;font-size:.82rem;font-weight:650}.landing-v15-trust i{color:#2baf75;margin-right:5px}
.landing-dashboard-mock{position:relative;border:1px solid #dfe2eb;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 34px 90px rgba(24,31,69,.16),0 6px 24px rgba(46,54,102,.06);transform:perspective(1200px) rotateY(-2deg) rotateX(1deg)}
.mock-browser{height:44px;display:flex;align-items:center;gap:15px;padding:0 16px;background:#f5f6fa;border-bottom:1px solid #e5e7ee;color:#949aab;font-size:.68rem}.mock-browser>div{display:flex;gap:5px}.mock-browser i{width:8px;height:8px;border-radius:50%;background:#d0d3dc}.mock-browser span{flex:1;padding:7px 12px;background:#fff;border:1px solid #e4e6ed;border-radius:7px}.mock-browser b{color:#5f6678;font-weight:700}.mock-browser b i{width:auto;height:auto;background:none;color:#27a66f;margin-right:4px}
.mock-body{display:grid;grid-template-columns:58px 1fr;min-height:460px}.mock-body>aside{padding:18px 11px;background:#11162b;display:flex;flex-direction:column;align-items:center;gap:12px}.mock-brand,.mock-body>aside span{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;color:#8c93ac}.mock-brand{background:#4a50dd;color:#fff;margin-bottom:16px}.mock-body>aside span.active{background:#272e4f;color:#fff}.mock-body>section{padding:30px;background:#fbfbfd}.mock-body>section>small{font-size:.64rem;font-weight:800;letter-spacing:.12em;color:#777ee6}.mock-body>section>h3{font-size:1.45rem;margin:5px 0 22px;font-weight:780;letter-spacing:-.03em}
.mock-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mock-stats article{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid #eceef4;border-radius:14px;background:#fff}.mock-stats i{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#f0f1ff;color:#5056da}.mock-stats div{display:flex;flex-direction:column}.mock-stats b{font-size:1.15rem}.mock-stats span{font-size:.64rem;color:#8990a1}
.mock-course{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:18px;padding:16px;border:1px solid #e7e9f0;background:#fff;border-radius:15px}.mock-course-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#4148d8,#7075fb);color:#fff}.mock-course>div:nth-child(2){display:flex;flex-direction:column}.mock-course>div:nth-child(2)b{font-size:.76rem}.mock-course>div:nth-child(2)span{font-size:.62rem;color:#8b91a2}.mock-course>div:nth-child(2)strong{color:#5359da}.mock-course button,.manage-pill{border:0;padding:7px 11px;border-radius:8px;background:#eef0ff;color:#5056d7;font-size:.63rem;font-weight:800}
.mock-activity{margin-top:14px;padding:16px;border:1px solid #eceef4;border-radius:15px;background:#fff}.mock-activity>div{display:flex;justify-content:space-between;margin-bottom:9px}.mock-activity b{font-size:.7rem}.mock-activity span{font-size:.6rem;color:#9298a8}.mock-activity p{margin:7px 0;color:#747b8e;font-size:.65rem}.mock-activity p i{margin-right:7px;color:#31ad77}
.landing-v15-section{padding:92px 0}.landing-soft{background:#f7f8fc;border-top:1px solid #eef0f5;border-bottom:1px solid #eef0f5}.landing-section-head{max-width:700px;margin:0 auto 44px;text-align:center}.landing-section-head>span{font-size:.68rem;font-weight:850;letter-spacing:.14em;color:var(--cl-primary)}.landing-section-head h2{margin:10px 0 12px;font-size:clamp(2rem,3.3vw,3.05rem);font-weight:810;letter-spacing:-.045em}.landing-section-head p{color:#737a8d}
.landing-role-card{height:100%;padding:31px;border:1px solid #e6e8ef;border-radius:20px;background:#fff;transition:.22s ease;box-shadow:0 5px 20px rgba(31,38,75,.025)}.landing-role-card:hover{transform:translateY(-5px);box-shadow:0 20px 50px rgba(31,38,75,.08)}.landing-role-card.featured{border-color:#cfd2ff;box-shadow:0 18px 50px rgba(63,70,216,.09)}.role-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;margin-bottom:24px;font-size:1.2rem}.role-icon.lecturer{background:#eef0ff;color:#4a51d5}.role-icon.student{background:#eaf9f2;color:#21976a}.role-icon.admin{background:#fff4e7;color:#d27a26}.landing-role-card>small{font-size:.65rem;letter-spacing:.13em;font-weight:850;color:#858b9b}.landing-role-card h3{margin:8px 0 12px;font-size:1.38rem;font-weight:770;letter-spacing:-.03em}.landing-role-card p{min-height:84px;color:#72798b;line-height:1.7}.landing-role-card ul{list-style:none;padding:17px 0 0;margin:0;border-top:1px solid #edf0f4}.landing-role-card li{position:relative;padding:6px 0 6px 20px;color:#50566a;font-size:.83rem;font-weight:620}.landing-role-card li::before{content:"";position:absolute;left:0;top:13px;width:7px;height:7px;border-radius:50%;background:#5960e3}
.landing-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.landing-feature-grid article{padding:26px;border:1px solid #e5e8ef;border-radius:18px;background:#fff}.landing-feature-grid i{font-size:1.28rem;color:#5259da}.landing-feature-grid h3{margin:16px 0 8px;font-size:1rem;font-weight:760}.landing-feature-grid p{margin:0;color:#7a8193;font-size:.82rem;line-height:1.65}
.landing-steps{display:grid;grid-template-columns:repeat(4,1fr);position:relative}.landing-steps::before{content:"";position:absolute;top:24px;left:8%;right:8%;height:1px;background:#e0e3eb}.landing-steps article{position:relative;text-align:center;padding:0 18px}.landing-steps b{position:relative;z-index:2;width:48px;height:48px;margin:0 auto 20px;display:grid;place-items:center;border-radius:50%;background:#fff;border:1px solid #dfe2eb;color:#5359d9;font-size:.72rem;box-shadow:0 5px 16px rgba(43,51,96,.07)}.landing-steps h3{font-size:1rem;font-weight:760}.landing-steps p{font-size:.8rem;color:#7b8293;line-height:1.55}
.landing-admin-showcase{padding:92px 0;background:#11162a;color:#fff}.landing-admin-showcase h2{margin:18px 0;font-size:clamp(2rem,3.5vw,3.2rem);font-weight:810;letter-spacing:-.045em}.landing-admin-showcase p{color:#a8afc2;line-height:1.8}.admin-feature-list{display:grid;gap:11px;margin-top:28px}.admin-feature-list span{font-size:.84rem;color:#d5d9e4}.admin-feature-list i{width:25px;height:25px;display:inline-grid;place-items:center;margin-right:8px;border-radius:8px;background:#272e4a;color:#9297ff}
.landing-admin-panel{padding:22px;border:1px solid rgba(255,255,255,.10);border-radius:21px;background:#1a2037;box-shadow:0 26px 70px rgba(0,0,0,.26)}.admin-panel-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-panel-title>div{display:flex;flex-direction:column}.admin-panel-title small{font-size:.58rem;color:#8e95ae;letter-spacing:.12em}.admin-panel-title b{font-size:1rem}.admin-panel-title button{width:34px;height:34px;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:#232b47;color:#aeb5cc}.admin-user-row{display:grid;grid-template-columns:auto 1.2fr 1fr 1fr auto;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.07)}.admin-user-row:last-child{border-bottom:0}.admin-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#5057db;color:#fff;font-size:.7rem;font-weight:800}.admin-avatar.alt{background:#248e67}.admin-user-row>div:nth-child(2){display:flex;flex-direction:column}.admin-user-row>div:nth-child(2)b{font-size:.75rem}.admin-user-row>div:nth-child(2)small{font-size:.59rem;color:#8d95ab}.quota{display:flex;flex-direction:column;gap:6px}.quota span{font-size:.58rem;color:#959db2}.quota span b{float:right;color:#d5d9e5}.quota i{height:5px;overflow:hidden;border-radius:99px;background:#2d3552}.quota em{display:block;height:100%;background:#6870f2;border-radius:99px}.manage-pill{background:#272f4d;color:#cbd0ff}
.landing-final-cta{padding:58px 0;background:linear-gradient(135deg,#4349d6,#5c63e9);color:#fff}.landing-final-cta .container{display:flex;align-items:center;justify-content:space-between;gap:30px}.landing-final-cta span{font-size:.63rem;font-weight:850;letter-spacing:.15em;color:#cfd2ff}.landing-final-cta h2{margin:7px 0 6px;font-size:2rem;font-weight:800;letter-spacing:-.035em}.landing-final-cta p{margin:0;color:#dfe1ff}.landing-v15-footer{padding:24px 0;border-top:1px solid #eaecf1;color:#858b9a;font-size:.75rem;background:#fff}

.auth-v15{min-height:100vh;margin:0;background:#f5f6fa;color:var(--cl-ink);display:grid;place-items:center;padding:36px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.auth-v15-home{position:fixed;top:22px;left:26px;color:#626a7f;text-decoration:none;font-size:.83rem;font-weight:700}.auth-v15-home:hover{color:var(--cl-primary)}.auth-v15-shell{width:min(1030px,100%);min-height:620px;display:grid;grid-template-columns:.92fr 1.08fr;background:#fff;border:1px solid #e2e5ed;border-radius:24px;overflow:hidden;box-shadow:0 28px 80px rgba(24,31,64,.12)}.auth-v15-panel{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:48px;background:radial-gradient(circle at 90% 10%,rgba(113,119,255,.28),transparent 34%),#141a31;color:#fff}.auth-v15-panel::after{content:"";position:absolute;width:330px;height:330px;border:1px solid rgba(255,255,255,.07);border-radius:50%;right:-170px;bottom:-130px;box-shadow:0 0 0 60px rgba(255,255,255,.025),0 0 0 120px rgba(255,255,255,.015)}.auth-v15-brand{display:flex;align-items:center;gap:6px;font-size:.98rem}.auth-v15-brand span{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:#5158df;margin-right:2px}.auth-v15-panel .eyebrow{color:#9fa5ff;font-size:.65rem;letter-spacing:.13em;font-weight:850}.auth-v15-panel h1{max-width:430px;margin:12px 0 16px;font-size:2.45rem;line-height:1.03;letter-spacing:-.05em;font-weight:810}.auth-v15-panel p{max-width:410px;margin:0;color:#aeb5c9;line-height:1.75}.auth-v15-points{display:grid;gap:11px}.auth-v15-points span{color:#d9ddea;font-size:.78rem}.auth-v15-points i{color:#949aff;margin-right:7px}.auth-v15-form{display:flex;flex-direction:column;justify-content:center;padding:50px 60px}.auth-v15-form .eyebrow{font-size:.65rem;font-weight:850;letter-spacing:.14em}.auth-v15-form h2{margin:7px 0;font-size:1.9rem;font-weight:800;letter-spacing:-.035em}.auth-v15-form a{font-weight:700;text-decoration:none}.auth-input{position:relative}.auth-input>i{position:absolute;left:15px;top:50%;transform:translateY(-50%);z-index:2;color:#8a91a3}.auth-input .form-control{height:50px;padding-left:43px;border-radius:11px;border-color:#dde0e8;background:#fbfbfd}.auth-input .form-control:focus{border-color:#7d82ee;box-shadow:0 0 0 .2rem rgba(77,84,220,.10);background:#fff}.role-picker-v15{display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-picker-v15 label{cursor:pointer}.role-picker-v15 input{position:absolute;opacity:0;pointer-events:none}.role-picker-v15 span{height:82px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:11px;align-content:center;padding:14px;border:1px solid #e0e3ea;border-radius:13px;background:#fafbfc}.role-picker-v15 i{grid-row:1/3;width:37px;height:37px;display:grid;place-items:center;align-self:center;border-radius:10px;background:#eef0ff;color:#5259d8}.role-picker-v15 b{font-size:.78rem}.role-picker-v15 small{font-size:.64rem;color:#868d9e}.role-picker-v15 input:checked+span{border-color:#8e93ee;background:#f4f5ff;box-shadow:0 0 0 2px rgba(81,88,218,.07)}
.error-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:#f5f6fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.error-card{width:min(620px,100%);padding:42px;border:1px solid #e2e5ec;border-radius:20px;background:#fff;text-align:center;box-shadow:0 20px 60px rgba(26,34,70,.08)}.error-card>span{font-size:.66rem;font-weight:850;letter-spacing:.14em;color:#595fdd}.error-card h1{margin:10px 0 12px;font-size:2rem;font-weight:800;letter-spacing:-.04em}.error-card p{color:#70778a}.error-hint{margin-top:20px;padding:14px;border-radius:11px;background:#f6f7fb;color:#626a7c;font-size:.82rem}

@media(max-width:991.98px){
    .landing-v15-hero{padding:68px 0}.landing-v15-hero h1{font-size:3.6rem}.landing-dashboard-mock{transform:none}.landing-feature-grid{grid-template-columns:repeat(2,1fr)}.landing-steps{grid-template-columns:repeat(2,1fr);gap:34px}.landing-steps::before{display:none}.admin-user-row{grid-template-columns:auto 1fr auto}.admin-user-row .quota{display:none}.landing-final-cta .container{align-items:flex-start;flex-direction:column}.auth-v15-shell{grid-template-columns:1fr;max-width:680px}.auth-v15-panel{min-height:360px}.auth-v15-form{padding:44px}.register-v15 .auth-v15-panel{min-height:300px}
}
@media(max-width:575.98px){
    .landing-v15-nav{padding:12px 0}.landing-v15-brand em{display:none}.landing-v15-nav .btn{font-size:.74rem;padding:8px 11px}.landing-v15-hero{padding:54px 0}.landing-v15-hero h1{font-size:2.7rem}.landing-v15-hero .lead{font-size:.96rem}.mock-body{grid-template-columns:48px 1fr}.mock-body>section{padding:20px 14px}.mock-stats{grid-template-columns:1fr}.mock-stats article:nth-child(2),.mock-stats article:nth-child(3){display:none}.mock-course{grid-template-columns:auto 1fr}.mock-course button{display:none}.landing-v15-section,.landing-admin-showcase{padding:68px 0}.landing-feature-grid{grid-template-columns:1fr}.landing-steps{grid-template-columns:1fr}.landing-steps article{text-align:left;display:grid;grid-template-columns:auto 1fr;gap:14px;padding:0}.landing-steps b{margin:0}.admin-user-row{grid-template-columns:auto 1fr}.admin-user-row .manage-pill{display:none}.landing-final-cta h2{font-size:1.65rem}.auth-v15{padding:14px}.auth-v15-home{position:absolute;top:16px;left:18px}.auth-v15-shell{margin-top:34px;border-radius:18px}.auth-v15-panel{min-height:310px;padding:32px}.auth-v15-panel h1{font-size:2rem}.auth-v15-form{padding:32px 24px}.role-picker-v15{grid-template-columns:1fr}.error-card{padding:30px 20px}
}
.admin-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 22px}.admin-summary-grid article{display:flex;align-items:center;gap:13px;padding:18px 20px;border:1px solid #e4e7ee;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(35,42,78,.025)}.admin-summary-grid article>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#f0f1ff;color:#5057d9}.admin-summary-grid article div{display:flex;flex-direction:column}.admin-summary-grid small{font-size:.68rem;color:#81889a}.admin-summary-grid strong{font-size:1.35rem;line-height:1.1}.admin-user-surface{padding:0;overflow:hidden}.admin-table-head{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:22px 24px;border-bottom:1px solid #edf0f4}.admin-table-head h2{margin:3px 0 0;font-size:1.15rem;font-weight:760}.admin-table-note{font-size:.72rem;color:#747c8f}.admin-table-note i{color:#5a60dd;margin-right:5px}@media(max-width:991.98px){.admin-summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:575.98px){.admin-summary-grid{grid-template-columns:1fr 1fr}.admin-summary-grid article{padding:14px}.admin-table-head{align-items:flex-start;flex-direction:column}.admin-table-note{line-height:1.5}}

/* =========================================================
   NgodingLab v16 — premium learning platform UI
   ========================================================= */
:root{--v16-ink:#0b1220;--v16-muted:#667085;--v16-line:#e8ecf2;--v16-indigo:#5b5cf0;--v16-indigo-dark:#4243d8;--v16-soft:#f7f8fc;--v16-navy:#0a1020;--v16-green:#12a36d;--v16-amber:#d97706}
.landing-v16{background:#fff;color:var(--v16-ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.public-nav-v16{height:78px;background:rgba(255,255,255,.92);border-bottom:1px solid rgba(226,232,240,.85);backdrop-filter:blur(14px);position:sticky;top:0;z-index:100}.public-nav-v16>.container{height:100%;display:flex;align-items:center;justify-content:space-between}.public-brand-v16{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--v16-ink)}.public-brand-v16>span{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#5b5cf0,#7c3aed);box-shadow:0 10px 24px rgba(91,92,240,.25)}.public-brand-v16>div{display:flex;align-items:baseline;gap:4px}.public-brand-v16 b{font-size:1rem;letter-spacing:-.03em}.public-brand-v16 small{font-weight:700;color:#7c8496}.public-links-v16{display:flex;align-items:center;gap:30px}.public-links-v16 a{font-size:.88rem;font-weight:650;text-decoration:none;color:#667085;position:relative}.public-links-v16 a:hover,.public-links-v16 a.active{color:var(--v16-ink)}.public-links-v16 a.active:after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:2px;border-radius:99px;background:var(--v16-indigo)}.public-login{text-decoration:none!important;color:#344054!important;font-weight:650!important}.landing-v16 .btn-primary{background:var(--v16-indigo);border-color:var(--v16-indigo)}.landing-v16 .btn-primary:hover{background:var(--v16-indigo-dark);border-color:var(--v16-indigo-dark)}
.hero-v16{position:relative;padding:94px 0 90px;overflow:hidden;background:radial-gradient(circle at 75% 25%,rgba(99,102,241,.13),transparent 25%),radial-gradient(circle at 15% 75%,rgba(14,165,233,.08),transparent 24%),linear-gradient(180deg,#fff,#fafbff)}.hero-v16:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(15,23,42,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.025) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 82%);pointer-events:none}.hero-v16 .container{position:relative}.hero-proof-v16{display:flex;align-items:center;gap:10px;margin-bottom:22px}.hero-proof-v16>span:first-child{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid #dfe3ff;border-radius:999px;background:#f3f4ff;color:#4f46e5;font-size:.72rem;font-weight:800;letter-spacing:.03em}.hero-proof-v16 .dot{width:4px;height:4px;border-radius:50%;background:#c4c9d4}.hero-proof-v16 small{color:#667085;font-weight:650}.hero-v16 h1{font-size:clamp(3rem,5vw,5.3rem);line-height:.98;letter-spacing:-.065em;font-weight:850;max-width:720px;margin:0}.hero-v16 h1 em{font-style:normal;background:linear-gradient(120deg,#5b5cf0,#7c3aed);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-v16 .lead{color:#667085;font-size:1.08rem;line-height:1.8;max-width:650px;margin:26px 0 0}.hero-actions-v16{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.hero-trust-v16{display:flex;flex-wrap:wrap;gap:18px;margin-top:28px;color:#475467;font-size:.78rem;font-weight:650}.hero-trust-v16 span{display:flex;align-items:center;gap:7px}.hero-trust-v16 i{color:#16a34a}.platform-preview-v16{border-radius:22px;background:#0b1220;border:1px solid #202b42;box-shadow:0 35px 75px rgba(15,23,42,.24);overflow:hidden;transform:perspective(1300px) rotateY(-2deg) rotateX(1deg)}.preview-top-v16{height:45px;padding:0 15px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #202b42;background:#0d1627;color:#64748b;font-size:.62rem}.preview-top-v16>div{display:flex;gap:5px}.preview-top-v16>div i{width:8px;height:8px;border-radius:50%;background:#ef4444}.preview-top-v16>div i:nth-child(2){background:#f59e0b}.preview-top-v16>div i:nth-child(3){background:#22c55e}.preview-top-v16>span{flex:1;text-align:center}.preview-top-v16>b{display:flex;align-items:center;gap:5px;color:#94a3b8;font-weight:600}.preview-grid-v16{display:grid;grid-template-columns:62px 1fr;min-height:470px}.preview-grid-v16 aside{border-right:1px solid #202b42;padding:14px 10px;display:grid;align-content:start;gap:8px}.preview-grid-v16 aside a,.preview-logo{width:41px;height:41px;border-radius:10px;display:grid;place-items:center;color:#64748b}.preview-logo{background:linear-gradient(135deg,#5b5cf0,#7c3aed);color:#fff;margin-bottom:12px}.preview-grid-v16 aside a.active{background:#1e293b;color:#fff}.preview-grid-v16>section{padding:28px}.preview-welcome-v16 small{color:#818cf8;letter-spacing:.14em;font-weight:800}.preview-welcome-v16 h3{color:#fff;font-size:1.35rem;font-weight:800;margin:5px 0}.preview-welcome-v16 p{color:#7d8ba3;font-size:.78rem}.preview-cards-v16{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:20px 0}.preview-cards-v16 article{background:#111c30;border:1px solid #26334b;border-radius:12px;padding:13px;display:flex;align-items:center;gap:10px}.preview-cards-v16 article>span{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#26256a;color:#a5b4fc}.preview-cards-v16 article.alert-card>span{background:#4b2d11;color:#fbbf24}.preview-cards-v16 b,.preview-cards-v16 small{display:block}.preview-cards-v16 b{color:#fff;font-size:1.1rem}.preview-cards-v16 small{color:#7d8ba3;font-size:.62rem}.preview-request-v16,.preview-course-v16{border:1px solid #29364f;background:#101a2b;border-radius:13px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.preview-request-v16>div:first-child{display:flex;align-items:center;gap:9px}.student-avatar{width:33px;height:33px;border-radius:9px;background:#dbeafe;color:#1d4ed8;display:grid;place-items:center;font-size:.64rem;font-weight:800}.preview-request-v16 b,.preview-request-v16 small,.preview-course-v16 b,.preview-course-v16 small{display:block}.preview-request-v16 b,.preview-course-v16 b{color:#f8fafc;font-size:.76rem}.preview-request-v16 small,.preview-course-v16 small{color:#71809a;font-size:.6rem}.preview-request-v16 button{border:0;border-radius:7px;background:#16a34a;color:#fff;font-size:.62rem;padding:6px 9px}.preview-request-v16 button.ghost{background:transparent;border:1px solid #3b475d;color:#94a3b8}.preview-course-v16>span{width:36px;height:36px;border-radius:9px;background:#24255f;color:#a5b4fc;display:grid;place-items:center}.preview-course-v16>div{flex:1}.preview-course-v16>i{color:#64748b}.brand-strip-v16{border-top:1px solid #edf0f5;border-bottom:1px solid #edf0f5;background:#fff}.brand-strip-v16 .container{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand-strip-v16 .container>span{font-size:.72rem;color:#98a2b3;font-weight:700}.brand-strip-v16 .container>div{display:flex;flex-wrap:wrap;gap:28px;color:#475467;font-size:.76rem;letter-spacing:.04em}.section-v16{padding:100px 0}.section-head-v16{max-width:760px;margin:0 auto 48px;text-align:center}.section-head-v16>span,.section-kicker{display:block;color:#5b5cf0;font-size:.7rem;letter-spacing:.15em;font-weight:850}.section-head-v16 h2,.role-showcase-v16 h2,.developer-v16 h2,.about-story-v16 h2,.about-developer-v16 h2{font-size:clamp(2.15rem,4vw,3.35rem);letter-spacing:-.05em;font-weight:850;margin:10px 0 14px}.section-head-v16 p{color:#667085;line-height:1.7}.feature-grid-v16{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.feature-grid-v16 article{border:1px solid #e7eaf0;background:#fff;border-radius:20px;padding:28px;min-height:240px;position:relative;overflow:hidden}.feature-grid-v16 article.feature-large{grid-row:span 2;background:linear-gradient(145deg,#111827,#172554);color:#fff;min-height:496px;padding:36px}.feature-grid-v16 article.feature-large:after{content:"</>";position:absolute;right:-30px;bottom:-40px;font:800 180px/1 Consolas;color:rgba(255,255,255,.035);transform:rotate(-8deg)}.feature-icon-v16{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:1.1rem;margin-bottom:24px}.feature-icon-v16.violet{background:#29276b;color:#c7d2fe}.feature-icon-v16.green{background:#ecfdf3;color:#15803d}.feature-icon-v16.blue{background:#eff6ff;color:#2563eb}.feature-icon-v16.amber{background:#fffbeb;color:#d97706}.feature-icon-v16.rose{background:#fff1f2;color:#e11d48}.feature-grid-v16 h3{font-size:1.3rem;font-weight:800;letter-spacing:-.025em}.feature-grid-v16 p{color:#667085;line-height:1.7;margin:10px 0 0}.feature-large p{color:#aebbd0}.feature-large>span{color:#818cf8;font-size:.66rem;letter-spacing:.15em;font-weight:800}.feature-large h3{font-size:2.15rem;max-width:480px;margin-top:11px}.mini-team-v16{display:flex;align-items:center;margin-top:44px}.mini-team-v16 span,.mini-team-v16 b{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;border:3px solid #111827;margin-left:-8px;background:#eef2ff;color:#4f46e5;font-size:.72rem}.mini-team-v16 span:first-child{margin-left:0}.mini-team-v16 b{background:#5b5cf0;color:#fff}.workflow-section-v16{background:linear-gradient(135deg,#0b1220,#111b32);color:#fff}.section-head-v16.light>span{color:#818cf8}.section-head-v16.light p{color:#9aa7bd}.workflow-grid-v16{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:16px;align-items:center}.workflow-grid-v16>i{color:#475569}.workflow-grid-v16 article{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:24px;min-height:220px;position:relative}.workflow-grid-v16 article>b{position:absolute;right:18px;top:14px;color:#475569;font-size:.7rem}.workflow-grid-v16 article>span{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;background:#5b5cf0;color:#fff;margin-bottom:24px}.workflow-grid-v16 h3{font-size:1.05rem;font-weight:800}.workflow-grid-v16 p{font-size:.82rem;color:#9aa7bd;line-height:1.6}.role-showcase-v16{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.role-showcase-v16>div:first-child p{color:#667085;line-height:1.8}.role-showcase-v16>div:first-child>a{display:inline-flex;align-items:center;gap:8px;margin-top:12px;text-decoration:none;color:#4f46e5;font-weight:750}.role-stack-v16{display:grid;gap:12px}.role-stack-v16 article{border:1px solid #e7eaf0;border-radius:16px;padding:19px;display:flex;align-items:center;gap:16px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.04)}.role-stack-v16 article>span{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:#f1f2ff;color:#5b5cf0}.role-stack-v16 small,.role-stack-v16 strong{display:block}.role-stack-v16 small{font-size:.63rem;color:#7c8496;font-weight:800;letter-spacing:.08em}.role-stack-v16 strong{font-size:1rem;margin:2px 0}.role-stack-v16 p{margin:0;color:#667085;font-size:.78rem}.pricing-teaser-v16{padding:60px 0;background:linear-gradient(110deg,#5b5cf0,#6d4ce7);color:#fff}.pricing-teaser-v16 .container{display:flex;align-items:center;justify-content:space-between;gap:30px}.pricing-teaser-v16 span{font-size:.66rem;letter-spacing:.16em;font-weight:800;color:#d9dcff}.pricing-teaser-v16 h2{font-size:2.35rem;font-weight:850;letter-spacing:-.045em;margin:8px 0}.pricing-teaser-v16 p{margin:0;color:#d7dafb}.developer-v16{padding:78px 0;background:#f8fafc}.developer-v16 .container{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center}.developer-mark-v16{width:75px;height:75px;border-radius:22px;background:#0b1220;color:#fff;display:grid;place-items:center;font-size:2rem;font-weight:900;box-shadow:0 14px 30px rgba(15,23,42,.16)}.developer-v16 span{font-size:.65rem;letter-spacing:.15em;color:#667085;font-weight:800}.developer-v16 h2{font-size:2rem;margin:4px 0}.developer-v16 p{color:#667085;margin:0;max-width:760px}.public-footer-v16{background:#080d18;color:#cbd5e1;padding:62px 0 0}.public-footer-v16>.container{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:45px}.footer-brand{color:#fff!important}.public-footer-v16 p{color:#64748b;font-size:.82rem;margin-top:14px}.public-footer-v16>.container>div:not(:first-child){display:grid;align-content:start;gap:9px;font-size:.8rem}.public-footer-v16 strong{color:#fff;font-size:.72rem;margin-bottom:5px}.public-footer-v16 a{text-decoration:none;color:#94a3b8}.public-footer-v16 a:hover{color:#fff}.public-footer-v16 small{color:#64748b}.footer-bottom-v16{margin-top:45px;border-top:1px solid #182134}.footer-bottom-v16 .container{min-height:65px;display:flex;align-items:center;justify-content:space-between;color:#64748b;font-size:.72rem}
/* public inner */
.public-inner-v16{background:#fff}.inner-hero-v16{padding:100px 0 72px;background:radial-gradient(circle at 80% 20%,rgba(99,102,241,.12),transparent 25%),#f8f9fd;text-align:center;border-bottom:1px solid #edf0f5}.inner-hero-v16>.container{max-width:880px}.inner-hero-v16>div>span{color:#5b5cf0;font-size:.7rem;letter-spacing:.16em;font-weight:850}.inner-hero-v16 h1{font-size:clamp(2.8rem,6vw,5rem);line-height:1;letter-spacing:-.06em;font-weight:860;margin:14px 0 20px}.inner-hero-v16 p{font-size:1.05rem;line-height:1.8;color:#667085;max-width:760px;margin:auto}.pricing-section-v16{padding:75px 0 55px}.pricing-grid-v16{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}.pricing-grid-v16>article{border:1px solid #e3e7ee;border-radius:22px;padding:30px;background:#fff;position:relative;box-shadow:0 10px 35px rgba(15,23,42,.035)}.pricing-grid-v16>article.featured{border:2px solid #5b5cf0;transform:translateY(-10px);box-shadow:0 24px 50px rgba(91,92,240,.14)}.popular-plan{position:absolute;left:24px;right:24px;top:-14px;background:#5b5cf0;color:#fff;border-radius:999px;padding:7px;text-align:center;font-size:.61rem;letter-spacing:.1em;font-weight:850}.plan-label{font-size:.65rem;letter-spacing:.15em;color:#5b5cf0;font-weight:850}.pricing-grid-v16 h2{font-size:1.55rem;font-weight:850;margin:9px 0}.pricing-grid-v16 p{color:#667085;font-size:.84rem;min-height:45px}.plan-price{margin:28px 0;display:flex;align-items:baseline;gap:6px}.plan-price b{font-size:2.3rem;letter-spacing:-.05em}.plan-price small{color:#98a2b3}.plan-price.custom b{font-size:2rem}.pricing-grid-v16 ul{list-style:none;padding:0;margin:25px 0 0;display:grid;gap:12px}.pricing-grid-v16 li{display:flex;gap:9px;align-items:flex-start;color:#475467;font-size:.82rem}.pricing-grid-v16 li i{color:#16a34a}.pricing-note-v16{max-width:900px;margin:35px auto 0;padding:16px 18px;border:1px solid #e4e7ec;border-radius:13px;background:#f9fafb;display:flex;gap:12px;color:#667085}.pricing-note-v16 i{color:#5b5cf0}.pricing-note-v16 p{margin:0;font-size:.78rem;line-height:1.6}.pricing-compare-v16{padding:70px 0 95px;background:#f8fafc}.compare-grid-v16{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.compare-grid-v16 article{background:#fff;border:1px solid #e5e9f0;border-radius:16px;padding:22px}.compare-grid-v16 i{font-size:1.4rem;color:#5b5cf0}.compare-grid-v16 strong{display:block;margin:14px 0 5px}.compare-grid-v16 p{margin:0;color:#667085;font-size:.78rem}.about-story-v16{padding:95px 0}.about-story-v16 p{color:#667085;line-height:1.85}.about-principles-v16{display:grid;gap:10px}.about-principles-v16 article{display:flex;gap:18px;padding:20px;border:1px solid #e7eaf0;border-radius:15px}.about-principles-v16 article>span{color:#5b5cf0;font-size:.7rem;font-weight:850}.about-principles-v16 strong{display:block;font-size:1rem}.about-principles-v16 p{font-size:.78rem;line-height:1.6;margin:5px 0 0}.about-architecture-v16{padding:85px 0;background:#f8fafc}.architecture-flow-v16{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:10px}.architecture-flow-v16 article{background:#fff;border:1px solid #e5e9f0;border-radius:15px;padding:23px;text-align:center}.architecture-flow-v16 article i{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin:0 auto 13px;background:#f0f1ff;color:#5b5cf0}.architecture-flow-v16 b,.architecture-flow-v16 span{display:block}.architecture-flow-v16 span{font-size:.68rem;color:#98a2b3;margin-top:3px}.architecture-flow-v16>i{color:#c4c9d4}.about-developer-v16{padding:85px 0}.about-developer-v16 .container{display:grid;grid-template-columns:auto 1fr auto;gap:34px;align-items:center}.developer-logo-card-v16{width:145px;height:145px;border-radius:28px;background:#0b1220;color:#fff;display:grid;place-items:center;align-content:center;gap:5px;box-shadow:0 20px 45px rgba(15,23,42,.18)}.developer-logo-card-v16>span{font-size:3.2rem;font-weight:900;line-height:1}.developer-logo-card-v16>small{font-size:.55rem;letter-spacing:.15em;color:#94a3b8}.about-developer-v16 p{color:#667085;line-height:1.7;max-width:740px}.developer-tags-v16{display:flex;flex-wrap:wrap;gap:8px}.developer-tags-v16 span{padding:6px 10px;border:1px solid #e4e7ec;border-radius:999px;color:#667085;font-size:.68rem;font-weight:650}
/* Admin user management */
.admin-live-pill{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid #dfe5ec;background:#fff;border-radius:999px;color:#667085;font-size:.72rem;font-weight:700}.admin-live-pill span{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #dcfce7}.admin-user-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.admin-user-stats article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;align-items:center;gap:14px}.admin-stat-icon{width:45px;height:45px;border-radius:13px;display:grid;place-items:center}.admin-stat-icon.indigo{background:#eef2ff;color:#4f46e5}.admin-stat-icon.amber{background:#fffbeb;color:#d97706}.admin-stat-icon.blue{background:#eff6ff;color:#2563eb}.admin-stat-icon.green{background:#ecfdf3;color:#16a34a}.admin-user-stats small,.admin-user-stats strong,.admin-user-stats em{display:block}.admin-user-stats small{font-size:.68rem;color:#667085;font-weight:700}.admin-user-stats strong{font-size:1.55rem;line-height:1.15;margin:3px 0}.admin-user-stats em{font-style:normal;font-size:.62rem;color:#98a2b3}.admin-user-toolbar{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.admin-filter-tabs{display:flex;gap:6px;overflow:auto}.admin-filter-tabs button{border:0;background:transparent;padding:8px 11px;border-radius:9px;color:#667085;font-size:.72rem;font-weight:750;white-space:nowrap}.admin-filter-tabs button.active{background:#eef2ff;color:#4f46e5}.admin-filter-tabs span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:rgba(79,70,229,.1);margin-left:4px;font-size:.6rem}.admin-search{position:relative;min-width:250px}.admin-search i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#98a2b3}.admin-search input{width:100%;border:1px solid #dfe3ea;border-radius:10px;padding:8px 10px 8px 34px;font-size:.76rem;outline:none}.admin-search input:focus{border-color:#a5b4fc;box-shadow:0 0 0 3px #eef2ff}.admin-user-table td{vertical-align:top;padding-top:18px;padding-bottom:18px}.admin-user-identity{display:flex;gap:11px;align-items:flex-start}.admin-avatar{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:850;flex:0 0 auto}.admin-avatar.role-admin{background:#111827;color:#fff}.admin-avatar.role-lecturer{background:#ede9fe;color:#6d28d9}.admin-avatar.role-student{background:#dbeafe;color:#1d4ed8}.admin-user-identity strong,.admin-user-identity small,.admin-user-identity em{display:block}.admin-user-identity strong{font-size:.8rem}.admin-user-identity small{color:#667085;font-size:.68rem}.admin-user-identity em{font-style:normal;color:#98a2b3;font-size:.6rem;margin-top:4px}.role-chip,.user-status-chip,.enrollment-chip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 8px;font-size:.62rem;font-weight:800}.role-chip.role-admin{background:#eef2f6;color:#111827}.role-chip.role-lecturer{background:#f3e8ff;color:#7e22ce}.role-chip.role-student{background:#eff6ff;color:#2563eb}.user-status-chip i{font-size:.38rem}.user-status-chip.status-active,.enrollment-chip.status-approved{background:#ecfdf3;color:#15803d}.user-status-chip.status-pending,.enrollment-chip.status-pending{background:#fffbeb;color:#b45309}.user-status-chip.status-rejected,.enrollment-chip.status-rejected{background:#fff1f2;color:#be123c}.user-status-chip.status-inactive{background:#f2f4f7;color:#667085}.admin-usage-mini{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.admin-usage-mini span{background:#f8fafc;border:1px solid #edf0f3;padding:5px 7px;border-radius:7px;font-size:.61rem;color:#667085}.admin-usage-mini b{color:#344054}.admin-user-settings label{font-size:.58rem;font-weight:700;color:#667085;width:100%}.admin-user-settings .form-control,.admin-user-settings .form-select{margin-top:3px;font-size:.68rem}.admin-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.admin-row-actions form{margin:0}
/* Shared course / approvals */
.builder-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:13px}.builder-team-pill,.builder-pending-pill{display:flex;align-items:center;gap:10px;padding:8px 11px;border:1px solid #e4e7ec;border-radius:10px;background:#fff}.builder-team-pill strong,.builder-team-pill small,.builder-pending-pill strong,.builder-pending-pill small{display:block}.builder-team-pill strong,.builder-pending-pill strong{font-size:.68rem}.builder-team-pill small,.builder-pending-pill small{font-size:.57rem;color:#98a2b3}.builder-pending-pill{background:#fffbeb;border-color:#fde68a;color:#92400e}.builder-pending-pill>i{font-size:1.1rem}.team-stack{display:flex}.team-stack b{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#eef2ff;color:#4f46e5;border:2px solid #fff;font-size:.56rem;margin-left:-7px}.team-stack b:first-child{margin-left:0}.builder-tabs .nav-link{display:flex;align-items:center}.member-summary{display:flex;gap:8px}.member-summary span{padding:7px 10px;background:#ecfdf3;color:#15803d;border-radius:9px;font-size:.66rem}.member-summary span.pending{background:#fffbeb;color:#b45309}.member-person{display:flex;align-items:center;gap:10px}.member-person>span{width:36px;height:36px;border-radius:10px;background:#eff6ff;color:#2563eb;display:grid;place-items:center;font-size:.62rem;font-weight:850}.member-person strong,.member-person small{display:block}.member-person small{font-size:.67rem;color:#667085}.instructor-list-v16{display:grid;gap:10px;margin-top:16px}.instructor-list-v16 article{display:flex;align-items:center;gap:12px;border:1px solid #e7eaf0;border-radius:12px;padding:13px}.instructor-avatar{width:40px;height:40px;border-radius:11px;background:#ede9fe;color:#6d28d9;display:grid;place-items:center;font-size:.68rem;font-weight:850}.instructor-list-v16 article>div{flex:1}.instructor-list-v16 strong,.instructor-list-v16 small{display:block}.instructor-list-v16 strong{font-size:.8rem}.instructor-list-v16 small{font-size:.67rem;color:#667085}.instructor-role-badge{padding:5px 8px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:.59rem;font-weight:800}.instructor-role-badge.owner{background:#eef2ff;color:#4f46e5}.empty-mini{padding:20px;border:1px dashed #d0d5dd;border-radius:12px;text-align:center;color:#667085}.empty-mini i{font-size:1.5rem;color:#16a34a;display:block;margin-bottom:8px}.empty-mini strong{font-size:.76rem}.shared-info-box{display:flex;gap:12px;padding:14px;border-radius:12px;background:#f8fafc;border:1px solid #e7eaf0}.shared-info-box i{color:#5b5cf0;font-size:1.2rem}.shared-info-box strong{font-size:.8rem}.shared-info-box p{font-size:.68rem;color:#667085;margin:4px 0 0}.course-team-count{display:inline-flex;align-items:center;gap:6px;color:#475467;font-size:.72rem;font-weight:700}.course-team-count i{color:#5b5cf0}.join-class-v16{min-height:65vh;display:grid;grid-template-columns:1.1fr .8fr;gap:50px;align-items:center}.join-class-v16>section h1{font-size:3rem;letter-spacing:-.05em;font-weight:850;max-width:600px}.join-class-v16>section p{color:#667085;font-size:1rem;line-height:1.75;max-width:620px}.join-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:28px}.join-flow span{display:flex;align-items:center;gap:7px;font-size:.72rem;font-weight:700;color:#475467}.join-flow span b{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#eef2ff;color:#4f46e5}.join-flow>i{color:#c4c9d4}.join-key-icon{width:52px;height:52px;border-radius:15px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-size:1.35rem;margin-bottom:18px}.student-request-panel{margin-bottom:16px}.request-course-list{display:grid;gap:8px;margin-top:15px}.request-course-list article{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid #edf0f3;border-radius:11px}.request-icon{width:37px;height:37px;border-radius:10px;display:grid;place-items:center;background:#eef2ff;color:#4f46e5}.request-course-list article>div{flex:1}.request-course-list strong,.request-course-list small{display:block}.request-course-list strong{font-size:.78rem}.request-course-list small{font-size:.65rem;color:#667085}.admin-dashboard-cta{display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-dashboard-cta h2{font-size:1.3rem;font-weight:800;margin:5px 0}.admin-dashboard-cta p{color:#667085;margin:0}.registration-success{padding:20px;border:1px solid #bbf7d0;background:#f0fdf4;border-radius:14px;display:flex;gap:13px}.registration-success>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;flex:0 0 auto}.registration-success strong{display:block}.registration-success p{color:#4b6354;font-size:.78rem;line-height:1.6;margin:5px 0 12px}.auth-approval-note{display:flex;gap:9px;padding:11px 12px;border:1px solid #e4e7ec;border-radius:10px;background:#f9fafb;color:#667085;font-size:.68rem;margin-top:14px}.auth-approval-note i{color:#5b5cf0}
@media(max-width:1100px){.preview-grid-v16{min-height:430px}.hero-v16{padding-top:70px}.workflow-grid-v16{grid-template-columns:repeat(2,1fr)}.workflow-grid-v16>i{display:none}.role-showcase-v16{grid-template-columns:1fr;gap:35px}.pricing-grid-v16{grid-template-columns:1fr}.pricing-grid-v16>article.featured{transform:none}.compare-grid-v16{grid-template-columns:repeat(2,1fr)}.architecture-flow-v16{grid-template-columns:repeat(5,1fr);overflow:auto}.admin-user-stats{grid-template-columns:repeat(2,1fr)}.about-developer-v16 .container{grid-template-columns:auto 1fr}.about-developer-v16 .container>div:last-child{grid-column:1/-1}.developer-v16 .container{grid-template-columns:auto 1fr}.developer-v16 .container>a{grid-column:1/-1;width:max-content}}
@media(max-width:800px){.public-nav-v16{height:68px}.public-nav-v16 .btn{font-size:.72rem;padding:.48rem .75rem!important}.public-brand-v16>div{display:none}.hero-v16{padding:60px 0}.hero-v16 h1{font-size:3.2rem}.platform-preview-v16{transform:none}.preview-grid-v16{grid-template-columns:48px 1fr;min-height:390px}.preview-grid-v16 aside{padding:10px 4px}.preview-grid-v16 aside a,.preview-logo{width:38px;height:38px}.preview-grid-v16>section{padding:18px}.preview-cards-v16{grid-template-columns:1fr}.preview-request-v16{align-items:flex-start;flex-direction:column}.brand-strip-v16 .container{padding-top:18px;padding-bottom:18px;display:block}.brand-strip-v16 .container>div{margin-top:12px;gap:14px}.section-v16{padding:70px 0}.feature-grid-v16{grid-template-columns:1fr}.feature-grid-v16 article.feature-large{grid-row:auto;min-height:390px}.workflow-grid-v16{grid-template-columns:1fr}.pricing-teaser-v16 .container{display:block}.pricing-teaser-v16 .btn{margin-top:20px}.developer-v16 .container{grid-template-columns:1fr}.public-footer-v16>.container{grid-template-columns:1fr 1fr}.public-footer-v16>.container>div:first-child{grid-column:1/-1}.footer-bottom-v16 .container{align-items:flex-start;justify-content:center;flex-direction:column;gap:5px;padding-top:14px;padding-bottom:14px}.admin-user-stats{grid-template-columns:1fr}.admin-user-toolbar{align-items:stretch;flex-direction:column}.admin-search{min-width:0}.join-class-v16{grid-template-columns:1fr;gap:20px;padding-top:30px;padding-bottom:30px}.join-class-v16>section h1{font-size:2.3rem}.about-developer-v16 .container{grid-template-columns:1fr}.developer-logo-card-v16{width:110px;height:110px}.compare-grid-v16{grid-template-columns:1fr}.architecture-flow-v16{display:flex;overflow:auto}.architecture-flow-v16 article{min-width:150px}.architecture-flow-v16>i{flex:0 0 auto}.admin-dashboard-cta{align-items:flex-start;flex-direction:column}.member-summary{display:none}}
@media(max-width:560px){.hero-v16 h1{font-size:2.65rem}.hero-proof-v16 small,.hero-proof-v16 .dot{display:none}.hero-actions-v16 .btn{width:100%}.preview-grid-v16{display:block}.preview-grid-v16 aside{display:none}.preview-grid-v16>section{padding:15px}.feature-large h3{font-size:1.7rem}.public-footer-v16>.container{grid-template-columns:1fr}.public-footer-v16>.container>div:first-child{grid-column:auto}.admin-user-stats{gap:9px}.builder-meta-row{align-items:stretch;flex-direction:column}.builder-team-pill,.builder-pending-pill{width:100%}.request-course-list article{align-items:flex-start;flex-wrap:wrap}.request-course-list .enrollment-chip{margin-left:48px}}

/* =========================================================
   NgodingLab v17 — Interactive Learning Path
   ========================================================= */
.course-setup-page{max-width:1280px}.course-setup-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.course-setup-hero h1{font-size:2.35rem;font-weight:850;letter-spacing:-.05em;margin:.35rem 0}.course-setup-hero p{max-width:720px;color:var(--muted);margin:0}.setup-flow-mini{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:0 8px 28px rgba(16,24,40,.04)}.setup-flow-mini span{display:flex;align-items:center;gap:6px;font-size:.7rem;font-weight:750;white-space:nowrap}.setup-flow-mini span b{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--primary);font-size:.62rem}.setup-flow-mini>i{color:#cbd5e1}.course-setup-form{display:grid;gap:16px}.setup-section{padding:28px}.setup-heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:22px}.setup-heading>span{width:38px;height:38px;border-radius:12px;background:#0b1220;color:#fff;display:grid;place-items:center;font-size:.72rem;font-weight:850;flex:0 0 auto}.setup-heading h2{font-size:1.2rem;font-weight:850;margin:0}.setup-heading p{margin:4px 0 0;color:var(--muted);font-size:.8rem}.template-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.template-choice{position:relative;border:1px solid var(--line);border-radius:15px;padding:16px;cursor:pointer;transition:.2s;background:#fff}.template-choice:hover,.template-choice.selected{border-color:#818cf8;box-shadow:0 8px 24px rgba(79,70,229,.09)}.template-choice.selected{background:#f8f9ff}.template-choice input{position:absolute;opacity:0;pointer-events:none}.template-choice .template-icon{width:42px;height:42px;border-radius:12px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-size:1.05rem;margin-bottom:13px}.template-choice strong,.template-choice small,.template-choice em{display:block}.template-choice strong{font-size:.86rem}.template-choice small{font-size:.7rem;color:var(--muted);line-height:1.5;min-height:42px;margin-top:4px}.template-choice em{font-style:normal;font-size:.61rem;color:var(--primary);font-weight:750;margin-top:10px}.release-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.release-choice{position:relative;border:1px solid var(--line);border-radius:14px;padding:17px;display:flex;align-items:flex-start;gap:13px;cursor:pointer}.release-choice:has(input:checked){border-color:#818cf8;background:#f8f9ff;box-shadow:0 7px 22px rgba(79,70,229,.08)}.release-choice input{position:absolute;right:14px;top:14px}.release-choice>i{width:40px;height:40px;border-radius:11px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-size:1rem;flex:0 0 auto}.release-choice strong,.release-choice small{display:block}.release-choice strong{font-size:.84rem}.release-choice small{font-size:.7rem;color:var(--muted);line-height:1.5;margin-top:3px;padding-right:20px}.setup-actions{display:flex;justify-content:flex-end;gap:9px;padding:8px 0 24px}

.activity-type-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.activity-type-picker label{cursor:pointer}.activity-type-picker input{position:absolute;opacity:0}.activity-type-picker span{height:100%;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px;transition:.15s}.activity-type-picker input:checked+span{border-color:#818cf8;background:#f8f9ff;box-shadow:0 6px 18px rgba(79,70,229,.08)}.activity-type-picker i{font-size:1.05rem;color:var(--primary);margin-bottom:8px}.activity-type-picker strong{font-size:.75rem}.activity-type-picker small{font-size:.6rem;color:var(--muted);line-height:1.35;margin-top:2px}.completion-toggle{display:flex;gap:10px;border:1px solid var(--line);border-radius:11px;padding:11px;background:#fafbfc}.completion-toggle input{margin-top:3px}.completion-toggle strong,.completion-toggle small{display:block}.completion-toggle strong{font-size:.72rem}.completion-toggle small{font-size:.62rem;color:var(--muted);margin-top:2px}

.builder-hero-v17{border-radius:22px;padding:30px 32px;background:linear-gradient(125deg,#0b1220,#172554 58%,#312e81);color:#fff;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;box-shadow:0 18px 40px rgba(15,23,42,.13)}.builder-hero-v17 .back-link{color:#cbd5e1}.builder-hero-v17 .eyebrow{color:#a5b4fc}.builder-hero-v17 h1{font-size:2.15rem;font-weight:850;letter-spacing:-.045em;margin:.35rem 0}.builder-hero-v17 p{color:#cbd5e1;max-width:780px;margin:0}.builder-summary-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.builder-summary-chips span{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.07);border-radius:999px;color:#dbeafe;font-size:.65rem}.builder-summary-chips b{color:#fff}.builder-hero-actions{display:flex;gap:8px;flex-wrap:wrap}.learning-model-strip{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px 16px;margin-top:15px}.learning-model-strip>div{display:grid;grid-template-columns:30px 1fr;column-gap:9px;align-items:center}.learning-model-strip div>span{grid-row:1/3;width:30px;height:30px;border-radius:10px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-size:.65rem;font-weight:850}.learning-model-strip strong{font-size:.72rem}.learning-model-strip small{font-size:.61rem;color:var(--muted)}.learning-model-strip>i{color:#cbd5e1}.meeting-stack{display:grid;gap:14px}.meeting-card-v17{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 5px 18px rgba(16,24,40,.025);overflow:visible}.meeting-head-v17{display:flex;gap:14px;padding:18px 18px 15px;border-bottom:1px solid #eef1f5;align-items:flex-start}.meeting-number-v17{width:42px;height:42px;border-radius:12px;background:#0f172a;color:#fff;display:grid;place-items:center;font-weight:850;font-size:.78rem;flex:0 0 auto}.meeting-head-v17 h2{font-size:1rem;font-weight:850;margin:5px 0 3px}.meeting-head-v17 p{font-size:.72rem;color:var(--muted);margin:0}.meeting-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.schedule-chip{font-size:.58rem;color:#64748b;background:#f8fafc;border:1px solid var(--line);padding:4px 6px;border-radius:999px}.meeting-settings{position:relative}.meeting-settings summary{list-style:none;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;cursor:pointer;background:#fff}.meeting-settings summary::-webkit-details-marker{display:none}.meeting-settings-pop{position:absolute;right:0;top:40px;z-index:10;width:315px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;box-shadow:0 18px 45px rgba(15,23,42,.15)}.meeting-settings-pop label{display:block;font-size:.6rem;font-weight:750;color:#667085;margin-bottom:3px}.activity-flow-list{padding:6px 14px}.activity-row-v17{position:relative;display:grid;grid-template-columns:26px 36px 1fr 10px 18px;align-items:center;gap:10px;padding:11px 7px;text-decoration:none;border-bottom:1px solid #f1f3f6}.activity-row-v17:last-child{border-bottom:0}.activity-row-v17:hover{background:#fafbff;border-radius:10px}.activity-index{font-size:.62rem;color:#98a2b3;text-align:center}.activity-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.activity-material .activity-icon{background:#eff6ff;color:#2563eb}.activity-example .activity-icon{background:#f5f3ff;color:#7c3aed}.activity-lab .activity-icon{background:#ecfdf3;color:#15803d}.activity-challenge .activity-icon{background:#fff7ed;color:#c2410c}.activity-summary .activity-icon{background:#f8fafc;color:#475569}.activity-row-v17 small,.activity-row-v17 strong,.activity-row-v17 p{display:block}.activity-row-v17 small{font-size:.6rem;color:#667085}.activity-row-v17 strong{font-size:.78rem}.activity-row-v17 p{font-size:.66rem;color:#98a2b3;margin:1px 0 0}.status-dot{width:7px;height:7px;border-radius:50%}.status-dot.live{background:#22c55e}.status-dot.draft{background:#cbd5e1}.activity-empty{padding:18px;text-align:center;color:#98a2b3;font-size:.72rem}.quick-activity-add{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:11px 16px;background:#fafbfc;border-top:1px solid #eef1f5}.quick-activity-add>span{font-size:.61rem;color:#98a2b3;font-weight:750}.quick-activity-add a{display:inline-flex;align-items:center;gap:5px;text-decoration:none;border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 8px;font-size:.62rem;font-weight:700}.quick-activity-add a:hover{border-color:#c7d2fe;color:var(--primary)}.meeting-create-card h3{font-size:1.15rem;font-weight:850;margin:.4rem 0}.meeting-create-card>p{font-size:.72rem;color:var(--muted)}.builder-tip{display:flex;gap:10px}.builder-tip>i{width:35px;height:35px;border-radius:10px;background:#fffbeb;color:#b45309;display:grid;place-items:center;flex:0 0 auto}.builder-tip strong,.builder-tip p{display:block}.builder-tip strong{font-size:.72rem}.builder-tip p{font-size:.64rem;color:var(--muted);margin:2px 0 0}.assignment-admin{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #eef1f5}.assignment-admin small,.assignment-admin strong,.assignment-admin span{display:block}.assignment-admin small{font-size:.59rem;color:var(--primary);font-weight:750}.assignment-admin strong{font-size:.8rem}.assignment-admin span{font-size:.62rem;color:var(--muted)}

.course-learning-hero{background:linear-gradient(135deg,#0b1220,#172554 60%,#312e81);color:#fff;border-radius:22px;padding:30px 32px;display:flex;align-items:center;gap:20px;box-shadow:0 18px 42px rgba(15,23,42,.12)}.course-learning-icon{width:68px;height:68px;border-radius:18px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;font-size:1.65rem;flex:0 0 auto}.course-learning-hero .eyebrow{color:#a5b4fc}.course-learning-hero h1{font-size:2rem;font-weight:850;letter-spacing:-.045em;margin:.35rem 0}.course-learning-hero p{color:#cbd5e1;max-width:760px;margin:0}.course-learning-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}.course-learning-meta span{font-size:.65rem;color:#dbeafe;display:flex;align-items:center;gap:5px}.course-progress-ring{--progress:0;width:112px;height:112px;border-radius:50%;background:conic-gradient(#818cf8 calc(var(--progress)*1%),rgba(255,255,255,.13) 0);padding:8px;flex:0 0 auto}.course-progress-ring>div{width:100%;height:100%;border-radius:50%;background:#111a30;display:grid;place-items:center;align-content:center}.course-progress-ring strong,.course-progress-ring small{display:block;text-align:center}.course-progress-ring strong{font-size:1.35rem}.course-progress-ring small{font-size:.58rem;color:#94a3b8}.continue-learning-card{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid #dbe3ff;border-radius:16px;padding:18px 20px;margin-top:15px;box-shadow:0 8px 24px rgba(79,70,229,.05)}.continue-learning-card h2{font-size:1.05rem;font-weight:850;margin:.25rem 0}.continue-learning-card p{font-size:.72rem;color:var(--muted);margin:0}.learning-path-intro{display:flex;align-items:center;justify-content:center;gap:10px;margin:26px 0 18px}.learning-path-intro>div{display:flex;align-items:center;gap:7px;font-size:.7rem;font-weight:750;color:#475569}.learning-path-intro span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eef2ff;color:#4f46e5;font-size:.62rem}.learning-path-intro>i{color:#cbd5e1}.learning-path-stack{display:grid;gap:15px;max-width:1120px}.student-meeting-card{display:grid;grid-template-columns:52px 1fr;gap:0}.student-meeting-side{display:flex;flex-direction:column;align-items:center}.student-meeting-side>span{width:42px;height:42px;border-radius:13px;background:#0f172a;color:#fff;display:grid;place-items:center;font-size:.72rem;font-weight:850;box-shadow:0 6px 16px rgba(15,23,42,.12)}.meeting-line{width:2px;background:#dfe4eb;flex:1;min-height:40px}.student-meeting-card:last-child .meeting-line{display:none}.student-meeting-body{background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:2px;overflow:hidden}.student-meeting-body>header{display:flex;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid #eef1f5}.student-meeting-body h2{font-size:1.12rem;font-weight:850;margin:5px 0 4px}.student-meeting-body header p{font-size:.73rem;color:var(--muted);margin:0}.meeting-state-row{display:flex;align-items:center;gap:8px}.available-chip,.locked-chip{font-size:.57rem;font-weight:750;border-radius:999px;padding:4px 7px}.available-chip{background:#ecfdf3;color:#15803d}.locked-chip{background:#f2f4f7;color:#667085}.meeting-progress-mini{width:135px;flex:0 0 auto;text-align:right}.meeting-progress-mini strong{font-size:.9rem}.meeting-progress-mini>div{height:5px;background:#eef1f5;border-radius:999px;overflow:hidden;margin:5px 0}.meeting-progress-mini>div span{display:block;height:100%;background:#4f46e5;border-radius:999px}.meeting-progress-mini small{font-size:.58rem;color:#98a2b3}.meeting-lock-reason{display:flex;gap:10px;margin:13px 16px 0;padding:11px 12px;background:#f8fafc;border-radius:10px;color:#64748b}.meeting-lock-reason>i{color:#94a3b8}.meeting-lock-reason strong,.meeting-lock-reason span{display:block}.meeting-lock-reason strong{font-size:.68rem}.meeting-lock-reason span{font-size:.61rem}.student-activity-list{padding:7px 14px}.student-activity{display:grid;grid-template-columns:38px 1fr 18px;gap:11px;align-items:center;padding:11px 8px;border-bottom:1px solid #f0f2f5;text-decoration:none}.student-activity:last-child{border-bottom:0}.student-activity:not(.disabled):hover{background:#fafbff;border-radius:10px}.student-activity-icon{width:36px;height:36px;border-radius:10px;background:#f4f6f9;display:grid;place-items:center;color:#475569}.student-activity.type-material .student-activity-icon{background:#eff6ff;color:#2563eb}.student-activity.type-example .student-activity-icon{background:#f5f3ff;color:#7c3aed}.student-activity.type-lab .student-activity-icon{background:#ecfdf3;color:#15803d}.student-activity.type-challenge .student-activity-icon{background:#fff7ed;color:#c2410c}.student-activity.done .student-activity-icon{background:#dcfce7;color:#16a34a}.student-activity.disabled{opacity:.48}.student-activity small,.student-activity strong,.student-activity p{display:block}.student-activity small{font-size:.59rem;color:#667085}.student-activity strong{font-size:.78rem}.student-activity p{font-size:.65rem;color:#98a2b3;margin:1px 0 0}.meeting-assignment-box{display:flex;align-items:center;gap:11px;background:#fffbeb;border-top:1px solid #fde68a;padding:12px 18px}.meeting-assignment-box>span{width:36px;height:36px;border-radius:10px;background:#fef3c7;color:#b45309;display:grid;place-items:center}.meeting-assignment-box>div{flex:1}.meeting-assignment-box small,.meeting-assignment-box strong{display:block}.meeting-assignment-box small{font-size:.56rem;color:#a16207;font-weight:800}.meeting-assignment-box strong{font-size:.74rem}

.lesson-layout-v17{grid-template-columns:310px minmax(0,1fr);gap:22px}.lesson-course-mini{display:flex;gap:9px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:14px}.lesson-course-mini>span{width:35px;height:35px;border-radius:9px;background:var(--soft);color:var(--primary);display:grid;place-items:center}.lesson-course-mini small,.lesson-course-mini strong{display:block}.lesson-course-mini small{font-size:.54rem;color:#98a2b3}.lesson-course-mini strong{font-size:.69rem;line-height:1.3}.lesson-path-nav{display:grid;gap:8px}.lesson-path-group{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.lesson-path-group>header{display:grid;grid-template-columns:31px 1fr 18px;gap:8px;align-items:center;padding:10px}.lesson-path-group>header>span{width:29px;height:29px;border-radius:9px;background:#0f172a;color:#fff;display:grid;place-items:center;font-size:.58rem;font-weight:850}.lesson-path-group header small,.lesson-path-group header strong{display:block}.lesson-path-group header small{font-size:.5rem;color:#98a2b3}.lesson-path-group header strong{font-size:.64rem}.lesson-path-group.locked{opacity:.6}.lesson-path-group>div{border-top:1px solid #eef1f5;padding:5px}.lesson-path-group a{display:grid;grid-template-columns:20px 1fr;gap:7px;align-items:center;padding:8px;border-radius:8px;text-decoration:none;color:#475569}.lesson-path-group a:hover,.lesson-path-group a.active{background:#eef2ff;color:#3730a3}.lesson-path-group a>i{text-align:center}.lesson-path-group a strong,.lesson-path-group a small{display:block}.lesson-path-group a strong{font-size:.62rem}.lesson-path-group a small{font-size:.52rem;color:#98a2b3}.lesson-header-v17{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;display:flex;gap:18px;margin-bottom:14px}.lesson-type-mark{width:52px;height:52px;border-radius:14px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-size:1.25rem;flex:0 0 auto}.lesson-header-v17 h1{font-size:2rem;font-weight:850;letter-spacing:-.045em;margin:.35rem 0}.lesson-header-v17 p{color:var(--muted);margin:0}.lesson-type-row{display:flex;gap:7px;flex-wrap:wrap}.lesson-type-row span{font-size:.59rem;background:#f8fafc;border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:#64748b}.lesson-type-row span.done{background:#ecfdf3;color:#15803d;border-color:#bbf7d0}.article-body-v17{border-radius:18px}.inline-lab-v17{margin-top:14px;box-shadow:0 10px 30px rgba(15,23,42,.12)}.inline-lab-v17.code-only .inline-lab-grid{min-height:360px}.lab-save-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;background:#111b2f;border-top:1px solid #263147}.lab-save-bar strong,.lab-save-bar span{display:block}.lab-save-bar strong{font-size:.72rem}.lab-save-bar span{font-size:.61rem;color:#94a3b8;margin-top:2px}.lesson-complete.completed{border-color:#bbf7d0;background:#f0fdf4}.completion-confirm{display:inline-flex;align-items:center;gap:6px;color:#15803d;font-size:.72rem;font-weight:800}

.dashboard-welcome-v17{background:linear-gradient(120deg,#0b1220,#172554 62%,#312e81);color:#fff;border-radius:22px;padding:32px 34px;display:flex;align-items:center;justify-content:space-between;gap:28px;box-shadow:0 18px 42px rgba(15,23,42,.11)}.dashboard-welcome-v17 h1{font-size:2rem;font-weight:850;letter-spacing:-.045em;margin:.35rem 0}.dashboard-welcome-v17 p{color:#cbd5e1;max-width:760px;margin:0}.dashboard-flow-visual{align-items:center;gap:7px}.dashboard-flow-visual>div{width:74px;height:74px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);border-radius:15px;display:grid;place-items:center;align-content:center}.dashboard-flow-visual span,.dashboard-flow-visual strong{display:block;text-align:center}.dashboard-flow-visual span{font-size:.52rem;color:#a5b4fc}.dashboard-flow-visual strong{font-size:.68rem}.dashboard-flow-visual>i{color:#64748b}.lecturer-onboarding-v17{margin-top:16px}.onboarding-steps-v17{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.onboarding-steps-v17 article{position:relative;border:1px solid var(--line);border-radius:13px;padding:15px}.onboarding-steps-v17 article>span{position:absolute;right:10px;top:8px;font-size:1.6rem;font-weight:900;color:#eef1f5}.onboarding-steps-v17 i{width:38px;height:38px;border-radius:10px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;margin-bottom:12px}.onboarding-steps-v17 strong,.onboarding-steps-v17 p{display:block}.onboarding-steps-v17 strong{font-size:.76rem}.onboarding-steps-v17 p{font-size:.65rem;color:var(--muted);margin:3px 0 0}.next-learning-v17{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid #dbe3ff;border-radius:17px;padding:20px 22px;margin-top:15px;box-shadow:0 8px 25px rgba(79,70,229,.05)}.next-learning-copy{max-width:780px;flex:1}.next-learning-copy>small{display:block;color:#667085;margin-top:3px}.next-learning-copy h2{font-size:1.25rem;font-weight:850;margin:.35rem 0}.next-learning-copy p{font-size:.74rem;color:var(--muted)}.progress-thin{height:6px;margin-top:12px}.next-learning-play{width:96px;height:96px;border-radius:50%;background:#4f46e5;color:#fff;text-decoration:none;display:grid;place-items:center;align-content:center;box-shadow:0 14px 28px rgba(79,70,229,.24)}.next-learning-play i{font-size:1.7rem}.next-learning-play span{font-size:.6rem;font-weight:750}.dashboard-two-col-v17{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.7fr);gap:16px;margin-top:16px}.dashboard-course-list-v17{display:grid}.dashboard-course-list-v17>a{display:grid;grid-template-columns:42px 1fr 18px;gap:11px;align-items:center;padding:13px 0;border-bottom:1px solid #eef1f5;text-decoration:none}.course-mini-icon{width:40px;height:40px;border-radius:11px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center}.dashboard-course-list-v17 small,.dashboard-course-list-v17 strong,.dashboard-course-list-v17 em{display:block}.dashboard-course-list-v17 small{font-size:.6rem;color:#667085}.dashboard-course-list-v17 strong{font-size:.78rem}.dashboard-course-list-v17 em{font-size:.58rem;font-style:normal;color:#98a2b3}.mini-course-progress{height:4px;background:#eef1f5;border-radius:999px;margin:6px 0 3px;overflow:hidden}.mini-course-progress span{display:block;height:100%;background:#4f46e5;border-radius:999px}

.catalog-title-v17{display:flex;align-items:end;justify-content:space-between;gap:20px}.course-grid-v17{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.course-card-v17{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;text-decoration:none;transition:.2s;display:flex;flex-direction:column}.course-card-v17:hover{transform:translateY(-3px);border-color:#c7d2fe;box-shadow:0 16px 38px rgba(16,24,40,.07)}.course-card-v17-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.course-card-v17 .course-card-icon{margin:0}.course-level-chip{font-size:.59rem;background:#f8fafc;border:1px solid var(--line);border-radius:999px;padding:5px 8px;color:#667085}.course-card-v17>small{font-size:.58rem;color:var(--primary);font-weight:800;letter-spacing:.08em}.course-card-v17 h3{font-size:1.05rem;font-weight:850;margin:6px 0}.course-card-v17>p{font-size:.72rem;color:var(--muted);line-height:1.55;flex:1}.catalog-progress{margin:12px 0}.catalog-progress>div:first-child{display:flex;justify-content:space-between;font-size:.62rem;color:#667085}.catalog-progress .progress{height:6px;margin:5px 0}.catalog-progress small{font-size:.57rem;color:#98a2b3}.course-card-v17 footer{display:grid;grid-template-columns:1fr 1fr 18px;gap:7px;align-items:center;border-top:1px solid #eef1f5;padding-top:12px;margin-top:8px}.course-card-v17 footer span{font-size:.58rem;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.assignment-guide-v17{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px 14px;margin-bottom:16px}.assignment-guide-v17>div{display:grid;grid-template-columns:28px 1fr;column-gap:8px;align-items:center}.assignment-guide-v17 span{grid-row:1/3;width:28px;height:28px;border-radius:9px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-size:.6rem;font-weight:850}.assignment-guide-v17 strong{font-size:.68rem}.assignment-guide-v17 small{font-size:.56rem;color:#98a2b3}.assignment-guide-v17>i{color:#cbd5e1}.assignment-card-v17{border-radius:17px}.assignment-card-v17 .assignment-top>div span,.assignment-card-v17 .assignment-top>div small{display:block}.assignment-card-v17 .assignment-top>div small{font-size:.59rem;color:#667085;margin-top:2px}.instruction-box strong{display:block;font-size:.66rem;margin-bottom:7px}.grade-box-v17>div:first-child strong span{font-size:.65rem;color:#98a2b3}

@media(max-width:1180px){.template-choice-grid{grid-template-columns:repeat(2,1fr)}.learning-model-strip{overflow:auto;display:flex}.learning-model-strip>div{min-width:130px}.course-grid-v17{grid-template-columns:repeat(2,1fr)}.dashboard-two-col-v17{grid-template-columns:1fr}.onboarding-steps-v17{grid-template-columns:repeat(2,1fr)}.lesson-layout-v17{grid-template-columns:260px 1fr}.activity-type-picker{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.course-setup-hero,.catalog-title-v17{align-items:flex-start;flex-direction:column}.setup-flow-mini{width:100%;overflow:auto}.template-choice-grid,.release-choice-grid,.course-grid-v17{grid-template-columns:1fr}.builder-hero-v17,.course-learning-hero,.continue-learning-card,.next-learning-v17{align-items:flex-start;flex-direction:column}.builder-hero-actions{width:100%}.course-progress-ring{align-self:center}.learning-path-intro{justify-content:flex-start;overflow:auto;padding-bottom:5px}.student-meeting-card{grid-template-columns:42px 1fr}.student-meeting-side>span{width:34px;height:34px}.student-meeting-body>header{flex-direction:column}.meeting-progress-mini{width:100%;text-align:left}.lesson-layout-v17{display:block;padding:16px}.lesson-layout-v17 .lesson-nav{position:relative;top:auto;height:auto;margin-bottom:14px}.lesson-path-nav{max-height:420px;overflow:auto}.lesson-header-v17{padding:20px}.inline-lab-grid{grid-template-columns:1fr;min-height:700px}.lab-save-bar{align-items:flex-start;flex-direction:column}.assignment-guide-v17{display:flex;overflow:auto}.assignment-guide-v17>div{min-width:145px}.assignment-guide-v17>i{flex:0 0 auto}.activity-type-picker{grid-template-columns:repeat(2,1fr)}.meeting-settings-pop{right:-8px;width:min(315px,80vw)}}
@media(max-width:560px){.course-setup-hero h1,.builder-hero-v17 h1,.course-learning-hero h1{font-size:1.65rem}.setup-section{padding:20px}.template-choice-grid{gap:9px}.builder-hero-v17,.course-learning-hero,.dashboard-welcome-v17{padding:23px 20px}.builder-summary-chips span{width:100%;justify-content:space-between}.quick-activity-add a{flex:1;justify-content:center}.student-meeting-body>header{padding:16px}.student-activity{grid-template-columns:34px 1fr 16px;padding:10px 3px}.student-activity p{display:none}.onboarding-steps-v17{grid-template-columns:1fr}.activity-type-picker{grid-template-columns:1fr}.dashboard-welcome-v17 h1{font-size:1.65rem}.next-learning-play{width:76px;height:76px}.course-card-v17 footer{grid-template-columns:1fr}.course-card-v17 footer>i{display:none}}
.home-path-preview{display:grid;gap:8px;margin-top:18px}.home-path-preview article{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 11px;border:1px solid #e8ebf1;border-radius:11px;background:#fff}.home-path-preview article>span{width:32px;height:32px;border-radius:9px;background:#f2f4f7;color:#667085;display:grid;place-items:center}.home-path-preview article.done>span{background:#dcfce7;color:#15803d}.home-path-preview article.active{border-color:#a5b4fc;background:#f8f9ff;box-shadow:0 5px 16px rgba(79,70,229,.08)}.home-path-preview article.active>span{background:#4f46e5;color:#fff}.home-path-preview small,.home-path-preview b{display:block}.home-path-preview small{font-size:.52rem;color:#98a2b3;font-weight:800}.home-path-preview b{font-size:.67rem}.home-path-preview em{font-style:normal;font-size:.58rem;font-weight:800;color:#4f46e5}.learning-pipeline-public{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.learning-pipeline-public article{position:relative;border:1px solid #e5e9f0;border-radius:16px;padding:19px;background:#fff;min-height:210px}.learning-pipeline-public article>span{position:absolute;right:12px;top:8px;font-size:2rem;font-weight:900;color:#eef1f5}.learning-pipeline-public article>i{width:44px;height:44px;border-radius:12px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-size:1.15rem;margin-bottom:28px}.learning-pipeline-public h3{font-size:1rem;font-weight:850}.learning-pipeline-public p{font-size:.74rem;color:#667085;line-height:1.6;margin:0}@media(max-width:1000px){.learning-pipeline-public{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.learning-pipeline-public{grid-template-columns:1fr}.learning-pipeline-public article{min-height:auto}}

/* =========================================================
   NgodingLab v18 — Platform Control Center
   ========================================================= */
.admin-page-v18,.admin-control-v18{padding-bottom:52px}.admin-page-head-v18{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}.admin-page-head-v18 h1{font-size:2rem;letter-spacing:-.045em;font-weight:850;margin:.35rem 0}.admin-page-head-v18 p{margin:0;color:#667085;max-width:780px;line-height:1.65}.admin-hero-v18{border-radius:22px;padding:30px 32px;background:radial-gradient(circle at 85% 20%,rgba(129,140,248,.35),transparent 30%),linear-gradient(135deg,#0b1220,#172554 62%,#312e81);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px;box-shadow:0 20px 50px rgba(15,23,42,.14)}.admin-hero-v18 h1{font-size:2.2rem;font-weight:850;letter-spacing:-.05em;margin:.4rem 0}.admin-hero-v18 p{color:#cbd5e1;max-width:760px;margin-bottom:22px}.admin-health-ring{width:170px;height:170px;border-radius:50%;border:14px solid rgba(255,255,255,.1);box-shadow:inset 0 0 0 8px rgba(99,102,241,.55);display:grid;place-items:center;align-content:center;flex:0 0 auto;text-align:center}.admin-health-ring strong{font-size:2.2rem}.admin-health-ring span,.admin-health-ring small{display:block;color:#cbd5e1;font-size:.7rem}.admin-health-ring small{margin-top:6px;color:#a5b4fc}.admin-stat-grid-v18{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:16px 0}.admin-stat-grid-v18 article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;display:flex;align-items:center;gap:12px;min-width:0}.admin-stat-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto}.admin-stat-icon.purple{background:#eef2ff;color:#4f46e5}.admin-stat-icon.amber{background:#fffbeb;color:#d97706}.admin-stat-icon.blue{background:#eff6ff;color:#2563eb}.admin-stat-icon.green{background:#ecfdf3;color:#15803d}.admin-stat-icon.rose{background:#fff1f2;color:#e11d48}.admin-stat-icon.slate{background:#f1f5f9;color:#475569}.admin-stat-grid-v18 small,.admin-stat-grid-v18 strong,.admin-stat-grid-v18 em{display:block}.admin-stat-grid-v18 small{font-size:.58rem;color:#667085}.admin-stat-grid-v18 strong{font-size:1.35rem;line-height:1.15}.admin-stat-grid-v18 em{font-size:.55rem;color:#98a2b3;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-dashboard-grid-v18{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.65fr);gap:16px;margin-top:16px}.admin-action-list-v18{display:grid}.admin-action-list-v18>a{display:grid;grid-template-columns:42px 1fr 18px;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #eef1f5;text-decoration:none;color:inherit}.action-dot{width:40px;height:40px;border-radius:12px;display:grid;place-items:center}.action-dot.amber{background:#fff7ed;color:#ea580c}.action-dot.blue{background:#eff6ff;color:#2563eb}.action-dot.rose{background:#fff1f2;color:#e11d48}.action-dot.green{background:#ecfdf3;color:#15803d}.admin-action-list-v18 strong,.admin-action-list-v18 small{display:block}.admin-action-list-v18 strong{font-size:.78rem}.admin-action-list-v18 small{font-size:.63rem;color:#667085;margin-top:2px}.admin-quick-grid-v18{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-quick-grid-v18 a{border:1px solid #e6e9ef;border-radius:13px;padding:15px;text-decoration:none;color:inherit;transition:.18s}.admin-quick-grid-v18 a:hover{border-color:#c7d2fe;background:#f8f9ff;transform:translateY(-1px)}.admin-quick-grid-v18 i{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#eef2ff;color:#4f46e5;margin-bottom:10px}.admin-quick-grid-v18 strong,.admin-quick-grid-v18 small{display:block}.admin-quick-grid-v18 strong{font-size:.72rem}.admin-quick-grid-v18 small{font-size:.58rem;color:#98a2b3}.admin-course-table-v18>a{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #eef1f5;text-decoration:none;color:inherit}.course-rank-icon{width:38px;height:38px;border-radius:10px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center}.admin-course-table-v18 strong,.admin-course-table-v18 small{display:block}.admin-course-table-v18 strong{font-size:.74rem}.admin-course-table-v18 small{font-size:.59rem;color:#667085}.moderation-pill{border-radius:999px;padding:5px 8px;font-size:.55rem;font-weight:800;text-transform:uppercase}.moderation-pill.clear{background:#ecfdf3;color:#15803d}.moderation-pill.review{background:#fffbeb;color:#b45309}.moderation-pill.blocked{background:#fff1f2;color:#be123c}.audit-mini-v18{display:grid}.audit-mini-v18 article{display:grid;grid-template-columns:18px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid #eef1f5}.audit-mini-v18 article>span{color:#6366f1}.audit-mini-v18 strong,.audit-mini-v18 small{display:block}.audit-mini-v18 strong{font-size:.68rem;text-transform:capitalize}.audit-mini-v18 small{font-size:.56rem;color:#98a2b3}
.admin-mini-stats-v18{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:15px}.admin-mini-stats-v18 article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px}.admin-mini-stats-v18 small,.admin-mini-stats-v18 strong{display:block}.admin-mini-stats-v18 small{font-size:.6rem;color:#667085}.admin-mini-stats-v18 strong{font-size:1.5rem}.approval-queue-v18{margin-bottom:16px}.count-badge-v18{font-size:.65rem;border-radius:999px;padding:6px 10px;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.approval-cards-v18{display:grid;gap:9px}.approval-cards-v18 article{display:flex;align-items:center;gap:12px;border:1px solid #e9edf3;border-radius:13px;padding:12px 14px;background:#fbfcfe}.approval-avatar-v18,.user-cell-v18>span{width:40px;height:40px;border-radius:12px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-weight:850;flex:0 0 auto}.approval-cards-v18 small,.approval-cards-v18 strong,.approval-cards-v18 p{display:block}.approval-cards-v18 small{font-size:.56rem;letter-spacing:.08em;color:#7c3aed;font-weight:800}.approval-cards-v18 strong{font-size:.78rem}.approval-cards-v18 p{font-size:.6rem;color:#667085;margin:2px 0 0}.admin-search-v18{height:38px;border:1px solid #dfe3ea;border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 11px;background:#fff;min-width:280px}.admin-search-v18 i{color:#98a2b3}.admin-search-v18 input{border:0;outline:0;width:100%;font-size:.72rem;background:transparent}.admin-table-v18{font-size:.72rem;margin:0}.admin-table-v18 thead th{font-size:.57rem;letter-spacing:.06em;text-transform:uppercase;color:#667085;border-bottom-color:#e9edf3;white-space:nowrap;padding:11px 10px}.admin-table-v18 td{padding:12px 10px;border-bottom-color:#eef1f5}.user-cell-v18,.course-cell-v18{display:flex;align-items:center;gap:10px}.user-cell-v18 strong,.user-cell-v18 small,.course-cell-v18 strong,.course-cell-v18 small{display:block}.user-cell-v18 strong,.course-cell-v18 strong{font-size:.72rem}.user-cell-v18 small,.course-cell-v18 small{font-size:.58rem;color:#667085}.course-cell-v18>span{width:38px;height:38px;border-radius:11px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;flex:0 0 auto}.role-pill-v18,.status-pill-v18{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:.55rem;font-weight:800;text-transform:uppercase}.role-pill-v18.admin{background:#f3e8ff;color:#7e22ce}.role-pill-v18.lecturer{background:#eef2ff;color:#4338ca}.role-pill-v18.student{background:#eff6ff;color:#1d4ed8}.status-pill-v18.active{background:#ecfdf3;color:#15803d}.status-pill-v18.pending{background:#fffbeb;color:#b45309}.status-pill-v18.rejected,.status-pill-v18.inactive{background:#f1f5f9;color:#64748b}.usage-compact-v18{min-width:130px}.usage-compact-v18 small,.usage-compact-v18 em{display:block;font-size:.56rem;color:#667085}.usage-compact-v18>div{height:4px;background:#eef1f5;border-radius:99px;overflow:hidden;margin:5px 0}.usage-compact-v18>div span{display:block;height:100%;background:#6366f1}.usage-compact-v18 em{font-style:normal;color:#98a2b3}.admin-modal-v18{border:0;border-radius:18px;overflow:hidden}.admin-modal-v18 .modal-header{padding:20px 22px;border-bottom-color:#eef1f5}.admin-modal-v18 .modal-body{padding:22px}.plan-apply-v18{display:flex;gap:10px;border:1px solid #dbe3ff;background:#f8f9ff;border-radius:12px;padding:12px}.plan-apply-v18 span strong,.plan-apply-v18 span small{display:block}.plan-apply-v18 span strong{font-size:.7rem}.plan-apply-v18 span small{font-size:.6rem;color:#667085}.danger-zone-v18{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #fecdd3;background:#fff7f8;border-radius:13px;padding:14px}.danger-zone-v18 strong,.danger-zone-v18 small{display:block}.danger-zone-v18 strong{font-size:.72rem;color:#9f1239}.danger-zone-v18 small{font-size:.6rem;color:#881337}.admin-filter-v18{display:flex;gap:10px;margin-bottom:15px}.admin-filter-v18 .form-select{max-width:190px}.course-monitor-v18{overflow:visible}
.plan-admin-grid-v18{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.plan-admin-card-v18{position:relative}.plan-admin-top{display:flex;justify-content:space-between;align-items:center}.plan-admin-top>div{display:flex;align-items:center;gap:8px}.plan-admin-top small{font-size:.58rem;color:#667085}.plan-users-v18{font-size:.6rem;color:#667085}.plan-admin-card-v18 h2{font-size:1.4rem;font-weight:850;margin:17px 0 6px}.plan-admin-card-v18>p{font-size:.68rem;color:#667085;min-height:42px}.plan-price-admin-v18 strong,.plan-price-admin-v18 small{display:block}.plan-price-admin-v18 strong{font-size:1.55rem}.plan-price-admin-v18 small{font-size:.6rem;color:#98a2b3}.plan-limit-grid-v18{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.plan-limit-grid-v18 span{border:1px solid #e9edf3;border-radius:10px;padding:8px;font-size:.56rem;color:#667085}.plan-limit-grid-v18 b{display:block;color:#101828;font-size:.76rem}.plan-feature-chips-v18{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:15px}.plan-feature-chips-v18 span{font-size:.54rem;border-radius:999px;padding:5px 8px;background:#f2f4f7;color:#98a2b3}.plan-feature-chips-v18 span.on{background:#ecfdf3;color:#15803d}.plan-admin-actions{display:flex;gap:8px}.feature-check-v18{display:block;height:100%;cursor:pointer}.feature-check-v18 input{position:absolute;opacity:0}.feature-check-v18 span{height:100%;border:1px solid #e3e7ee;border-radius:13px;padding:14px;display:block}.feature-check-v18 input:checked+span{border-color:#a5b4fc;background:#f7f7ff;box-shadow:0 0 0 2px rgba(99,102,241,.08)}.feature-check-v18 i{width:36px;height:36px;border-radius:10px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;margin-bottom:10px}.feature-check-v18 strong,.feature-check-v18 small{display:block}.feature-check-v18 strong{font-size:.68rem}.feature-check-v18 small{font-size:.58rem;color:#667085;margin-top:3px}
.admin-content-grid-v18{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:16px}.brand-preview-v18{min-height:160px;border:1px dashed #cfd5df;border-radius:16px;background:#fafbfc;display:grid;place-items:center;align-content:center;margin:12px 0 18px;overflow:hidden;padding:20px}.brand-preview-v18 img{max-width:100%;max-height:110px;object-fit:contain}.brand-preview-v18>span{width:58px;height:58px;border-radius:16px;background:linear-gradient(135deg,#5b5cf0,#7c3aed);color:#fff;display:grid;place-items:center;font-size:1.3rem;margin-bottom:9px}.content-tip-v18{display:flex;gap:10px}.content-tip-v18>i{width:36px;height:36px;border-radius:10px;background:#fffbeb;color:#d97706;display:grid;place-items:center;flex:0 0 auto}.content-tip-v18 strong,.content-tip-v18 p,.content-tip-v18 a{display:block}.content-tip-v18 strong{font-size:.68rem}.content-tip-v18 p{font-size:.6rem;color:#667085;margin:3px 0 6px}.content-tip-v18 a{font-size:.62rem;text-decoration:none}.settings-groups-v18{display:grid;gap:14px}.settings-group-v18{border:1px solid #e6eaf0;border-radius:16px;padding:18px}.settings-group-v18>div:first-child{display:flex;align-items:center;gap:11px;margin-bottom:14px}.settings-group-v18>div:first-child>span{width:40px;height:40px;border-radius:11px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center}.settings-group-v18>div:first-child strong,.settings-group-v18>div:first-child small{display:block}.settings-group-v18>div:first-child strong{font-size:.76rem}.settings-group-v18>div:first-child small{font-size:.6rem;color:#667085}.settings-group-v18.danger{border-color:#fed7aa;background:#fffcf5}.setting-toggle-v18{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #eef1f5;padding:12px 0;cursor:pointer}.setting-toggle-v18 span strong,.setting-toggle-v18 span small{display:block}.setting-toggle-v18 span strong{font-size:.7rem}.setting-toggle-v18 span small{font-size:.59rem;color:#667085}.setting-toggle-v18 input{appearance:none;width:42px;height:23px;border-radius:999px;background:#d0d5dd;position:relative;transition:.2s;flex:0 0 auto}.setting-toggle-v18 input:after{content:"";position:absolute;width:17px;height:17px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.2s;box-shadow:0 1px 4px rgba(0,0,0,.18)}.setting-toggle-v18 input:checked{background:#5b5cf0}.setting-toggle-v18 input:checked:after{left:22px}.audit-code-v18{font-size:.6rem;color:#4338ca;background:#eef2ff;padding:4px 7px;border-radius:7px}.audit-detail-v18{display:block;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.maintenance-page{min-height:100vh;background:radial-gradient(circle at 70% 20%,rgba(99,102,241,.18),transparent 28%),#f8fafc;display:grid;place-items:center;padding:24px}.maintenance-page main{max-width:620px;background:#fff;border:1px solid #e5e9ef;border-radius:24px;padding:42px;text-align:center;box-shadow:0 24px 70px rgba(15,23,42,.1)}.maintenance-page main>span{width:68px;height:68px;border-radius:18px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-size:1.5rem;margin:0 auto 18px}.maintenance-page small{color:#6366f1;font-weight:850;letter-spacing:.13em}.maintenance-page h1{font-weight:850;letter-spacing:-.045em;margin:10px 0}.maintenance-page p{color:#667085}.brand-logo-img{padding:4px;background:#fff!important}.brand-logo-img img{width:100%;height:100%;object-fit:contain;border-radius:8px}.public-logo-image{padding:4px;background:#fff!important}.public-logo-image img{width:100%;height:100%;object-fit:contain;border-radius:8px}.public-announcement-v18{background:#111827;color:#fff}.public-announcement-v18 .container{min-height:38px;display:flex;align-items:center;justify-content:center}.public-announcement-v18 span{display:flex;align-items:center;gap:8px;font-size:.68rem}.public-announcement-v18 i{color:#a5b4fc}.public-announcement-v18 em{font-style:normal;color:#cbd5e1}.pricing-hero-v18{text-align:center}.pricing-grid-dynamic-v18{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:-40px;position:relative}.pricing-card-dynamic-v18{position:relative;background:#fff;border:1px solid #e5e9ef;border-radius:22px;padding:28px;box-shadow:0 14px 40px rgba(15,23,42,.07)}.pricing-card-dynamic-v18.featured{border-color:#a5b4fc;box-shadow:0 20px 50px rgba(79,70,229,.14);transform:translateY(-10px)}.pricing-recommended-v18{position:absolute;top:-13px;left:24px;background:#5b5cf0;color:#fff;border-radius:999px;padding:6px 10px;font-size:.55rem;font-weight:850;letter-spacing:.08em}.pricing-card-dynamic-v18>small{font-size:.62rem;color:#6366f1;font-weight:800}.pricing-card-dynamic-v18 h2{font-size:1.55rem;font-weight:850;margin:8px 0}.pricing-card-dynamic-v18>p{font-size:.7rem;color:#667085;min-height:44px}.pricing-number-v18{margin:18px 0}.pricing-number-v18 strong,.pricing-number-v18 span{display:block}.pricing-number-v18 strong{font-size:2rem;letter-spacing:-.04em}.pricing-number-v18 span{font-size:.6rem;color:#98a2b3}.pricing-limits-public-v18{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.pricing-limits-public-v18 span{background:#f8fafc;border:1px solid #edf0f4;border-radius:10px;padding:9px;font-size:.56rem;color:#667085}.pricing-limits-public-v18 b{display:block;color:#111827;font-size:.75rem}.pricing-card-dynamic-v18 ul{list-style:none;padding:0;margin:17px 0;display:grid;gap:9px}.pricing-card-dynamic-v18 li{font-size:.66rem;color:#475467;display:flex;gap:8px}.pricing-card-dynamic-v18 li i{color:#16a34a}.pricing-public-v18{padding:0 0 90px;background:#f8fafc}.pricing-note-v18{display:flex;gap:12px;align-items:flex-start;margin-top:26px;border:1px solid #dbe3ff;background:#fff;border-radius:14px;padding:16px}.pricing-note-v18>i{color:#4f46e5}.pricing-note-v18 strong,.pricing-note-v18 p{display:block}.pricing-note-v18 strong{font-size:.7rem}.pricing-note-v18 p{font-size:.62rem;color:#667085;margin:3px 0}.pricing-cta-v18{padding:65px 0;background:linear-gradient(135deg,#0b1220,#1e1b4b);color:#fff}.pricing-cta-v18 .container{display:flex;align-items:center;justify-content:space-between;gap:25px}.pricing-cta-v18 span{font-size:.65rem;color:#a5b4fc;font-weight:850;letter-spacing:.12em}.pricing-cta-v18 h2{font-weight:850;letter-spacing:-.04em;margin:7px 0}.pricing-cta-v18 p{color:#cbd5e1;margin:0}
@media(max-width:1250px){.admin-stat-grid-v18{grid-template-columns:repeat(3,1fr)}.plan-admin-grid-v18{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.admin-dashboard-grid-v18,.admin-content-grid-v18{grid-template-columns:1fr}.admin-hero-v18{align-items:flex-start}.admin-health-ring{display:none}.pricing-grid-dynamic-v18{grid-template-columns:1fr;margin-top:-20px}.pricing-card-dynamic-v18.featured{transform:none}.pricing-cta-v18 .container{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.admin-page-head-v18{align-items:flex-start;flex-direction:column}.admin-stat-grid-v18{grid-template-columns:1fr 1fr}.admin-mini-stats-v18{grid-template-columns:repeat(2,1fr)}.approval-cards-v18 article{align-items:flex-start;flex-wrap:wrap}.admin-search-v18{min-width:0;width:100%}.admin-filter-v18{flex-direction:column}.admin-filter-v18 .form-select{max-width:none}.plan-admin-grid-v18{grid-template-columns:1fr}.admin-quick-grid-v18{grid-template-columns:1fr}.public-announcement-v18 span{flex-wrap:wrap;justify-content:center;padding:8px 0}.pricing-cta-v18{padding:45px 0}}

/* v18 global platform announcement */
.app-announcement-v18{padding:12px 24px 0}.app-announcement-v18>div{display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid rgba(99,102,241,.18);background:linear-gradient(135deg,rgba(99,102,241,.08),rgba(14,165,233,.05));border-radius:14px;color:#334155;font-size:.9rem}.app-announcement-v18 i{color:#4f46e5}.app-announcement-v18 strong{color:#111827}.app-announcement-v18 span{color:#64748b}

/* NgodingLab v19 — course catalog & pricing capacity */
.course-showcase-v19{background:#f8fafc}.course-template-grid-v19{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.course-template-grid-v19 article{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid #e7eaf0;border-radius:18px;padding:19px;box-shadow:0 10px 28px rgba(15,23,42,.045);transition:.2s}.course-template-grid-v19 article:hover{transform:translateY(-3px);border-color:#c7d2fe;box-shadow:0 16px 38px rgba(79,70,229,.08)}.course-template-grid-v19 article>span{width:44px;height:44px;border-radius:13px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;flex:0 0 auto;font-size:1.05rem}.course-template-grid-v19 small{display:block;font-size:.53rem;font-weight:850;letter-spacing:.08em;color:#6366f1;margin-bottom:5px}.course-template-grid-v19 h3{font-size:.84rem;font-weight:820;margin:0 0 5px}.course-template-grid-v19 p{font-size:.62rem;line-height:1.55;color:#667085;margin:0}.course-template-note-v19{display:flex;gap:12px;align-items:flex-start;margin-top:18px;background:#fff;border:1px dashed #cbd5e1;border-radius:15px;padding:15px}.course-template-note-v19>i{width:36px;height:36px;border-radius:10px;background:#fffbeb;color:#d97706;display:grid;place-items:center}.course-template-note-v19 strong,.course-template-note-v19 p{display:block}.course-template-note-v19 strong{font-size:.68rem}.course-template-note-v19 p{font-size:.6rem;color:#667085;margin:3px 0 0}
.pricing-table-intro-v19{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:-38px 0 52px;position:relative;background:#111827;color:#fff;border-radius:18px;padding:18px 22px;box-shadow:0 18px 45px rgba(15,23,42,.14)}.pricing-table-intro-v19 small,.pricing-table-intro-v19 strong{display:block}.pricing-table-intro-v19 small{font-size:.52rem;letter-spacing:.12em;color:#a5b4fc;font-weight:850}.pricing-table-intro-v19 strong{font-size:.78rem;margin-top:3px}.pricing-table-intro-v19>span{font-size:.6rem;color:#cbd5e1}.pricing-table-intro-v19>span i{color:#86efac;margin-right:5px}.pricing-grid-v19{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}.pricing-grid-v19 .pricing-card-dynamic-v18{display:flex;flex-direction:column}.pricing-grid-v19 .pricing-card-dynamic-v18 ul{flex:1}.pricing-core-limits-v19{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:17px 0}.pricing-core-limits-v19 span{background:#f8fafc;border:1px solid #edf0f4;border-radius:11px;padding:10px 7px;text-align:center}.pricing-core-limits-v19 i{display:block;color:#6366f1;font-size:.86rem;margin-bottom:4px}.pricing-core-limits-v19 b,.pricing-core-limits-v19 em{display:block}.pricing-core-limits-v19 b{font-size:.74rem;color:#111827}.pricing-core-limits-v19 em{font-style:normal;font-size:.49rem;color:#667085;margin-top:2px}.pricing-definition-v19{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}.pricing-definition-v19 article{display:flex;gap:11px;background:#fff;border:1px solid #e7eaf0;border-radius:14px;padding:15px}.pricing-definition-v19 article>i{width:34px;height:34px;border-radius:9px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;flex:0 0 auto}.pricing-definition-v19 strong{font-size:.64rem}.pricing-definition-v19 p{font-size:.58rem;color:#667085;line-height:1.5;margin:3px 0 0}.plan-admin-grid-v19{grid-template-columns:repeat(3,minmax(0,1fr))}.plan-core-grid-v19{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:14px 0}.plan-core-grid-v19 span{background:#f8fafc;border:1px solid #edf0f4;border-radius:10px;padding:8px;text-align:center;font-size:.52rem;color:#667085}.plan-core-grid-v19 b{display:block;font-size:.78rem;color:#111827}.plan-technical-v19{display:flex;flex-wrap:wrap;gap:6px;margin:-3px 0 13px}.plan-technical-v19 span{font-size:.51rem;color:#667085;background:#f2f4f7;border-radius:999px;padding:4px 7px}
@media(max-width:1000px){.course-template-grid-v19,.pricing-grid-v19,.pricing-definition-v19,.plan-admin-grid-v19{grid-template-columns:1fr}.pricing-table-intro-v19{margin:-20px 0 30px;align-items:flex-start;flex-direction:column}.pricing-core-limits-v19{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.course-template-grid-v19{grid-template-columns:1fr}.pricing-core-limits-v19{grid-template-columns:1fr}.course-template-grid-v19 article{padding:15px}}


/* v19 lecturer plan usage */
.plan-usage-v19{margin:0 0 24px;padding:24px;border:1px solid #e9edf5;border-radius:24px;background:linear-gradient(135deg,#fff 0%,#f8faff 100%)}
.plan-usage-head-v19{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.plan-usage-head-v19 h2{margin:4px 0 6px}.plan-usage-head-v19 p{margin:0;color:#6b7280}
.plan-usage-grid-v19{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.plan-usage-grid-v19 article{padding:18px;border:1px solid #e8ecf4;border-radius:18px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}.plan-usage-grid-v19 article span{display:flex;align-items:center;gap:8px;color:#64748b;font-size:.9rem;font-weight:700}.plan-usage-grid-v19 article span i{font-size:1.05rem;color:#4f46e5}.plan-usage-grid-v19 article strong{font-size:1.45rem;color:#172033;white-space:nowrap}.plan-usage-grid-v19 article strong small{font-size:.82rem;color:#94a3b8;font-weight:700}
@media(max-width:767.98px){.plan-usage-head-v19{flex-direction:column}.plan-usage-grid-v19{grid-template-columns:1fr}.plan-usage-grid-v19 article{padding:15px}}

/* =========================================================
   NgodingLab V1 — Curriculum Platform
   ========================================================= */
:root{--v1-ink:#111827;--v1-muted:#667085;--v1-line:#e6eaf0;--v1-primary:#5b5cf0;--v1-primary-2:#7c3aed;--v1-soft:#f7f8fc;--v1-success:#16a34a}
.landing-v1{background:#fff;color:var(--v1-ink)}
.hero-v1{padding:86px 0 72px;background:radial-gradient(circle at 82% 14%,rgba(99,102,241,.12),transparent 34%),linear-gradient(180deg,#fff 0%,#fafbff 100%);overflow:hidden}
.hero-kicker-v1,.section-kicker-v1{display:inline-flex;align-items:center;gap:8px;color:#5758dc;font-size:.66rem;font-weight:900;letter-spacing:.13em}.hero-kicker-v1{padding:8px 12px;border:1px solid #dfe2ff;border-radius:999px;background:#fff;margin-bottom:22px}.hero-v1 h1{font-size:clamp(2.7rem,5vw,5rem);line-height:.98;letter-spacing:-.065em;font-weight:900;margin:0}.hero-v1 h1 span{color:#5b5cf0}.hero-lead-v1{font-size:1.06rem;line-height:1.75;color:#5f6b7a;max-width:670px;margin:25px 0}.hero-actions-v1{display:flex;flex-wrap:wrap;gap:10px}.hero-trust-v1{display:flex;flex-wrap:wrap;gap:18px;margin-top:25px;font-size:.72rem;color:#52606d}.hero-trust-v1 i{color:#22c55e;margin-right:5px}
.hero-product-v1{position:relative;padding:18px}.product-window-v1{background:#fff;border:1px solid #e5e7eb;border-radius:24px;box-shadow:0 28px 80px rgba(15,23,42,.14);overflow:hidden;transform:rotate(1deg)}.product-top-v1{height:42px;background:#f8fafc;border-bottom:1px solid #edf0f4;display:flex;align-items:center;padding:0 15px;gap:6px}.product-top-v1>span{width:8px;height:8px;border-radius:50%;background:#d0d5dd}.product-top-v1 b{margin-left:auto;font-size:.54rem;color:#64748b}.product-content-v1{display:grid;grid-template-columns:54px 1fr;min-height:410px}.product-content-v1 aside{background:#121827;color:#94a3b8;padding:13px 9px;display:flex;align-items:center;flex-direction:column;gap:13px}.product-content-v1 aside>i{width:32px;height:32px;display:grid;place-items:center;border-radius:9px}.product-content-v1 aside>i.active{background:#6366f1;color:#fff}.product-logo-v1{width:34px;height:34px;border-radius:10px;background:#fff;color:#4f46e5;display:grid;place-items:center;margin-bottom:7px}.product-content-v1 section{padding:23px}.product-course-head-v1{display:flex;justify-content:space-between;gap:15px}.product-course-head-v1 small{font-size:.5rem;color:#6366f1;font-weight:900;letter-spacing:.1em}.product-course-head-v1 h3{font-size:1.05rem;font-weight:850;margin:5px 0}.product-course-head-v1 p{font-size:.57rem;color:#64748b;margin:0}.product-course-head-v1>span{font-size:.47rem;font-weight:900;color:#4338ca;background:#eef2ff;border-radius:999px;height:max-content;padding:6px 9px}.product-insight-v1{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.product-insight-v1 article{border:1px solid #edf0f4;border-radius:12px;padding:10px;background:#fbfcfe}.product-insight-v1 small,.product-insight-v1 strong,.product-insight-v1 em{display:block}.product-insight-v1 small{font-size:.42rem;color:#98a2b3;font-weight:850}.product-insight-v1 strong{font-size:1.2rem}.product-insight-v1 em{font-size:.43rem;color:#667085;font-style:normal}.product-path-v1{display:grid;gap:8px}.product-path-v1 article{display:flex;align-items:center;gap:9px;border:1px solid #edf0f4;border-radius:11px;padding:9px}.product-path-v1 article>span{width:27px;height:27px;border-radius:8px;background:#f2f4f7;display:grid;place-items:center;color:#667085}.product-path-v1 article.done>span{background:#ecfdf3;color:#16a34a}.product-path-v1 article.active{border-color:#c7d2fe;background:#f8f9ff}.product-path-v1 article.active>span{background:#6366f1;color:#fff}.product-path-v1 small,.product-path-v1 strong{display:block}.product-path-v1 small{font-size:.4rem;color:#98a2b3;font-weight:850}.product-path-v1 strong{font-size:.58rem}.product-path-v1 article>b{font-size:.48rem;color:#6366f1;margin-left:auto}.floating-guide-v1{position:absolute;right:-12px;bottom:-10px;background:#111827;color:#fff;border-radius:14px;padding:12px 15px;box-shadow:0 15px 35px rgba(15,23,42,.22);display:flex;align-items:center;gap:10px}.floating-guide-v1>i{width:34px;height:34px;border-radius:10px;background:#6366f1;display:grid;place-items:center}.floating-guide-v1 small,.floating-guide-v1 strong{display:block}.floating-guide-v1 small{font-size:.43rem;color:#a5b4fc}.floating-guide-v1 strong{font-size:.65rem}
.value-strip-v1{border-top:1px solid #eef0f4;border-bottom:1px solid #eef0f4;background:#fff}.value-strip-v1 .container{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:20px}.value-strip-v1 span{font-size:.78rem}.value-strip-v1> .container>div{display:flex;gap:15px;align-items:center;color:#64748b;font-size:.62rem}.value-strip-v1 i{color:#6366f1}
.section-v1{padding:92px 0}.section-title-v1{max-width:760px;margin-bottom:38px}.section-title-v1>span{font-size:.62rem;font-weight:900;letter-spacing:.13em;color:#6366f1}.section-title-v1 h2,.curriculum-detail-v1 h2,.dark-section-v1 h2{font-size:clamp(2rem,4vw,3.25rem);font-weight:900;letter-spacing:-.055em;margin:8px 0 12px}.section-title-v1 p,.curriculum-detail-v1 p,.dark-section-v1 p{color:#667085;line-height:1.7}.flow-cards-v1{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:14px}.flow-cards-v1>article{position:relative;border:1px solid var(--v1-line);border-radius:20px;padding:22px;min-height:195px}.flow-cards-v1>article>b{position:absolute;right:16px;top:13px;color:#d0d5dd;font-size:1.5rem}.flow-cards-v1 article>span{width:44px;height:44px;border-radius:13px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-size:1.1rem}.flow-cards-v1 h3{font-size:.92rem;font-weight:850;margin:18px 0 7px}.flow-cards-v1 p{font-size:.68rem;line-height:1.6;color:#667085;margin:0}.flow-cards-v1>i{color:#cbd5e1}
.course-library-v1{background:#f8fafc}.master-course-grid-v1{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.master-course-grid-v1 article{background:#fff;border:1px solid #e6eaf0;border-radius:20px;padding:22px;box-shadow:0 12px 35px rgba(15,23,42,.04);transition:.2s}.master-course-grid-v1 article:hover{transform:translateY(-4px);border-color:#c7d2fe;box-shadow:0 18px 40px rgba(79,70,229,.08)}.master-course-icon-v1{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#eef2ff,#f5f3ff);color:#5b5cf0;display:grid;place-items:center;font-size:1.15rem;margin-bottom:16px}.master-course-badges-v1{display:flex;flex-wrap:wrap;gap:5px}.master-course-badges-v1 span{font-size:.5rem;color:#475467;background:#f2f4f7;padding:5px 7px;border-radius:999px}.master-course-grid-v1 h3{font-size:1rem;font-weight:850;margin:13px 0 7px}.master-course-grid-v1 p{font-size:.66rem;line-height:1.65;color:#667085;min-height:66px}.master-course-ready-v1{border-top:1px solid #eef0f4;padding-top:12px;margin-top:14px;color:#16a34a;font-size:.56rem;font-weight:700}.master-course-ready-v1 i{margin-right:4px}
.check-list-v1{list-style:none;padding:0;margin:25px 0;display:grid;gap:12px}.check-list-v1 li{display:flex;gap:10px;align-items:center;font-size:.78rem;font-weight:650}.check-list-v1 i{width:25px;height:25px;border-radius:8px;background:#ecfdf3;color:#16a34a;display:grid;place-items:center}.semester-map-v1{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.semester-map-v1>div{border:1px solid #e7eaf0;border-radius:13px;padding:12px;background:#fff}.semester-map-v1>div.exam{background:#111827;color:#fff;border-color:#111827}.semester-map-v1 span,.semester-map-v1 strong,.semester-map-v1 small{display:block}.semester-map-v1 span{font-size:.48rem;font-weight:900;color:#6366f1}.semester-map-v1 .exam span{color:#a5b4fc}.semester-map-v1 strong{font-size:.61rem;margin:4px 0}.semester-map-v1 small{font-size:.46rem;color:#98a2b3}.semester-map-v1 .exam small{color:#cbd5e1}
.dark-section-v1{background:linear-gradient(135deg,#0c1220,#17163a);color:#fff}.section-kicker-v1.light{color:#a5b4fc}.dark-section-v1 p{color:#cbd5e1}.lab-points-v1{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.lab-points-v1 span{border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);padding:8px 10px;border-radius:999px;font-size:.58rem}.lab-points-v1 i{color:#a5b4fc;margin-right:4px}.code-lab-window-v1{border:1px solid rgba(255,255,255,.13);border-radius:20px;background:#111827;box-shadow:0 24px 70px rgba(0,0,0,.3);overflow:hidden}.lab-tabs-v1{height:46px;background:#0b1020;display:flex;align-items:end;padding:0 12px}.lab-tabs-v1 span{padding:10px 12px;font-size:.53rem;color:#94a3b8}.lab-tabs-v1 span.active{background:#1f2937;color:#fff;border-radius:8px 8px 0 0}.lab-tabs-v1 b{margin-left:auto;align-self:center;color:#86efac;font-size:.55rem}.lab-body-v1{display:grid;grid-template-columns:185px 1fr;min-height:330px}.lab-instructions-v1{background:#f8fafc;color:#111827;padding:20px}.lab-instructions-v1 small{font-size:.48rem;color:#6366f1;font-weight:900}.lab-instructions-v1 strong{display:block;font-size:.75rem;margin:5px 0 15px}.lab-instructions-v1 ol{padding-left:18px;font-size:.58rem;color:#667085;line-height:1.8}.lab-body-v1 pre{margin:0;padding:25px;color:#dbeafe;background:#111827;font-size:.7rem;line-height:1.75;overflow:auto}.lab-body-v1 code{color:inherit}
.teacher-guide-card-v1{border:1px solid #e6eaf0;border-radius:22px;background:#fff;box-shadow:0 20px 55px rgba(15,23,42,.07);overflow:hidden}.teacher-guide-card-v1 header{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid #eef0f4}.teacher-guide-card-v1 header>span{width:44px;height:44px;border-radius:13px;background:#eef2ff;color:#5b5cf0;display:grid;place-items:center}.teacher-guide-card-v1 small{font-size:.48rem;color:#6366f1;font-weight:900}.teacher-guide-card-v1 h3{font-size:1rem;font-weight:850;margin:4px 0}.guide-timeline-v1{padding:12px 20px}.guide-timeline-v1 article{display:flex;gap:13px;padding:12px 0;border-bottom:1px dashed #edf0f4}.guide-timeline-v1 article>b{width:36px;height:36px;border-radius:10px;background:#f2f4f7;display:grid;place-items:center;font-size:.65rem}.guide-timeline-v1 strong,.guide-timeline-v1 p{display:block}.guide-timeline-v1 strong{font-size:.66rem}.guide-timeline-v1 p{font-size:.56rem;color:#667085;margin:2px 0}.teacher-guide-card-v1 footer{display:flex;flex-wrap:wrap;gap:6px;padding:14px 20px;background:#f8fafc}.teacher-guide-card-v1 footer span{font-size:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:6px 8px}
.mode-section-v1{background:#f8fafc}.mode-grid-v1{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.mode-grid-v1 article{position:relative;background:#fff;border:1px solid #e6eaf0;border-radius:20px;padding:24px}.mode-grid-v1 article.featured{border:2px solid #6366f1;box-shadow:0 18px 45px rgba(79,70,229,.1)}.mode-grid-v1 article>em{position:absolute;right:15px;top:15px;font-size:.45rem;font-style:normal;background:#6366f1;color:#fff;border-radius:999px;padding:5px 7px;font-weight:900}.mode-grid-v1 article>span{width:43px;height:43px;border-radius:13px;background:#eef2ff;color:#5b5cf0;display:grid;place-items:center}.mode-grid-v1 h3{font-size:.9rem;font-weight:850;margin:17px 0 7px}.mode-grid-v1 p{font-size:.65rem;color:#667085;line-height:1.6;margin:0}.pricing-teaser-v1{background:linear-gradient(135deg,#5557e8,#7c3aed);color:#fff;padding:55px 0}.pricing-teaser-v1 .container{display:flex;justify-content:space-between;align-items:center;gap:30px}.pricing-teaser-v1 span{font-size:.55rem;letter-spacing:.13em;font-weight:900;color:#ddd6fe}.pricing-teaser-v1 h2{font-size:2rem;font-weight:900;letter-spacing:-.04em;margin:5px 0}.pricing-teaser-v1 p{color:#e9e7ff;margin:0}.developer-v1{padding:48px 0}.developer-v1 .container{display:flex;align-items:center;gap:18px}.developer-mark-v1{width:54px;height:54px;border-radius:15px;background:#111827;color:#fff;display:grid;place-items:center;font-size:1.35rem;font-weight:900}.developer-v1 small{font-size:.5rem;color:#6366f1;font-weight:900}.developer-v1 h2{font-size:1.1rem;margin:3px 0}.developer-v1 p{font-size:.62rem;color:#667085;margin:0}.developer-v1 a{margin-left:auto}

/* V1 Admin curriculum editing */
.master-editable-item-v1,.master-assessment-v1{border:1px solid #e8ecf2;border-radius:13px;background:#fff;margin-bottom:8px;overflow:hidden}.master-editable-item-v1>summary,.master-assessment-v1>summary{list-style:none;cursor:pointer;padding:11px 12px;display:flex;align-items:center;gap:10px}.master-editable-item-v1>summary::-webkit-details-marker,.master-assessment-v1>summary::-webkit-details-marker{display:none}.master-editable-item-v1 summary div small,.master-editable-item-v1 summary div strong,.master-editable-item-v1 summary div p,.master-assessment-v1 summary div small,.master-assessment-v1 summary div strong,.master-assessment-v1 summary div p{display:block}.master-editable-item-v1 summary div small,.master-assessment-v1 summary div small{font-size:.5rem;color:#6366f1;font-weight:850}.master-editable-item-v1 summary div strong,.master-assessment-v1 summary div strong{font-size:.67rem}.master-editable-item-v1 summary div p,.master-assessment-v1 summary div p{font-size:.55rem;color:#667085;margin:2px 0}.master-inline-form-v1{padding:14px;background:#f8fafc;border-top:1px solid #e8ecf2}.master-inline-form-v1 label{font-size:.55rem;font-weight:750;color:#475467;margin-bottom:4px}.master-add-actions-v1{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.master-add-actions-v1>details{border:1px dashed #cbd5e1;border-radius:12px;background:#fbfcfe}.master-add-actions-v1>details>summary{cursor:pointer;list-style:none;padding:11px 13px;font-size:.62rem;font-weight:800;color:#4f46e5}.master-add-actions-v1>details>summary::-webkit-details-marker{display:none}.master-assessment-stack-v1{margin-top:10px}

/* V1 account security */
.account-security-v1{display:grid;place-items:center;min-height:calc(100vh - 100px)}.account-security-card-v1{width:min(560px,100%);padding:34px;border-radius:24px}.security-icon-v1{width:56px;height:56px;border-radius:16px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-size:1.25rem;margin-bottom:15px}.account-security-card-v1 h1{font-size:1.75rem;font-weight:900;letter-spacing:-.04em}.account-security-card-v1>p{color:#667085}.password-rule-v1{display:flex;gap:9px;background:#f8fafc;border:1px solid #e7eaf0;border-radius:12px;padding:12px;font-size:.65rem;color:#667085}.account-security-link-v1,.logout-form-v1 button{border:0;background:transparent;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#667085}.account-security-link-v1:hover,.logout-form-v1 button:hover{background:#f2f4f7;color:#111827}

/* V1 student assessment */
.assessment-type-v1{display:flex;align-items:center;gap:6px;font-size:.53rem;font-weight:900;color:#6366f1;letter-spacing:.08em;margin:8px 0}.assessment-type-v1 span{margin-left:auto;background:#eef2ff;border-radius:999px;padding:4px 7px;letter-spacing:0}.rubric-box-v1{border:1px solid #e7eaf0;border-radius:11px;margin:12px 0;background:#fbfcfe}.rubric-box-v1 summary{padding:10px 12px;cursor:pointer;font-size:.61rem;font-weight:800}.rubric-box-v1>div{padding:0 12px 12px;font-size:.6rem;color:#667085;line-height:1.6}.quiz-form-v1{display:grid;gap:12px}.quiz-question-v1{border:1px solid #e6eaf0;border-radius:13px;padding:14px}.quiz-question-v1 legend{display:flex;gap:8px;font-size:.67rem;font-weight:800;margin-bottom:10px}.quiz-question-v1 legend span{width:22px;height:22px;border-radius:7px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;flex:0 0 auto}.quiz-question-v1>div{display:grid;gap:7px}.quiz-question-v1 label{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #edf0f4;border-radius:9px;font-size:.61rem;cursor:pointer}.quiz-question-v1 label:hover{background:#f8fafc}.quiz-question-v1 input{accent-color:#6366f1}

@media(max-width:1100px){.master-course-grid-v1{grid-template-columns:repeat(2,1fr)}.flow-cards-v1{grid-template-columns:1fr 1fr}.flow-cards-v1>i{display:none}.semester-map-v1{grid-template-columns:repeat(4,1fr)}}
@media(max-width:767px){.hero-v1{padding:55px 0}.hero-product-v1{padding:0}.floating-guide-v1{right:5px}.product-content-v1{grid-template-columns:42px 1fr}.product-content-v1 section{padding:14px}.product-insight-v1{grid-template-columns:1fr 1fr 1fr}.value-strip-v1 .container,.pricing-teaser-v1 .container,.developer-v1 .container{align-items:flex-start;flex-direction:column}.value-strip-v1> .container>div{flex-wrap:wrap}.flow-cards-v1,.master-course-grid-v1,.mode-grid-v1,.master-add-actions-v1{grid-template-columns:1fr}.semester-map-v1{grid-template-columns:repeat(2,1fr)}.lab-body-v1{grid-template-columns:1fr}.lab-instructions-v1{display:none}.developer-v1 a{margin-left:0}.section-v1{padding:65px 0}}
/* NgodingLab V1 first-run setup */
.setup-shell-v1{min-height:100vh;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr);background:#f7f9fc}.setup-brand-v1{padding:clamp(42px,7vw,96px);background:linear-gradient(145deg,#122032,#172f48 56%,#0f6a63);color:#fff;display:flex;flex-direction:column}.setup-brand-v1 h1{font-size:clamp(2.3rem,5vw,4.5rem);max-width:760px;line-height:.98;margin:18px 0}.setup-brand-v1 p{max-width:620px;font-size:1.08rem;color:rgba(255,255,255,.72)}.setup-mark-v1{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:1.7rem;margin-bottom:28px}.setup-security-list-v1{display:grid;gap:12px;margin-top:32px}.setup-security-list-v1 span{display:flex;gap:10px;align-items:center;color:rgba(255,255,255,.9)}.setup-form-v1{display:grid;place-items:center;padding:40px}.setup-form-v1>div{width:min(100%,560px)}.setup-form-v1 h2{font-size:2rem;font-weight:800;margin:.45rem 0}.setup-form-v1 .form-control{border-radius:14px;border-color:#d9e0e8;padding:.85rem 1rem}@media(max-width:900px){.setup-shell-v1{grid-template-columns:1fr}.setup-brand-v1{min-height:auto;padding:42px 26px}.setup-form-v1{padding:36px 20px}.setup-brand-v1 h1{font-size:2.6rem}}

/* =========================================================
   NgodingLab v1.1 — readability + self-learning
   ========================================================= */
html{font-size:16px}
body{font-size:1rem;line-height:1.6}
small{font-size:.84rem!important;line-height:1.45}
.eyebrow,.nav-caption,.section-kicker,.section-kicker-v1{font-size:.78rem!important;line-height:1.35;letter-spacing:.11em}
.sidebar-nav a{font-size:.95rem!important;min-height:44px}
.user-copy strong{font-size:.92rem!important}.user-copy small{font-size:.8rem!important}
.app-topbar strong{font-size:1rem}.app-topbar small{font-size:.84rem!important}
.surface-head h2{font-size:1.3rem}.surface-head>a{font-size:.9rem!important}
.page-title p,.course-card p,.course-header p,.article-body,.lesson-header p,.self-learning-page p{font-size:1rem}
.course-card-meta span,.course-card-foot,.course-tags span,.compact-course small,.compact-course span,.lesson-row small,.lesson-row p,.lesson-nav-list small,.lesson-complete small,.clean-table thead th{font-size:.82rem!important}
.compact-course strong,.lesson-row strong,.lesson-nav-list strong{font-size:.94rem!important}
.btn,.form-control,.form-select,.form-label{font-size:.95rem}
.table{font-size:.94rem}.table td,.table th{vertical-align:middle}
.studio-app .studio-topbar,.studio-app .explorer-title,.studio-app .preview-toolbar,.studio-app .editor-statusbar{font-size:.78rem!important}
.studio-app .editor-statusbar{min-height:30px;height:auto;padding-block:5px}
.simple-code-editor,.fallback-code-editor,.inline-lab textarea{font-size:15px!important;line-height:1.7!important}

.self-learning-page{display:grid;gap:22px}
.self-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:38px 40px;border-radius:24px;color:#fff;background:linear-gradient(125deg,#111827,#1d4ed8 72%,#4f46e5)}
.self-hero h1{font-size:clamp(2rem,4vw,3.2rem);font-weight:850;letter-spacing:-.045em;margin:.35rem 0 .65rem}.self-hero p{max-width:760px;color:#dbeafe;margin:0}.self-hero-badge{min-width:190px;padding:22px;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);display:grid;place-items:center;text-align:center}.self-hero-badge i{font-size:2rem}.self-hero-badge strong,.self-hero-badge small{display:block}
.self-info-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.self-info-strip span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:10px 14px;border:1px solid var(--line);border-radius:13px;background:#fff;font-weight:700;color:#475569}.self-info-strip i{color:var(--primary)}
.self-section-head{align-items:center}.self-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.self-course-card{display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.04)}.self-course-card h3{font-size:1.28rem;font-weight:800;margin:0}.self-course-card p{color:var(--muted);margin:0;flex:1}.self-course-top{display:flex;align-items:center;justify-content:space-between}.self-course-top>span{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--soft);color:var(--primary);font-size:1.35rem}.self-course-top em{font-style:normal;font-size:.82rem;font-weight:800;padding:6px 9px;border-radius:999px;background:#f8fafc;color:#64748b}.self-course-meta{display:flex;flex-wrap:wrap;gap:8px}.self-course-meta span,.self-course-tags span{font-size:.84rem;padding:6px 9px;border-radius:8px;background:#f8fafc;color:#475569}.self-progress>div:first-child{display:flex;justify-content:space-between;font-size:.9rem;margin-bottom:7px}.self-progress .progress{height:8px}
.self-course-header{display:flex;align-items:center;gap:20px;padding:28px;border:1px solid var(--line);border-radius:20px;background:#fff}.self-course-icon{width:72px;height:72px;border-radius:18px;display:grid;place-items:center;background:var(--soft);color:var(--primary);font-size:1.7rem}.self-course-header h1{font-size:2rem;font-weight:850;margin:.3rem 0}.self-course-tags{display:flex;gap:7px;flex-wrap:wrap}.self-progress-ring{width:100px;height:100px;border-radius:50%;display:grid;place-items:center;align-content:center;background:conic-gradient(var(--primary) 0 72%,#eef2f7 72%);border:8px solid #fff;box-shadow:0 0 0 1px var(--line)}.self-progress-ring strong{font-size:1.35rem}.self-progress-ring small{color:var(--muted)}
.self-next{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-radius:18px;background:linear-gradient(120deg,#312e81,#4f46e5);color:#fff}.self-next h2{font-size:1.4rem;font-weight:800;margin:.2rem 0}.self-next p{color:#e0e7ff;margin:0}
.self-meeting-list{display:grid;gap:16px}.self-meeting{padding:0;overflow:hidden}.self-meeting>header{display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.self-meeting>header>span{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:#eef2ff;color:var(--primary);font-weight:900}.self-meeting h2{font-size:1.16rem;margin:.15rem 0}.self-meeting header p{margin:0;color:var(--muted)}.self-activity-list>a{display:grid;grid-template-columns:44px 1fr 18px;gap:13px;align-items:center;padding:16px 22px;text-decoration:none;border-bottom:1px solid #eef1f5}.self-activity-list>a:last-child{border-bottom:0}.self-activity-list>a:hover{background:#f8fafc}.self-activity-list>a>span{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:#f1f5f9;color:#64748b}.self-activity-list>a.done>span{background:#dcfce7;color:#16a34a}.self-activity-list strong{font-size:.98rem}.self-activity-list p{font-size:.88rem!important;color:var(--muted);margin:2px 0 0}
.self-mode-label{display:flex;align-items:center;gap:10px;padding:14px;border-radius:12px;background:#eef2ff;color:#3730a3;margin-bottom:14px}.self-mode-label>i{font-size:1.25rem}.self-mode-label strong,.self-mode-label small{display:block}.self-limit-note{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;margin-bottom:14px;border:1px solid #bfdbfe;border-radius:14px;background:#eff6ff;color:#1e3a8a}.self-limit-note i{font-size:1.2rem;margin-top:2px}.self-limit-note strong,.self-limit-note span{display:block}.self-limit-note span{color:#475569;margin-top:2px}.self-dashboard-card{margin-top:16px}.self-dashboard-empty{display:grid;grid-template-columns:54px 1fr auto;gap:14px;align-items:center;padding-top:18px}.self-dashboard-empty>span{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:#eef2ff;color:var(--primary);font-size:1.4rem}.self-dashboard-empty p{margin:3px 0 0;color:var(--muted)}
.self-public-v1{padding-top:30px}.self-public-card{display:grid;grid-template-columns:1fr 250px;gap:30px;align-items:center;padding:42px;border-radius:26px;background:linear-gradient(135deg,#eef2ff,#fff);border:1px solid #dbe4ff}.self-public-card h2{font-size:clamp(2rem,3.6vw,3rem);font-weight:850;letter-spacing:-.04em}.self-public-card p{font-size:1.05rem;color:#475569}.self-public-points{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.self-public-points span{display:inline-flex;gap:7px;align-items:center;padding:8px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:.88rem}.self-public-points .bi-check-circle-fill{color:#16a34a}.self-public-points .bi-x-circle{color:#64748b}.self-public-action{display:grid;place-items:center;text-align:center;gap:8px;padding:28px;border-radius:20px;background:#111827;color:#fff}.self-public-action>span{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:#312e81;font-size:1.8rem}.self-public-action strong{font-size:1.2rem}.self-public-action small{color:#cbd5e1;margin-bottom:8px}

@media(max-width:1100px){.self-course-grid{grid-template-columns:repeat(2,1fr)}.self-info-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){html{font-size:16px}.self-hero,.self-course-header,.self-next{align-items:flex-start;flex-direction:column;padding:26px 22px}.self-hero-badge{width:100%}.self-course-grid{grid-template-columns:1fr}.self-info-strip{grid-template-columns:1fr}.self-public-card{grid-template-columns:1fr;padding:28px 22px}.self-dashboard-empty{grid-template-columns:48px 1fr}.self-dashboard-empty .btn{grid-column:1/-1}.self-meeting>header{grid-template-columns:48px 1fr}.self-meeting>header>strong{grid-column:2}.self-progress-ring{width:84px;height:84px}}
/* Readability floor: metadata remains compact, but never micro-sized. */
p{font-size:.95rem;line-height:1.6}
em{font-size:.84rem!important}
.editor-shortcuts kbd,.preview-toolbar>div span,.preview-toolbar select,.browser-chrome>div,.console-tab,.console-bar>button,.console-line,.console-context,.workspace-state,.tree-head,.tree-tip code,.preview-addressbar,.preview-readonly-badge,.modal-kicker,.role-pill-v18,.status-pill-v18,.moderation-pill,.course-level-chip,.available-chip,.locked-chip,.assessment-type-v1,.master-inline-form-v1 label,.plan-technical-v19 span,.pricing-core-limits-v19 b,.pricing-core-limits-v19 em,.plan-core-grid-v19 span,.pricing-table-intro-v19 small{font-size:.8rem!important;line-height:1.4}


/* NgodingLab v1.1 — public/readability normalization */
.public-links-v16 a,.hero-proof-v16>span:first-child,.hero-trust-v16,.brand-strip-v16 .container>span,.brand-strip-v16 .container>div,
.section-head-v16>span,.section-kicker,.section-kicker-v1,.master-course-badges-v1 span,.master-course-ready-v1,
.check-list-v1 li,.lab-points-v1 span,.lab-tabs-v1 span,.lab-tabs-v1 b,.lab-instructions-v1 small,.lab-instructions-v1 ol,
.teacher-guide-card-v1 small,.guide-timeline-v1 strong,.guide-timeline-v1 p,.teacher-guide-card-v1 footer span,
.mode-grid-v1 article>em,.mode-grid-v1 p,.pricing-teaser-v1 span,.developer-v1 small,.developer-v1 p,
.master-editable-item-v1 summary div small,.master-editable-item-v1 summary div strong,.master-editable-item-v1 summary div p,
.master-assessment-v1 summary div small,.master-assessment-v1 summary div strong,.master-assessment-v1 summary div p,
.master-inline-form-v1 label,.master-add-actions-v1>details>summary,.password-rule-v1,.assessment-type-v1,
.rubric-box-v1 summary,.rubric-box-v1>div,.quiz-question-v1 legend,.quiz-question-v1 label,
.preview-top-v16,.preview-welcome-v16 p,.preview-cards-v16 small,.preview-request-v16 b,.preview-request-v16 small,
.preview-course-v16 b,.preview-course-v16 small,.preview-request-v16 button,.student-avatar{
  font-size:.82rem!important;line-height:1.45!important;
}
.master-course-grid-v1 p,.developer-v1 p,.mode-grid-v1 p{font-size:.94rem!important;line-height:1.65!important}
.master-course-grid-v1 h3,.teacher-guide-card-v1 h3,.mode-grid-v1 h3,.developer-v1 h2{font-size:1.08rem!important}
.semester-map-v1 span,.semester-map-v1 small{font-size:.78rem!important;line-height:1.35!important}
.semester-map-v1 strong{font-size:.88rem!important;line-height:1.35!important}
.lab-body-v1 pre{font-size:.86rem!important;line-height:1.7!important}
.preview-welcome-v16 small{font-size:.8rem!important}
.preview-cards-v16 b{font-size:1.15rem!important}
.public-brand-v16 b{font-size:1.08rem!important}.public-brand-v16 small{font-size:.84rem!important}
@media(max-width:575.98px){.landing-v15-nav .btn{font-size:.9rem!important}.landing-v15-hero .lead{font-size:1rem!important}}

/* =========================================================
   NgodingLab v1.2 — Create Class premium wizard
   Fixes missing styles for master-course-choice-v1 and
   learning-mode-grid-v1, with a larger readability floor.
   ========================================================= */
.class-onboarding-v1{
  max-width:1360px;
  padding-top:34px;
  padding-bottom:56px;
}
.class-onboarding-v1 .back-link{
  font-size:.96rem;
  font-weight:750;
  color:#475569;
  margin-bottom:20px;
}
.class-onboarding-v1 .back-link:hover{color:var(--primary)}

.class-setup-hero-v1{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);
  align-items:center;
  gap:34px;
  margin-bottom:24px;
  padding:42px 44px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:28px;
  background:
    radial-gradient(circle at 85% 15%,rgba(99,102,241,.28),transparent 30%),
    radial-gradient(circle at 68% 95%,rgba(14,165,233,.16),transparent 34%),
    linear-gradient(135deg,#0b1220 0%,#172554 58%,#312e81 100%);
  color:#fff;
  box-shadow:0 24px 65px rgba(15,23,42,.16);
}
.class-setup-hero-v1::before{
  content:"";
  position:absolute;
  width:240px;
  height:240px;
  right:-80px;
  top:-90px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:50%;
}
.class-setup-hero-v1::after{
  content:"";
  position:absolute;
  width:150px;
  height:150px;
  right:90px;
  bottom:-90px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
}
.class-setup-hero-v1>div{position:relative;z-index:1}
.class-setup-hero-v1 .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);
  color:#c7d2fe!important;
  font-size:.78rem;
  letter-spacing:.11em;
}
.class-setup-hero-v1 h1{
  max-width:820px;
  margin:13px 0 12px;
  color:#fff;
  font-size:clamp(2.05rem,3.6vw,3.55rem);
  line-height:1.03;
  letter-spacing:-.05em;
  font-weight:900;
}
.class-setup-hero-v1 p{
  max-width:780px;
  margin:0;
  color:#dbe4f0;
  font-size:1rem;
  line-height:1.72;
}
.class-setup-hero-v1 .setup-flow-mini{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  width:100%;
  padding:10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px;
  background:rgba(15,23,42,.36);
  box-shadow:none;
  backdrop-filter:blur(12px);
}
.class-setup-hero-v1 .setup-flow-mini span{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:52px;
  padding:8px 11px;
  border-radius:13px;
  color:#eef2ff;
  font-size:.9rem;
  font-weight:750;
}
.class-setup-hero-v1 .setup-flow-mini span:first-child{background:rgba(255,255,255,.08)}
.class-setup-hero-v1 .setup-flow-mini span b{
  width:30px;
  height:30px;
  border-radius:10px;
  background:#fff;
  color:#4338ca;
  font-size:.82rem;
  font-weight:900;
}
.class-setup-hero-v1 .setup-flow-mini>i{
  width:30px;
  margin-left:22px;
  transform:rotate(90deg);
  color:#64748b;
  text-align:center;
}

.course-setup-form{gap:20px}
.class-onboarding-v1 .setup-section{
  position:relative;
  overflow:hidden;
  padding:32px;
  border:1px solid #e7eaf0;
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 34px rgba(15,23,42,.045);
}
.class-onboarding-v1 .setup-section::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg,#4f46e5,#7c3aed);
  opacity:.75;
}
.class-onboarding-v1 .setup-heading{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:16px;
  align-items:start;
  margin-bottom:24px;
}
.class-onboarding-v1 .setup-heading>span{
  width:48px;
  height:48px;
  border-radius:15px;
  background:linear-gradient(135deg,#111827,#312e81);
  color:#fff;
  font-size:.88rem;
  font-weight:900;
  box-shadow:0 8px 20px rgba(49,46,129,.18);
}
.class-onboarding-v1 .setup-heading h2{
  margin:0;
  font-size:1.45rem;
  line-height:1.2;
  font-weight:900;
  letter-spacing:-.025em;
}
.class-onboarding-v1 .setup-heading p{
  max-width:900px;
  margin:6px 0 0;
  color:#667085;
  font-size:.94rem;
  line-height:1.65;
}

.master-course-picker-v1{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.master-course-choice-v1{
  --course-accent:#4f46e5;
  --course-soft:#eef2ff;
  position:relative;
  display:grid;
  grid-template-columns:62px minmax(0,1fr) 28px;
  gap:16px;
  min-height:218px;
  padding:22px;
  border:1.5px solid #e5e7eb;
  border-radius:20px;
  background:linear-gradient(180deg,#fff 0%,#fcfdff 100%);
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;
}
.master-course-choice-v1:nth-child(2){--course-accent:#0284c7;--course-soft:#e0f2fe}
.master-course-choice-v1:nth-child(3){--course-accent:#7c3aed;--course-soft:#f3e8ff}
.master-course-choice-v1:nth-child(4){--course-accent:#0f766e;--course-soft:#ccfbf1}
.master-course-choice-v1:nth-child(5){--course-accent:#d97706;--course-soft:#fef3c7}
.master-course-choice-v1:nth-child(6){--course-accent:#dc2626;--course-soft:#fee2e2}
.master-course-choice-v1:hover{
  transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--course-accent) 42%,#d9dee8);
  box-shadow:0 18px 40px rgba(15,23,42,.09);
}
.master-course-choice-v1.selected{
  border-color:var(--course-accent);
  background:linear-gradient(145deg,var(--course-soft),#fff 58%);
  box-shadow:0 18px 42px rgba(79,70,229,.10);
}
.master-course-choice-v1:has(input:focus-visible){outline:3px solid rgba(79,70,229,.18);outline-offset:2px}
.master-course-choice-v1 input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.master-course-choice-icon{
  width:60px;
  height:60px;
  border-radius:17px;
  display:grid;
  place-items:center;
  background:var(--course-soft);
  color:var(--course-accent);
  font-size:1.5rem;
  border:1px solid color-mix(in srgb,var(--course-accent) 16%,transparent);
}
.master-course-choice-v1 small,
.master-course-choice-v1 strong,
.master-course-choice-v1 p{display:block}
.master-course-choice-v1 small{
  margin:1px 0 7px;
  color:var(--course-accent);
  font-size:.8rem!important;
  font-weight:850;
  letter-spacing:.015em;
}
.master-course-choice-v1 strong{
  padding-right:20px;
  color:#111827;
  font-size:1.12rem;
  line-height:1.3;
  font-weight:900;
}
.master-course-choice-v1 p{
  min-height:52px;
  margin:8px 0 15px;
  color:#667085;
  font-size:.91rem;
  line-height:1.55;
}
.master-course-choice-v1>div>div{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.master-course-choice-v1>div>div span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 8px;
  border:1px solid #e8ebf0;
  border-radius:9px;
  background:#fff;
  color:#475569;
  font-size:.79rem;
  font-weight:700;
}
.master-course-choice-v1>div>div span i{color:var(--course-accent)}
.master-course-choice-v1 .choice-check{
  color:#cbd5e1;
  font-size:1.25rem;
  transition:.18s ease;
}
.master-course-choice-v1.selected .choice-check{
  color:var(--course-accent);
  transform:scale(1.08);
}
.master-course-choice-v1.selected::after{
  content:"Dipilih";
  position:absolute;
  right:18px;
  top:18px;
  padding:5px 9px;
  border-radius:999px;
  background:var(--course-accent);
  color:#fff;
  font-size:.75rem;
  line-height:1;
  font-weight:850;
  box-shadow:0 6px 14px color-mix(in srgb,var(--course-accent) 25%,transparent);
}
.master-course-choice-v1.selected .choice-check{opacity:0}

.class-onboarding-v1 .form-label{
  margin-bottom:8px;
  color:#344054;
  font-size:.93rem!important;
  font-weight:800;
}
.class-onboarding-v1 .form-control,
.class-onboarding-v1 .form-select{
  min-height:54px;
  border:1px solid #d9dee8;
  border-radius:13px;
  background:#fff;
  color:#111827;
  font-size:.98rem!important;
  box-shadow:0 1px 2px rgba(15,23,42,.02);
}
.class-onboarding-v1 .form-control:focus,
.class-onboarding-v1 .form-select:focus{
  border-color:#818cf8;
  box-shadow:0 0 0 4px rgba(99,102,241,.10);
}
.class-onboarding-v1 .form-control::placeholder{color:#98a2b3}

.learning-mode-grid-v1{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.learning-mode-grid-v1 label{
  position:relative;
  margin:0;
  cursor:pointer;
}
.learning-mode-grid-v1 input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.learning-mode-grid-v1 label>span{
  min-height:152px;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  padding:20px;
  border:1.5px solid #e5e7eb;
  border-radius:18px;
  background:#fff;
  transition:.18s ease;
}
.learning-mode-grid-v1 label>span>i{
  width:44px;
  height:44px;
  border-radius:13px;
  display:grid;
  place-items:center;
  background:#f1f5f9;
  color:#475569;
  font-size:1.25rem;
}
.learning-mode-grid-v1 strong{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  color:#111827;
  font-size:1rem;
  font-weight:900;
}
.learning-mode-grid-v1 strong em{
  padding:4px 7px;
  border-radius:999px;
  background:#dcfce7;
  color:#15803d;
  font-size:.72rem!important;
  font-style:normal;
  font-weight:850;
}
.learning-mode-grid-v1 small{
  color:#667085;
  font-size:.86rem;
  line-height:1.55;
}
.learning-mode-grid-v1 label:has(input:checked)>span{
  border-color:#6366f1;
  background:linear-gradient(145deg,#eef2ff,#fff 72%);
  box-shadow:0 14px 32px rgba(79,70,229,.10);
}
.learning-mode-grid-v1 label:has(input:checked)>span>i{
  background:#4f46e5;
  color:#fff;
}
.learning-mode-grid-v1 label:has(input:focus-visible)>span{
  outline:3px solid rgba(99,102,241,.15);
  outline-offset:2px;
}

.class-onboarding-v1 .setup-section>.mt-4{
  padding-top:20px;
  margin-top:24px!important;
  border-top:1px solid #eef0f4;
}
.class-onboarding-v1 .form-check-label{
  color:#475569;
  font-size:.92rem;
  font-weight:700;
}
.class-onboarding-v1 .form-check-input{width:1.15em;height:1.15em}
.class-onboarding-v1 .btn-lg{
  min-height:52px;
  border-radius:13px;
  font-size:.96rem;
  font-weight:800;
}
.class-onboarding-v1 .btn-primary{
  border-color:#4f46e5;
  background:linear-gradient(135deg,#4f46e5,#6d5dfc);
  box-shadow:0 10px 22px rgba(79,70,229,.22);
}
.class-onboarding-v1 .btn-primary:hover{
  border-color:#4338ca;
  background:linear-gradient(135deg,#4338ca,#5b4cf0);
  transform:translateY(-1px);
}

.curriculum-lock-v1{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 18px;
  border:1px solid #c7d2fe;
  border-radius:15px;
  background:#f8f9ff;
}
.curriculum-lock-v1>span{
  width:46px;
  height:46px;
  border-radius:13px;
  display:grid;
  place-items:center;
  background:#4f46e5;
  color:#fff;
  font-size:1.2rem;
}
.curriculum-lock-v1 small,
.curriculum-lock-v1 strong,
.curriculum-lock-v1 p{display:block}
.curriculum-lock-v1 small{color:#4f46e5;font-size:.78rem;font-weight:900;letter-spacing:.08em}
.curriculum-lock-v1 strong{font-size:1rem;font-weight:900}
.curriculum-lock-v1 p{margin:2px 0 0;color:#667085;font-size:.88rem}

@media(max-width:1120px){
  .class-setup-hero-v1{grid-template-columns:1fr}
  .class-setup-hero-v1 .setup-flow-mini{grid-template-columns:repeat(7,auto);overflow:auto;justify-content:start}
  .class-setup-hero-v1 .setup-flow-mini>i{margin:0;transform:none}
  .master-course-picker-v1{grid-template-columns:1fr}
}
@media(max-width:800px){
  .class-onboarding-v1{padding:20px 16px 40px}
  .class-setup-hero-v1{padding:30px 24px;border-radius:22px}
  .class-setup-hero-v1 h1{font-size:2.1rem}
  .class-onboarding-v1 .setup-section{padding:24px 20px}
  .learning-mode-grid-v1{grid-template-columns:1fr}
  .master-course-choice-v1{grid-template-columns:52px minmax(0,1fr) 20px;padding:18px;min-height:0}
  .master-course-choice-icon{width:50px;height:50px;border-radius:14px;font-size:1.25rem}
  .master-course-choice-v1.selected::after{position:static;grid-column:2;justify-self:start;margin-top:-6px}
}
@media(max-width:560px){
  .class-setup-hero-v1 .setup-flow-mini{display:grid;grid-template-columns:1fr;overflow:visible}
  .class-setup-hero-v1 .setup-flow-mini>i{margin-left:22px;transform:rotate(90deg)}
  .master-course-choice-v1{grid-template-columns:46px minmax(0,1fr)}
  .master-course-choice-v1 .choice-check{display:none}
  .master-course-choice-icon{width:44px;height:44px;border-radius:12px;font-size:1.1rem}
  .master-course-choice-v1 strong{font-size:1.02rem}
  .master-course-choice-v1 p{min-height:0;font-size:.9rem}
  .master-course-choice-v1>div>div span{font-size:.76rem}
  .class-onboarding-v1 .setup-heading{grid-template-columns:42px minmax(0,1fr)}
  .class-onboarding-v1 .setup-heading>span{width:42px;height:42px}
  .class-onboarding-v1 .setup-heading h2{font-size:1.25rem}
}

/* =========================================================
   NgodingLab v1.3 — Master Course & Curriculum Builder UI
   Completes previously missing curriculum CSS and keeps
   administration typography comfortably readable.
   ========================================================= */
.curriculum-admin-v1,
.master-builder-v1{
  --curriculum-primary:#4f46e5;
  --curriculum-primary-dark:#3730a3;
  --curriculum-soft:#eef2ff;
  --curriculum-ink:#111827;
  --curriculum-muted:#667085;
  --curriculum-line:#e5e7eb;
  font-size:16px;
}
.curriculum-admin-v1 small,
.master-builder-v1 small{font-size:.84rem!important;line-height:1.45}
.curriculum-admin-v1 .eyebrow,
.master-builder-v1 .eyebrow{font-size:.8rem!important;letter-spacing:.11em}
.curriculum-admin-v1 .form-label,
.master-builder-v1 .form-label,
.master-builder-v1 label{font-size:.9rem!important;line-height:1.35;font-weight:800;color:#344054}
.curriculum-admin-v1 .form-control,
.curriculum-admin-v1 .form-select,
.master-builder-v1 .form-control,
.master-builder-v1 .form-select{font-size:.96rem!important;min-height:46px;border-color:#d9dee8;border-radius:12px}
.curriculum-admin-v1 textarea.form-control,
.master-builder-v1 textarea.form-control{min-height:auto;line-height:1.55}
.curriculum-admin-v1 .btn,
.master-builder-v1 .btn{font-size:.9rem;font-weight:750;border-radius:10px}

/* Master Course overview hero */
.curriculum-hero-v2{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:32px;
  margin-bottom:28px;
  padding:38px 40px;
  border-radius:26px;
  background:
    radial-gradient(circle at 88% 15%,rgba(129,140,248,.28),transparent 30%),
    radial-gradient(circle at 12% 100%,rgba(59,130,246,.18),transparent 34%),
    linear-gradient(128deg,#0b1220 0%,#172554 58%,#312e81 100%);
  color:#fff;
  box-shadow:0 22px 60px rgba(15,23,42,.16);
}
.curriculum-hero-v2::after{
  content:"";
  position:absolute;
  width:220px;height:220px;
  right:-80px;bottom:-120px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:50%;
  box-shadow:0 0 0 38px rgba(255,255,255,.025),0 0 0 76px rgba(255,255,255,.018);
  pointer-events:none;
}
.curriculum-hero-copy-v2{position:relative;z-index:1;max-width:850px}
.curriculum-hero-v2 .eyebrow{color:#a5b4fc}
.curriculum-hero-v2 h1{margin:.4rem 0 .7rem;font-size:clamp(2rem,3.4vw,3.25rem);line-height:1.05;font-weight:900;letter-spacing:-.05em}
.curriculum-hero-v2 p{margin:0;max-width:760px;color:#cbd5e1;font-size:1rem;line-height:1.7}
.curriculum-hero-stats-v2{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.curriculum-hero-stats-v2 span{display:grid;grid-template-columns:auto auto;gap:3px 8px;align-items:baseline;padding:10px 13px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:rgba(255,255,255,.075);backdrop-filter:blur(8px)}
.curriculum-hero-stats-v2 strong{font-size:1.15rem;font-weight:900;color:#fff}
.curriculum-hero-stats-v2 small{font-size:.81rem!important;color:#cbd5e1}
.curriculum-hero-action-v2{position:relative;z-index:1;min-width:220px;display:grid;justify-items:center;gap:16px}
.curriculum-hero-icon-v2{width:92px;height:92px;border-radius:24px;display:grid;place-items:center;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.15);font-size:2rem;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.curriculum-hero-action-v2 .btn{min-height:48px;padding-inline:18px;box-shadow:0 12px 28px rgba(0,0,0,.16)}

.curriculum-intro-v2{padding:2px 2px 6px;margin-bottom:18px}
.curriculum-intro-v2 h2{margin:.4rem 0 .45rem;font-size:1.55rem;font-weight:900;letter-spacing:-.025em}
.curriculum-intro-v2 p{max-width:880px;font-size:.96rem}
.curriculum-create-panel-v2{border-color:#c7d2fe;background:linear-gradient(180deg,#fff,#fbfcff);box-shadow:0 16px 38px rgba(79,70,229,.07)}
.curriculum-create-panel-v2 h2{font-size:1.18rem!important}

/* Course list */
.curriculum-grid-v1{display:grid;gap:20px}
.curriculum-course-block-v2{position:relative;display:grid;gap:10px}
.curriculum-card-v1{
  position:relative;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 190px;
  gap:22px;
  align-items:center;
  padding:24px!important;
  border-radius:20px!important;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.curriculum-card-v1:hover{transform:translateY(-2px);border-color:#c7d2fe;box-shadow:0 18px 42px rgba(15,23,42,.07)}
.curriculum-icon-v1{width:68px;height:68px;border-radius:19px;display:grid;place-items:center;background:linear-gradient(145deg,#eef2ff,#e0e7ff);color:#4f46e5;font-size:1.65rem;border:1px solid #dbe4ff;box-shadow:0 9px 22px rgba(79,70,229,.10)}
.curriculum-card-v1 h2{margin:8px 0 6px;font-size:1.25rem;font-weight:900;letter-spacing:-.025em;color:#111827}
.curriculum-card-v1 p{max-width:800px;margin:0;color:#667085;font-size:.92rem;line-height:1.6}
.curriculum-card-v1 .badge{font-size:.78rem!important;padding:6px 9px;border:1px solid #e5e7eb;color:#475569!important;background:#f8fafc!important}
.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 9px;border-radius:999px;font-size:.78rem!important;font-weight:850;text-transform:capitalize}
.status-pill.published{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}
.status-pill.draft{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.curriculum-meta-v1{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.curriculum-meta-v1 span{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #e7eaf0;border-radius:9px;background:#fbfcfe;color:#475569;font-size:.82rem;font-weight:700}
.curriculum-meta-v1 i{color:#6366f1}
.curriculum-version-v1{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:16px;border:1px solid #e5e7eb;border-radius:15px;background:linear-gradient(180deg,#fafbff,#f8fafc)}
.curriculum-version-v1 small{color:#667085;font-weight:750}
.curriculum-version-v1 strong{margin-top:2px;font-size:1.15rem;font-weight:900;color:#312e81}
.curriculum-version-v1>span{min-height:20px;color:#667085;font-size:.84rem}
.curriculum-course-block-v2>.surface.p-3{margin:0!important;border-radius:14px!important;background:#fbfcfe;box-shadow:none}
.curriculum-course-block-v2>.surface.p-3 strong{font-size:.9rem}
.curriculum-course-block-v2>.surface.p-3 .btn{font-size:.82rem}
.curriculum-course-block-v2>section.collapse{margin:0!important;border-color:#c7d2fe;background:#fbfcff;box-shadow:0 12px 30px rgba(79,70,229,.05)}

/* Course Version Builder */
.master-builder-v1>.page-title{padding:28px 30px;border:1px solid #dbe4ff;border-radius:22px;background:linear-gradient(135deg,#fff,#f8f9ff);box-shadow:0 10px 30px rgba(15,23,42,.04)}
.master-builder-v1>.page-title h1{font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.1}
.master-builder-v1>.page-title h1 small{display:inline-flex;margin-left:7px;padding:6px 9px;border-radius:9px;background:#eef2ff;color:#4338ca;font-size:.9rem!important;vertical-align:middle;letter-spacing:0}
.master-builder-v1>.page-title p{font-size:.96rem;line-height:1.65}
.version-lock-v1{border-color:#bbf7d0!important;background:linear-gradient(180deg,#f0fdf4,#fff)}

.master-version-summary-v1{display:grid;grid-template-columns:repeat(5,minmax(95px,.55fr)) minmax(260px,1.8fr);gap:0;padding:0!important;overflow:hidden}
.master-version-summary-v1>div{min-height:96px;display:flex;flex-direction:column;justify-content:center;padding:18px 20px;border-right:1px solid #eef0f4}
.master-version-summary-v1>div:last-child{border-right:0}
.master-version-summary-v1 small{color:#667085;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.master-version-summary-v1 strong{margin-top:4px;color:#111827;font-size:1.25rem;font-weight:900}
.master-version-summary-v1 span{margin-top:5px;color:#475569;font-size:.91rem;line-height:1.5}

.master-meeting-stack-v1{display:grid;gap:18px}
.master-meeting-v1{padding:0!important;overflow:hidden;border-radius:20px!important;box-shadow:0 8px 26px rgba(15,23,42,.035)}
.master-meeting-head-v1{display:grid;grid-template-columns:54px minmax(0,1fr);gap:16px;align-items:start;padding:22px 24px;border-bottom:1px solid #eef0f4;background:linear-gradient(180deg,#fff,#fcfdff)}
.meeting-no-v1{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#111827,#312e81);color:#fff;font-size:1rem;font-weight:900;box-shadow:0 8px 18px rgba(15,23,42,.15)}
.master-meeting-head-v1 small{color:#6366f1;font-weight:900;letter-spacing:.07em}
.master-meeting-head-v1 h2{margin:4px 0 5px;font-size:1.23rem;font-weight:900;letter-spacing:-.02em}
.master-meeting-head-v1 p{margin:0 0 10px;color:#667085;font-size:.91rem;line-height:1.55}
.master-meeting-head-v1 .badge{font-size:.78rem!important;padding:6px 8px}

.master-outcome-v1{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:1px solid #eef0f4;background:#fbfcfe}
.master-outcome-v1>div{padding:18px 24px}
.master-outcome-v1>div+div{border-left:1px solid #eef0f4}
.master-outcome-v1 small{display:block;color:#475569;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.master-outcome-v1 p{margin:6px 0 0;color:#344054;font-size:.9rem;line-height:1.6}

.master-builder-v1 .teacher-guide-card-v1{margin:18px 20px;border-radius:14px;box-shadow:none;background:#fffbeb;border-color:#fde68a}
.master-builder-v1 .teacher-guide-card-v1>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}
.master-builder-v1 .teacher-guide-card-v1>summary::-webkit-details-marker{display:none}
.master-builder-v1 .teacher-guide-card-v1>summary>i:first-child{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#fef3c7;color:#b45309}
.master-builder-v1 .teacher-guide-card-v1 summary strong{display:block;font-size:.94rem;font-weight:900;color:#78350f}
.master-builder-v1 .teacher-guide-card-v1 summary small{display:block;color:#92400e;font-size:.82rem!important}
.teacher-guide-content-v1{padding:16px 18px;border-top:1px solid #fde68a;background:#fffdf5;color:#475569;font-size:.91rem;line-height:1.7;white-space:normal}

.master-edit-meeting-v1{margin:16px 20px;border:1px solid #dbe4ff;border-radius:13px;background:#f8f9ff;overflow:hidden}
.master-edit-meeting-v1>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:13px 15px;cursor:pointer;color:#4338ca;font-size:.9rem;font-weight:850}
.master-edit-meeting-v1>summary::-webkit-details-marker{display:none}

.master-activity-stack-v1,.master-assessment-stack-v1{display:grid;gap:9px;padding:0 20px 4px}
.master-activity-v1,.master-assessment-v1{margin:0!important;border:1px solid #e6eaf0!important;border-radius:13px!important;background:#fff;overflow:hidden;box-shadow:none}
.master-activity-v1>summary,.master-assessment-v1>summary{list-style:none;display:grid!important;grid-template-columns:42px minmax(0,1fr) 20px;gap:12px;align-items:center;padding:13px 14px!important;cursor:pointer}
.master-activity-v1>summary::-webkit-details-marker,.master-assessment-v1>summary::-webkit-details-marker{display:none}
.master-activity-v1>summary:hover,.master-assessment-v1>summary:hover{background:#fafbff}
.activity-type-icon,.master-assessment-v1>summary>span:first-child,.master-assessment-v1 article>span:first-child{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:#eef2ff;color:#4f46e5;font-size:1.05rem;flex:0 0 auto}
.master-activity-v1 summary small,.master-assessment-v1 summary small{display:block;font-size:.8rem!important;color:#6366f1!important;font-weight:850!important}
.master-activity-v1 summary strong,.master-assessment-v1 summary strong{display:block;font-size:.94rem!important;color:#111827;font-weight:850}
.master-activity-v1 summary p,.master-assessment-v1 summary p{margin:2px 0 0!important;color:#667085!important;font-size:.86rem!important;line-height:1.45}
.master-activity-v1>article,.master-assessment-v1>article{font-size:.9rem}

.master-inline-form-v1{padding:18px!important;background:#f8fafc!important;border-top:1px solid #e8ecf2}
.master-inline-form-v1 label{display:block;margin-bottom:6px!important;font-size:.86rem!important}
.master-inline-form-v1 .form-control,.master-inline-form-v1 .form-select{background:#fff}
.master-inline-form-v1 .font-monospace{font-size:.88rem!important;line-height:1.6}

.master-add-actions-v1{grid-template-columns:1fr 1fr!important;gap:10px!important;margin:14px 20px 20px!important}
.master-add-actions-v1>details{border:1px dashed #a5b4fc!important;border-radius:13px!important;background:#fafbff!important}
.master-add-actions-v1>details>summary{padding:12px 14px!important;color:#4338ca!important;font-size:.88rem!important}
.master-add-actions-v1>details .master-inline-form-v1{border-top:1px dashed #c7d2fe;background:#fff!important}

.master-builder-v1 .sticky-xl-top.surface{padding:22px!important;border-radius:18px;box-shadow:0 12px 30px rgba(15,23,42,.05)}
.master-builder-v1 .sticky-xl-top.surface h3{font-size:1.12rem!important}
.master-builder-v1 .sticky-xl-top.surface>p{font-size:.9rem!important;line-height:1.6}
.master-builder-v1 .sticky-xl-top.surface .form-check-label{font-size:.88rem!important}

/* Modal/form finishing */
.master-builder-v1~.modal .modal-title{font-size:1.1rem;font-weight:850}
.master-builder-v1~.modal .modal-body{font-size:.94rem;line-height:1.6}

@media(max-width:1200px){
  .curriculum-card-v1{grid-template-columns:64px minmax(0,1fr)}
  .curriculum-version-v1{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px}
  .curriculum-version-v1 .btn{margin-top:0!important}
  .master-version-summary-v1{grid-template-columns:repeat(3,1fr)}
  .master-version-summary-v1>div{border-bottom:1px solid #eef0f4}
}
@media(max-width:900px){
  .curriculum-hero-v2{grid-template-columns:1fr;padding:30px 26px}
  .curriculum-hero-action-v2{justify-items:start;grid-template-columns:auto 1fr;align-items:center}
  .curriculum-hero-icon-v2{width:64px;height:64px;border-radius:18px;font-size:1.5rem}
  .master-outcome-v1{grid-template-columns:1fr}
  .master-outcome-v1>div+div{border-left:0;border-top:1px solid #eef0f4}
}
@media(max-width:760px){
  .curriculum-admin-v1,.master-builder-v1{font-size:16px}
  .curriculum-hero-v2{border-radius:20px;padding:26px 20px}
  .curriculum-hero-v2 h1{font-size:2rem}
  .curriculum-hero-stats-v2{display:grid;grid-template-columns:repeat(3,1fr);width:100%}
  .curriculum-hero-stats-v2 span{grid-template-columns:1fr;text-align:center}
  .curriculum-hero-action-v2{grid-template-columns:1fr;width:100%}
  .curriculum-hero-action-v2 .btn{width:100%}
  .curriculum-card-v1{grid-template-columns:52px minmax(0,1fr);padding:19px!important;gap:13px}
  .curriculum-icon-v1{width:50px;height:50px;border-radius:14px;font-size:1.25rem}
  .curriculum-card-v1 h2{font-size:1.12rem}
  .curriculum-version-v1{grid-template-columns:1fr 1fr;gap:8px}
  .curriculum-version-v1 small,.curriculum-version-v1 strong,.curriculum-version-v1>span{grid-column:1/-1}
  .master-builder-v1>.page-title{padding:22px 20px}
  .master-version-summary-v1{grid-template-columns:1fr 1fr}
  .master-version-summary-v1>div{min-height:82px;padding:14px 16px}
  .master-version-summary-v1>div:last-child{grid-column:1/-1}
  .master-meeting-head-v1{grid-template-columns:46px minmax(0,1fr);padding:18px 17px;gap:12px}
  .meeting-no-v1{width:44px;height:44px;border-radius:13px}
  .master-meeting-head-v1 h2{font-size:1.08rem}
  .master-outcome-v1>div{padding:16px 18px}
  .master-builder-v1 .teacher-guide-card-v1,.master-edit-meeting-v1{margin-inline:14px}
  .master-activity-stack-v1,.master-assessment-stack-v1{padding-inline:14px}
  .master-add-actions-v1{grid-template-columns:1fr!important;margin-inline:14px!important}
}
@media(max-width:480px){
  .curriculum-hero-stats-v2{grid-template-columns:1fr}
  .curriculum-card-v1{grid-template-columns:1fr}
  .curriculum-icon-v1{margin-bottom:2px}
  .curriculum-version-v1{grid-column:1}
  .master-version-summary-v1{grid-template-columns:1fr}
  .master-version-summary-v1>div:last-child{grid-column:1}
  .master-activity-v1>summary,.master-assessment-v1>summary{grid-template-columns:38px minmax(0,1fr)}
  .master-activity-v1>summary>i:last-child,.master-assessment-v1>summary>i:last-child{display:none}
}

/* =========================================================
   NgodingLab v1.3 — UI integration audit fixes
   Styles custom view hooks that previously relied on HTML
   structure alone and raises readability in admin/class pages.
   ========================================================= */

/* Shared readability across application management surfaces */
.admin-page-v18,.user-management-v18,.classes-page-v1,.course-builder-v17,
.assignments-v17,.assignments-v1,.dashboard-v17,.request-dashboard-v17,
.catalog-v17,.student-course-v17,.system-settings-v18,.brand-upload-v18{
  font-size:16px;
}
.admin-page-v18 small,.user-management-v18 small,.classes-page-v1 small,
.course-builder-v17 small,.assignments-v17 small,.dashboard-v17 small,
.catalog-v17 small,.student-course-v17 small{font-size:.82rem!important;line-height:1.45}
.admin-page-v18 .form-label,.user-management-v18 .form-label,.classes-page-v1 .form-label,
.course-builder-v17 .form-label,.assignments-v17 .form-label{font-size:.9rem!important;font-weight:750}

/* Sidebar/admin navigation hook */
.admin-nav a{min-height:43px}
.admin-nav a i{font-size:1.05rem}

/* Instructor class cards */
.classes-page-v1 .page-title h1{font-size:2.15rem}
.instructor-empty-v1{text-align:center;padding:54px 28px!important}
.instructor-empty-v1>span{width:70px;height:70px;margin:0 auto 16px;border-radius:20px;display:grid;place-items:center;background:#eef2ff;color:#4f46e5;font-size:1.8rem}
.instructor-empty-v1 h2{font-size:1.45rem;font-weight:900}
.instructor-empty-v1 p{max-width:650px;margin:8px auto 20px;color:#667085}
.class-card-grid-v1{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.class-card-v1{padding:0!important;overflow:hidden;border-radius:20px!important;box-shadow:0 10px 30px rgba(15,23,42,.04);transition:.18s ease}
.class-card-v1:hover{transform:translateY(-2px);border-color:#c7d2fe;box-shadow:0 18px 42px rgba(15,23,42,.075)}
.class-card-top-v1{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:15px;align-items:start;padding:22px 22px 18px;border-bottom:1px solid #eef1f5}
.class-card-icon-v1{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#eef2ff,#e0e7ff);color:#4f46e5;font-size:1.35rem;border:1px solid #dbe4ff}
.class-card-top-v1 small{color:#6366f1;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.class-card-top-v1 h2{margin:4px 0 3px;font-size:1.2rem;font-weight:900;letter-spacing:-.02em}
.class-card-top-v1 p{margin:0;color:#667085;font-size:.9rem}
.class-card-stats-v1{display:grid;grid-template-columns:repeat(4,1fr);background:#fbfcfe;border-bottom:1px solid #eef1f5}
.class-card-stats-v1>div{padding:15px;text-align:center;border-right:1px solid #eef1f5}
.class-card-stats-v1>div:last-child{border-right:0}
.class-card-stats-v1 strong,.class-card-stats-v1 small{display:block}
.class-card-stats-v1 strong{font-size:1.15rem;font-weight:900;color:#111827}
.class-card-stats-v1 small{color:#667085}
.class-code-row-v1{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 22px}
.class-code-row-v1>span small,.class-code-row-v1>span code{display:block}
.class-code-row-v1>span small{color:#667085;font-weight:750}
.class-code-row-v1 code{margin-top:2px;font-size:.95rem;color:#4338ca;font-weight:900;letter-spacing:.05em}
.class-code-row-v1>div{display:flex;gap:8px}

/* Classroom builder hooks */
.course-builder-v17 .builder-main-copy{min-width:0;max-width:900px}
.curriculum-source-chip-v1{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:8px 11px;border:1px solid rgba(165,180,252,.32);border-radius:10px;background:rgba(255,255,255,.08);color:#dbeafe;font-size:.84rem}
.curriculum-source-chip-v1 i{color:#a5b4fc}.curriculum-source-chip-v1 b{color:#fff}
.class-insight-strip-v1{display:grid;grid-template-columns:repeat(3,minmax(130px,.55fr)) minmax(260px,1.25fr);gap:0;margin-top:16px;border:1px solid #e5e9f0;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 6px 20px rgba(15,23,42,.03)}
.class-insight-strip-v1>div{padding:16px 18px;border-right:1px solid #eef1f5}
.class-insight-strip-v1>div:last-child{border-right:0}
.class-insight-strip-v1 small,.class-insight-strip-v1 strong,.class-insight-strip-v1 span{display:block}
.class-insight-strip-v1 small{color:#667085;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.class-insight-strip-v1 strong{margin:3px 0;font-size:1.35rem;font-weight:900}.class-insight-strip-v1 span{color:#667085;font-size:.84rem}
.attention-mini-v1{background:#fffaf0}.attention-mini-v1 span{margin-top:4px;color:#7c2d12!important}.attention-mini-v1 b{color:#9a3412}
.empty-builder-v17{text-align:center;padding:50px 24px!important}.empty-builder-v17>span{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 14px;border-radius:18px;background:#eef2ff;color:#4f46e5;font-size:1.6rem}.empty-builder-v17 h2{font-size:1.35rem;font-weight:900}.empty-builder-v17 p{max-width:600px;margin:auto;color:#667085}
.meeting-outcome-v1{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.meeting-outcome-v1 small,.meeting-outcome-v1 span{padding:6px 9px;border-radius:8px;background:#f8fafc;border:1px solid #e8ecf2;color:#475569!important;font-size:.8rem!important}.meeting-outcome-v1 small{font-weight:850;color:#4338ca!important}
.teacher-guide-class-v1{margin-top:10px;border:1px solid #fde68a;border-radius:11px;background:#fffbeb;overflow:hidden}.teacher-guide-class-v1 summary{list-style:none;cursor:pointer;padding:9px 11px;color:#92400e;font-weight:800;font-size:.84rem}.teacher-guide-class-v1 summary::-webkit-details-marker{display:none}.teacher-guide-class-v1>div{padding:12px;border-top:1px solid #fde68a;background:#fffdf5;color:#475569;font-size:.87rem;line-height:1.65}
.assignment-editor-v1{border-radius:15px!important;overflow:hidden}

/* Self-learning lesson navigation */
.self-lesson-layout{grid-template-columns:300px minmax(0,1fr)}
.self-lesson-nav{padding:16px;border:1px solid #e5e9f0;border-radius:17px;background:#f8fafc}
.self-lesson-nav .back-link{margin-bottom:12px}
.self-lesson-nav .lesson-path-nav{display:grid;gap:12px}
.self-lesson-nav .lesson-path-group{border:1px solid #e5e9f0;border-radius:12px;background:#fff;overflow:hidden}
.self-lesson-nav .lesson-path-group>header{display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;padding:10px;border-bottom:1px solid #eef1f5;background:#fbfcfe}
.self-lesson-nav .lesson-path-group>header>span{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#eef2ff;color:#4338ca;font-weight:900;font-size:.78rem}
.self-lesson-nav .lesson-path-group header small,.self-lesson-nav .lesson-path-group header strong{display:block}.self-lesson-nav .lesson-path-group header strong{font-size:.85rem}.self-lesson-nav .lesson-path-group header small{font-size:.75rem!important;color:#667085}
.self-lesson-nav .lesson-path-group>div{display:grid}.self-lesson-nav .lesson-path-group a{display:grid;grid-template-columns:18px 1fr;gap:8px;padding:9px 10px;text-decoration:none;border-bottom:1px solid #f2f4f7;color:#475569}.self-lesson-nav .lesson-path-group a:last-child{border-bottom:0}.self-lesson-nav .lesson-path-group a.active{background:#eef2ff;color:#3730a3}.self-lesson-nav .lesson-path-group a strong,.self-lesson-nav .lesson-path-group a small{display:block}.self-lesson-nav .lesson-path-group a strong{font-size:.82rem}.self-lesson-nav .lesson-path-group a small{font-size:.75rem!important;color:#667085}

/* Page wrapper hooks that ensure consistent spacing */
.catalog-v17,.student-course-v17,.assignments-v17,.assignments-v1,.user-management-v18,.dashboard-v17,.request-dashboard-v17{width:100%}
.self-only-aside{min-height:260px}

/* Admin wrappers and panels */
.brand-upload-v18{align-self:start}.system-settings-v18{max-width:1100px}.admin-action-center-v18,.admin-quick-v18{min-height:100%}
.admin-action-list-v18 strong{font-size:.9rem!important}.admin-action-list-v18 small{font-size:.8rem!important}.admin-quick-grid-v18 strong{font-size:.88rem!important}.admin-quick-grid-v18 small{font-size:.78rem!important}
.settings-group-v18>div:first-child strong{font-size:.95rem!important}.settings-group-v18>div:first-child small{font-size:.8rem!important}.setting-toggle-v18 span strong{font-size:.9rem!important}.setting-toggle-v18 span small{font-size:.8rem!important}.content-tip-v18 strong{font-size:.9rem!important}.content-tip-v18 p,.content-tip-v18 a{font-size:.8rem!important}

/* Pricing/about/auth scope hooks */
.pricing-v18,.pricing-v19{font-size:16px}.pricing-card-dynamic-v18>small{font-size:.8rem!important}.pricing-card-dynamic-v18>p{font-size:.9rem!important}.pricing-number-v18 span{font-size:.8rem!important}.pricing-limits-public-v18 span{font-size:.8rem!important}.pricing-limits-public-v18 b{font-size:.92rem!important}.pricing-card-dynamic-v18 li{font-size:.88rem!important}.pricing-note-v18 strong{font-size:.9rem!important}.pricing-note-v18 p{font-size:.84rem!important}
.about-hero-v16 p{font-size:1rem!important;line-height:1.7}
.auth-v16 .auth-v15-panel p,.auth-v16 .auth-v15-form p,.auth-v1 .auth-v15-panel p,.auth-v1 .auth-v15-form p{font-size:.94rem;line-height:1.6}
.auth-v16 .auth-v15-points span,.auth-v1 .auth-v15-points span{font-size:.86rem}

@media(max-width:1100px){
  .class-card-grid-v1{grid-template-columns:1fr}
  .class-insight-strip-v1{grid-template-columns:repeat(2,1fr)}
  .class-insight-strip-v1>div:nth-child(2){border-right:0}
  .class-insight-strip-v1>div{border-bottom:1px solid #eef1f5}
  .self-lesson-layout{grid-template-columns:1fr}
  .self-lesson-nav{position:static;height:auto}
}
@media(max-width:700px){
  .class-card-top-v1{grid-template-columns:50px 1fr}.class-card-top-v1>.status-pill{grid-column:2;justify-self:start}
  .class-card-stats-v1{grid-template-columns:repeat(2,1fr)}.class-card-stats-v1>div:nth-child(2){border-right:0}.class-card-stats-v1>div:nth-child(-n+2){border-bottom:1px solid #eef1f5}
  .class-code-row-v1{align-items:flex-start;flex-direction:column}.class-code-row-v1>div{width:100%}.class-code-row-v1>div .btn:last-child{flex:1}
  .class-insight-strip-v1{grid-template-columns:1fr}.class-insight-strip-v1>div{border-right:0}
}

/* V1.4 — Template management + class duplication */
.template-bootstrap-v1{display:grid;grid-template-columns:minmax(0,1fr) 160px 130px;gap:16px;align-items:end;padding:16px 18px;border:1px solid #dbe4ff;border-radius:16px;background:linear-gradient(135deg,#f8faff,#eef2ff)}
.template-bootstrap-v1 .form-check{display:flex;gap:10px;align-items:flex-start;padding-left:1.7rem}.template-bootstrap-v1 .form-check-label{display:grid;gap:3px}.template-bootstrap-v1 .form-check-label strong{font-size:1rem}.template-bootstrap-v1 .form-check-label small{font-size:.88rem;color:#667085;line-height:1.5}
.template-edit-panel-v1{border-left:4px solid #6366f1!important}.template-edit-panel-v1 .form-label{font-weight:800;color:#344054}
.class-duplicate-page-v1 .page-title h1{max-width:850px}.duplicate-grid-v1{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.35fr);gap:22px;align-items:start}
.duplicate-source-v1,.duplicate-form-v1{padding:28px!important}.duplicate-source-head-v1{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:start;margin:14px 0 22px}.duplicate-source-head-v1 .class-card-icon-v1{width:64px;height:64px;font-size:1.55rem}.duplicate-source-head-v1 small{color:#6366f1;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.duplicate-source-head-v1 h2{font-size:1.35rem;font-weight:900;margin:4px 0}.duplicate-source-head-v1 p{margin:0;color:#667085}
.duplicate-copy-list-v1{display:grid;gap:12px}.duplicate-copy-list-v1>div{display:grid;grid-template-columns:38px 1fr;gap:12px;padding:14px;border:1px solid #e7eaf0;border-radius:14px;background:#fbfcfe}.duplicate-copy-list-v1>div>i{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#ecfdf3;color:#027a48;font-size:1.1rem}.duplicate-copy-list-v1 span{display:grid;gap:3px}.duplicate-copy-list-v1 strong{font-size:.98rem}.duplicate-copy-list-v1 small{font-size:.88rem;color:#667085;line-height:1.55}
.duplicate-form-v1 h2{font-size:1.45rem;font-weight:900;margin:5px 0}.duplicate-form-v1 .form-label{font-weight:800;color:#344054}.package-guard-v1{display:grid;grid-template-columns:1.2fr 1fr 1fr;border:1px solid #e4e7ec;border-radius:14px;overflow:hidden;background:#f8fafc}.package-guard-v1>div{padding:14px 16px;border-right:1px solid #e4e7ec}.package-guard-v1>div:last-child{border-right:0}.package-guard-v1>div:first-child{display:flex;gap:10px;align-items:center}.package-guard-v1>div:first-child>i{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#eef2ff;color:#4f46e5}.package-guard-v1 small,.package-guard-v1 strong{display:block}.package-guard-v1 small{font-size:.8rem;color:#667085;font-weight:750}.package-guard-v1 strong{font-size:1rem;font-weight:900}
.master-inline-form-v1 .btn-outline-danger{font-weight:750}.master-edit-meeting-v1 .btn-outline-danger{margin-left:4px}
@media(max-width:900px){.template-bootstrap-v1{grid-template-columns:1fr 1fr}.template-bootstrap-v1 .form-check{grid-column:1/-1}.duplicate-grid-v1{grid-template-columns:1fr}}
@media(max-width:640px){.template-bootstrap-v1{grid-template-columns:1fr}.duplicate-source-v1,.duplicate-form-v1{padding:20px!important}.package-guard-v1{grid-template-columns:1fr}.package-guard-v1>div{border-right:0;border-bottom:1px solid #e4e7ec}.package-guard-v1>div:last-child{border-bottom:0}}
.template-flow-v1{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:12px;padding:16px 20px!important;margin-top:18px}.template-flow-v1>div{display:grid;grid-template-columns:34px 1fr;column-gap:10px;align-items:center}.template-flow-v1>div>span{grid-row:1/3;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eef2ff;color:#4338ca;font-weight:900}.template-flow-v1 strong{font-size:.92rem}.template-flow-v1 small{font-size:.8rem;color:#667085}.template-flow-v1>i{color:#98a2b3}
@media(max-width:960px){.template-flow-v1{grid-template-columns:1fr 1fr}.template-flow-v1>i{display:none}}
@media(max-width:600px){.template-flow-v1{grid-template-columns:1fr}}
.app-frame{min-height:100vh}

/* NgodingLab V1.5 — direct template curriculum, readable typography */
.template-admin-v15,.template-builder-v15{font-size:1rem}.template-admin-v15 p,.template-builder-v15 p{font-size:.98rem;line-height:1.7}.template-hero-v15,.template-builder-hero-v15{border-radius:26px;padding:30px;background:linear-gradient(135deg,#111827,#1f2937 58%,#0f766e);color:#fff;box-shadow:0 18px 50px rgba(15,23,42,.14);margin-bottom:22px}.template-hero-v15 h1,.template-builder-hero-v15 h1{font-size:clamp(1.8rem,3vw,2.65rem);font-weight:800;letter-spacing:-.035em}.template-hero-v15 p,.template-builder-hero-v15 p{max-width:820px;color:rgba(255,255,255,.82);font-size:1.03rem}.template-course-grid-v15{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.template-course-card-v15{background:#fff;border:1px solid #e5e7eb;border-radius:22px;padding:22px;box-shadow:0 12px 30px rgba(15,23,42,.06);display:flex;flex-direction:column;gap:14px}.template-course-card-v15 h3{font-size:1.2rem;font-weight:800;margin:0}.template-course-card-v15 p{color:#64748b;margin:0}.template-course-actions-v15{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto}.template-builder-meta-v15{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.template-builder-meta-v15 span{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.12);font-weight:700;font-size:.9rem}.template-builder-rule-v15{margin-top:18px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.1);font-size:.96rem}.template-structure-v15{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 24px}.template-structure-v15>div{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:15px;text-align:center;font-weight:800;box-shadow:0 8px 22px rgba(15,23,42,.04)}.template-structure-v15 b{display:block;font-size:1.05rem}.template-structure-v15 small{display:block;color:#64748b;margin-top:4px;font-size:.86rem}.template-meeting-stack-v15{display:grid;gap:18px}.template-meeting-v15{background:#fff;border:1px solid #e2e8f0;border-radius:24px;box-shadow:0 12px 34px rgba(15,23,42,.06);overflow:hidden}.template-meeting-v15>header{display:flex;align-items:flex-start;gap:14px;padding:20px 22px;border-bottom:1px solid #eef2f7;background:#fbfdff}.meeting-number-v15{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#111827;color:#fff;font-weight:800;font-size:1.05rem;flex:0 0 auto}.template-meeting-v15 h3{font-size:1.18rem;font-weight:800;margin:0}.template-meeting-v15 header p{margin:4px 0 0;color:#64748b}.meeting-settings-v15{margin-left:auto}.meeting-edit-form-v15{padding:20px 22px;background:#f8fafc;border-bottom:1px solid #eef2f7}.template-content-block-v15{padding:20px 22px;border-top:1px solid #f1f5f9}.template-block-title-v15{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.template-block-title-v15 h4{font-size:1.05rem;font-weight:800;margin:0}.template-block-title-v15 p{margin:3px 0 0;color:#64748b;font-size:.94rem}.template-item-list-v15{display:grid;gap:10px}.template-item-v15{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:start;border:1px solid #e5e7eb;border-radius:16px;padding:14px;background:#fff}.template-index-v15{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#f1f5f9;color:#334155;font-weight:800}.template-item-v15 strong{display:block;font-size:1rem}.template-item-v15 small{color:#64748b;font-size:.88rem}.template-edit-body-v15{grid-column:1/-1;padding-top:12px;border-top:1px dashed #dbe3ed}.template-empty-v15{padding:18px;border:1px dashed #cbd5e1;border-radius:16px;text-align:center;color:#64748b;background:#f8fafc;font-size:.96rem}.template-add-form-v15{margin-top:12px;padding:16px;border:1px solid #e2e8f0;border-radius:16px;background:#fbfdff}.block-material-v15{border-left:4px solid #2563eb}.block-practice-v15{border-left:4px solid #059669}.block-quiz-v15{border-left:4px solid #7c3aed}.block-summary-v15{border-left:4px solid #ea580c}.quiz-question-list-v15{display:grid;gap:12px}.quiz-question-editor-v15{border:1px solid #dbe3ed;border-radius:16px;padding:14px;background:#fff}.quiz-question-editor-v15 .question-head{display:flex;gap:10px;align-items:center;margin-bottom:12px}.quiz-mc-fields-v15,.quiz-essay-fields-v15{padding-top:8px}.template-add-meeting-v15{margin-top:20px;background:#fff;border:1px solid #dbe3ed;border-radius:20px;padding:20px}.practice-launch-v15{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-radius:16px;background:#ecfdf5;border:1px solid #a7f3d0;margin:16px 0}.practice-launch-v15 strong{font-size:1rem}.code-preview-v15{font-size:.95rem;line-height:1.55;min-height:220px}.practice-editor-page-v15{min-height:100vh;background:#0b1220;color:#e5e7eb}.practice-editor-top-v15{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 20px;background:#111827;border-bottom:1px solid #263244}.practice-editor-top-v15 h1{font-size:1.08rem;margin:0;font-weight:800}.practice-editor-shell-v15{display:grid;grid-template-columns:minmax(260px,340px) 1fr;min-height:calc(100vh - 67px)}.practice-editor-work-v15{padding:18px;background:#0f172a}.practice-editor-toolbar-v15{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}.practice-editor-grid-v15{display:grid;grid-template-columns:1fr 1fr;gap:14px;height:calc(100vh - 150px)}.practice-editor-grid-v15 textarea{width:100%;height:100%;resize:none;border:1px solid #334155;border-radius:14px;background:#020617;color:#e2e8f0;padding:16px;font:500 .95rem/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.practice-editor-grid-v15 iframe{width:100%;height:100%;border:0;border-radius:14px;background:#fff}.practice-editor-tip-v15{padding:20px;background:#111827;border-right:1px solid #263244;overflow:auto}.practice-editor-tip-v15 h2{font-size:1.08rem;font-weight:800}.practice-editor-tip-v15 p,.practice-editor-tip-v15 li{font-size:.96rem;line-height:1.65;color:#cbd5e1}.form-label{font-size:.93rem}.small,small{font-size:.875rem}.clean-table{font-size:.96rem}
@media(max-width:991.98px){.template-course-grid-v15{grid-template-columns:1fr}.template-structure-v15{grid-template-columns:repeat(2,1fr)}.practice-editor-shell-v15{grid-template-columns:1fr}.practice-editor-tip-v15{border-right:0;border-bottom:1px solid #263244}.practice-editor-grid-v15{grid-template-columns:1fr;height:auto}.practice-editor-grid-v15 textarea,.practice-editor-grid-v15 iframe{min-height:380px}.template-meeting-v15>header{flex-wrap:wrap}.meeting-settings-v15{margin-left:62px}}
@media(max-width:575.98px){.template-hero-v15,.template-builder-hero-v15{padding:22px;border-radius:20px}.template-structure-v15{grid-template-columns:1fr}.template-item-v15{grid-template-columns:42px minmax(0,1fr)}.template-item-v15>:last-child{grid-column:1/-1}.practice-launch-v15{align-items:flex-start;flex-direction:column}.template-content-block-v15,.meeting-edit-form-v15{padding:16px}.template-meeting-v15>header{padding:16px}.practice-editor-top-v15{align-items:flex-start;flex-direction:column}}
.template-flow-v15{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 22px}.template-flow-v15 span{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #dbe3ed;background:#fff;border-radius:999px;font-size:.92rem;font-weight:750;color:#334155}.template-flow-v15 b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#111827;color:#fff;font-size:.78rem}.quiz-builder-form-v15,.lecturer-quiz-builder-v15{border:1px solid #dbe3ed;border-radius:16px;padding:14px;background:#f8fafc}.lecturer-quiz-list-v15{display:grid;gap:12px}.lecturer-quiz-question-v15{position:relative}.quiz-type-select-v15{max-width:190px}.add-question-v15,.add-quiz-question-v15{font-weight:700}.remove-question-v15,.remove-quiz-question-v15{margin-left:auto}.question-head .form-select{font-size:.9rem}.question-head strong{font-size:.96rem;white-space:nowrap}

/* NgodingLab V1.8.13 — project generator: exactly two clean HTML templates */
#newProject .template-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#newProject .template-choice-grid span{min-height:128px;justify-content:center}
#newProject .template-choice-grid strong{font-size:.95rem}
#newProject .template-choice-grid small{font-size:.78rem;line-height:1.5}
@media(max-width:700px){#newProject .template-choice-grid{grid-template-columns:1fr}}
