@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Sarabun:wght@300;400;500;600;700&display=swap&display=swap";:root{scroll-behavior:smooth;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg-primary:#0b0f19;--bg-secondary:#111827;--bg-tertiary:#1f2937;--bg-glass:#111827b3;--border-glass:#ffffff14;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--text-muted:#6b7280;--text-heading:#fff;--color-brand:#6366f1;--color-brand-hover:#4f46e5;--color-brand-glow:#6366f126;--color-success:#10b981;--color-success-glow:#10b9811a;--color-error:#ef4444;--color-warning:#f59e0b;--font-display:"Outfit", "Sarabun", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-sans:"Sarabun", "Outfit", -apple-system, sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 2px 4px #0000001a;--shadow-md:0 4px 12px #0003;--shadow-lg:0 12px 24px #0000004d;--shadow-glow:0 0 20px #6366f133;--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1);--hero-text-gradient:linear-gradient(135deg, #fff 30%, var(--text-secondary));--editor-bg:#0d1117;--editor-header-bg:#161b22;--editor-border:#a78bfa40;--editor-border-subtle:#ffffff0f;--editor-output-bg:#0a0e13;--editor-output-text:#c9d1d9;--editor-output-header-text:#34d399;--editor-output-header-bg:#34d3990d;--editor-output-header-border:#34d3991a;--inline-code-bg:#6366f11f;--inline-code-text:#c4b5fd;--inline-code-border:#6366f126;--btn-danger-text:#fda4af;--btn-secondary-hover-bg:#ffffff0d;--code-snippet-pre-color:#e6edf3;--code-snippet-lang-color:#a78bfa;--code-lang-badge-color:#c4b5fd;--code-hint-code-color:#c4b5fd;--badge-admin-color:#c084fc;--badge-student-color:#34d399;--preview-header-color:#8b949e;--preview-header-bg:#161b22;--preview-header-border:#ffffff0d;--subtle-bg:#ffffff0a;--subtle-border:#ffffff14;--snippet-header-border:#ffffff0d;--input-bg:#ffffff0d;--select-bg:#0000004d}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body.light-theme{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-glass:#ffffffbf;--border-glass:#00000014;--text-primary:#334155;--text-secondary:#64748b;--text-muted:#94a3b8;--text-heading:#0f172a;--color-brand-glow:#6366f10f;--color-success-glow:#10b9810f;--hero-text-gradient:linear-gradient(135deg, #0f172a 30%, #475569);--editor-bg:#f8fafc;--editor-header-bg:#e2e8f0;--editor-border:#a78bfa66;--editor-border-subtle:#0000000f;--editor-output-bg:#f1f5f9;--editor-output-text:#1e293b;--editor-output-header-text:#059669;--editor-output-header-bg:#10b98114;--editor-output-header-border:#10b98126;--inline-code-bg:#6366f10f;--inline-code-text:#4f46e5;--inline-code-border:#6366f11f;--btn-danger-text:#dc2626;--btn-secondary-hover-bg:#0000000a;--code-snippet-pre-color:#e6edf3;--code-snippet-lang-color:#6d28d9;--code-lang-badge-color:#6d28d9;--code-hint-code-color:#4f46e5;--badge-admin-color:#7c3aed;--badge-student-color:#059669;--preview-header-color:#64748b;--preview-header-bg:#e2e8f0;--preview-header-border:#0000000f;--subtle-bg:#00000008;--subtle-border:#00000014;--snippet-header-border:#0000000f;--input-bg:#00000008;--select-bg:#0000000a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);background-image:radial-gradient(at 0 0,#6366f114 0,#0000 50%),radial-gradient(at 100% 100%,#8b5cf614 0,#0000 50%);min-height:100vh;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-heading);font-weight:700;line-height:1.2}a{color:var(--color-brand);transition:var(--transition-smooth);text-decoration:none}a:hover{color:var(--color-brand-hover)}.btn{font-family:var(--font-display);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;will-change:transform;backface-visibility:hidden;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.95rem;font-weight:600;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),background-color .2s,border-color .2s,color .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--color-brand), #8b5cf6);color:#fff;box-shadow:0 4px 14px #6366f14d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);border-color:var(--border-glass);color:var(--text-primary)}.btn-secondary:hover{background:var(--btn-secondary-hover-bg);border-color:var(--text-muted)}.btn-danger{color:var(--btn-danger-text);background:#ef444426;border:1px solid #ef44444d}.btn-danger:hover{background:var(--color-error);color:#fff}.btn-sm{border-radius:var(--radius-sm);padding:6px 12px;font-size:.85rem}.form-group{margin-bottom:20px}.form-label{color:var(--text-secondary);margin-bottom:8px;font-size:.875rem;font-weight:600;display:block}.form-input{background-color:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-sans);transition:var(--transition-smooth);padding:12px 16px;font-size:.95rem}.form-input:focus{border-color:var(--color-brand);box-shadow:var(--shadow-glow);outline:none}.form-select{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-position:right 16px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}.card-glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:30px}.container{max-width:1200px;margin:0 auto;padding:0 24px}.navbar{z-index:50;background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-glass);position:sticky;top:0}.navbar-container{justify-content:space-between;align-items:center;height:70px;display:flex}.brand-logo{font-family:var(--font-display);background:linear-gradient(135deg,#a78bfa,#6366f1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:8px;font-size:1.5rem;font-weight:800;display:flex}.hero{text-align:center;padding:60px 0 40px}.hero h1{background:var(--hero-text-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:16px;font-size:3rem}.hero p{color:var(--text-secondary);max-width:600px;margin:0 auto;font-size:1.15rem}.grid{contain:layout;gap:24px;display:grid}.grid-cols-2{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.grid-cols-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.block-item{border:1px solid var(--border-glass);border-radius:var(--radius-md);contain:layout style;background:#ffffff05;margin-bottom:20px;padding:24px;transition:border-color .2s,background-color .2s;position:relative}.block-item:hover{background:#ffffff08;border-color:#6366f14d}.block-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.video-wrapper{border-radius:var(--radius-md);height:0;box-shadow:var(--shadow-md);z-index:1;margin:16px 0;padding-bottom:56.25%;position:relative;overflow:hidden;transform:translate(0,0);pointer-events:auto!important}.video-wrapper iframe{z-index:2;border:0;width:100%;height:100%;position:absolute;top:0;left:0;transform:translate(0,0);pointer-events:auto!important}.pdf-viewer{border:1px solid var(--border-glass);border-radius:var(--radius-md);background:var(--bg-secondary);width:100%;height:500px;margin:16px 0}.quiz-card{border-radius:var(--radius-lg);background:#6366f10d;border:1px solid #6366f126;margin:24px 0;padding:24px}.question-item{margin-bottom:20px}.option-label{background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-smooth);align-items:center;gap:12px;margin-top:8px;padding:12px 16px;display:flex}.option-label:hover{border-color:var(--text-secondary);background:#ffffff0d}.option-label.selected{border-color:var(--color-brand);background:var(--color-brand-glow)}.option-label.correct{border-color:var(--color-success);background:var(--color-success-glow)}.option-label.incorrect{border-color:var(--color-error);background:#ef44440d}.badge{border-radius:4px;align-items:center;padding:4px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-admin{color:var(--badge-admin-color);background:#8b5cf626}.badge-student{color:var(--badge-student-color);background:#10b98126}.text-center{text-align:center}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-gap-2{align-items:center;gap:8px;display:flex}.code-editor-block{border-radius:var(--radius-lg);border:1px solid var(--editor-border);background:var(--editor-bg);transition:box-shadow .3s;overflow:hidden;box-shadow:0 0 0 1px #a78bfa14,0 8px 32px #0000004d,0 0 60px #a78bfa0f}.code-editor-block:focus-within{box-shadow:0 0 0 1px #a78bfa59,0 8px 32px #0000004d,0 0 60px #a78bfa26}.code-editor-header{background:var(--editor-header-bg);border-bottom:1px solid var(--editor-border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.code-lang-badge{letter-spacing:.08em;color:var(--code-lang-badge-color);background:#a78bfa2e;border:1px solid #a78bfa4d;border-radius:6px;align-items:center;padding:3px 10px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.72rem;font-weight:700;display:inline-flex}.code-reset-btn{transition:var(--transition-smooth);cursor:pointer;align-items:center;display:flex;border-radius:var(--radius-sm)!important;background:0 0!important;border:1px solid #0000!important;padding:4px 10px!important}.code-reset-btn:hover{border-color:var(--editor-border-subtle)!important;color:var(--text-secondary)!important;background:#ffffff0a!important}.code-editor-toolbar{background:var(--editor-header-bg);border-top:1px solid var(--editor-border-subtle);align-items:center;gap:10px;padding:10px 14px;display:flex}.code-run-btn{letter-spacing:.02em;border-radius:var(--radius-sm);cursor:pointer;color:#fff;background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%);border:none;align-items:center;padding:7px 20px;font-size:.88rem;font-weight:600;transition:all .25s;display:inline-flex;box-shadow:0 0 16px #22c55e59}.code-run-btn:hover:not(:disabled){background:linear-gradient(135deg,#4ade80 0%,#22c55e 100%);transform:translateY(-1px);box-shadow:0 0 24px #22c55e8c}.code-run-btn:active:not(:disabled){transform:translateY(0)}.code-run-btn:disabled{opacity:.6;cursor:not-allowed}.code-output-panel{background:var(--editor-output-bg);border-top:1px solid var(--editor-border-subtle)}.code-output-header{letter-spacing:.08em;text-transform:uppercase;color:var(--editor-output-header-text);background:var(--editor-output-header-bg);border-bottom:1px solid var(--editor-output-header-border);align-items:center;gap:7px;padding:7px 16px;font-size:.78rem;font-weight:600;display:flex}.code-output-content{color:var(--editor-output-text);white-space:pre-wrap;word-break:break-word;min-height:52px;max-height:300px;padding:16px;font-family:JetBrains Mono,Fira Code,Cascadia Code,Courier New,monospace;font-size:.87rem;line-height:1.7;overflow-y:auto}.btn-ghost{border-radius:var(--radius-sm);transition:var(--transition-smooth);cursor:pointer;align-items:center;padding:5px 10px;display:inline-flex;background:0 0!important;border:1px solid #0000!important}.btn-ghost:hover{background:#ffffff0d!important;border-color:#ffffff14!important}.html-live-container{background:#0d1117;border-top:1px solid #ffffff0f;flex-direction:row;display:flex}@media (width<=768px){.html-live-container{flex-direction:column}}.html-editor-pane{border-right:1px solid #ffffff0f;flex:1;min-width:50%}@media (width<=768px){.html-editor-pane{border-bottom:1px solid #ffffff0f;border-right:none}}.html-preview-pane{background:var(--editor-bg);flex-direction:column;flex:1;min-height:350px;display:flex}.html-preview-header{letter-spacing:.08em;color:var(--preview-header-color);background:var(--preview-header-bg);border-bottom:1px solid var(--preview-header-border);padding:6px 12px;font-size:.72rem;font-weight:700}.html-preview-iframe{background:#fff;border:none;flex:1;width:100%;height:100%}.fullscreen-editor-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;background:#000000d9;position:fixed;inset:0}body.fullscreen-editor-open{overflow:hidden!important}.expanded-editor-block{max-width:1400px;z-index:10000!important;border-radius:var(--radius-md)!important;flex-direction:column!important;width:auto!important;height:auto!important;margin:0 auto!important;display:flex!important;position:fixed!important;inset:24px!important;overflow:hidden!important;box-shadow:0 20px 50px #0009!important}.expanded-editor-block .html-live-container{flex:1;min-height:0}.expanded-editor-block .html-editor-pane{height:100%;min-height:0}.text-block-content{white-space:pre-line;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;font-size:1.05rem;line-height:1.7}.text-block-content .inline-code-snippet{border-radius:var(--radius-md);background:#0d1117;border:1px solid #6366f133;margin:16px 0;transition:border-color .3s,box-shadow .3s;display:block;position:relative;overflow:hidden}.text-block-content .inline-code-snippet:hover{border-color:#6366f173;box-shadow:0 0 18px #6366f114}.inline-code-snippet .code-snippet-header{border-bottom:1px solid var(--snippet-header-border);background:#6366f10f;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.inline-code-snippet .code-snippet-lang{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--code-snippet-lang-color);background:#a78bfa1f;border-radius:100px;padding:2px 10px;font-size:.72rem;font-weight:600}.inline-code-snippet .code-snippet-copy-btn{font-size:.78rem;font-weight:500;font-family:var(--font-sans);color:var(--text-muted);background:var(--subtle-bg);cursor:pointer;border:1px solid #ffffff14;border-radius:6px;align-items:center;gap:5px;padding:4px 12px;transition:all .25s;display:inline-flex}.inline-code-snippet .code-snippet-copy-btn:hover{color:var(--text-primary);background:#6366f126;border-color:#6366f159;transform:translateY(-1px)}.inline-code-snippet .code-snippet-copy-btn.copied{color:var(--color-success);background:#10b9811a;border-color:#10b9814d}.inline-code-snippet .code-snippet-body{padding:14px 18px;overflow-x:auto}.inline-code-snippet .code-snippet-body pre{color:var(--code-snippet-pre-color);white-space:pre;tab-size:4;margin:0;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.88rem;line-height:1.65}.text-block-content code.inline-code{background:var(--inline-code-bg);color:var(--inline-code-text);border:1px solid var(--inline-code-border);border-radius:5px;padding:2px 7px;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.88em}.text-block-content a.text-block-link{color:#60a5fa;background-image:linear-gradient(120deg,#60a5fa4d 0%,#6366f14d 100%);background-position:0 100%;background-repeat:no-repeat;background-size:100% 2px;padding-bottom:1px;font-weight:500;text-decoration:none;transition:color .25s;position:relative}.text-block-content a.text-block-link:hover{color:#93c5fd;background-image:linear-gradient(120deg,#60a5fa99 0%,#6366f199 100%);background-size:100% 2px}.text-block-content a.text-block-link:after{content:" ↗";opacity:.6;font-size:.75em;transition:opacity .25s}.text-block-content a.text-block-link:hover:after{opacity:1}:root[data-theme=light] .text-block-content a.text-block-link{color:#2563eb;background-image:linear-gradient(120deg,#2563eb40 0%,#6366f140 100%)}:root[data-theme=light] .text-block-content a.text-block-link:hover{color:#1d4ed8;background-image:linear-gradient(120deg,#2563eb80 0%,#6366f180 100%)}body.light-theme .text-block-content .inline-code-snippet{background:#1e293b;border-color:#6366f140}body.light-theme .inline-code-snippet .code-snippet-header{background:#6366f114;border-bottom-color:#ffffff0f}body.light-theme .inline-code-snippet .code-snippet-lang{color:#c4b5fd;background:#a78bfa26}body.light-theme .inline-code-snippet .code-snippet-copy-btn{color:#94a3b8;background:#ffffff0f;border-color:#ffffff1a}body.light-theme .inline-code-snippet .code-snippet-copy-btn:hover{color:#e2e8f0;background:#6366f133;border-color:#6366f166}body.light-theme .inline-code-snippet .code-snippet-body pre{color:#e6edf3}body.light-theme .code-editor-block{border-color:#6366f14d}body.light-theme .code-editor-header{color:#e2e8f0;background:#1e293b}body.light-theme .code-lang-badge{color:#c4b5fd}body.light-theme .code-output-content{color:#e2e8f0;background:#0f172a}body.light-theme .code-output-header{color:#34d399;background:#34d39914;border-bottom-color:#34d3991f}.text-editor-hint{border-radius:var(--radius-sm);color:var(--text-muted);background:#6366f10d;border:1px solid #6366f11f;align-items:flex-start;gap:8px;margin-top:10px;padding:10px 14px;font-size:.82rem;line-height:1.6;display:flex}.text-editor-hint code{color:var(--code-hint-code-color);background:#6366f11f;border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.82em}@media (width<=1024px){.hero h1{font-size:2.5rem}}@media (width<=768px){.container{padding:0 16px}.card-glass{padding:20px}.hero{padding:40px 0 20px}.hero h1{font-size:2rem}.hero p{font-size:1rem}h1{font-size:1.8rem!important}h2{font-size:1.4rem!important}h3{font-size:1.15rem!important}.code-editor-header,.code-editor-toolbar{flex-wrap:wrap;gap:8px;padding:8px 12px}.code-run-btn{justify-content:center;width:100%}.code-editor-toolbar .btn-ghost{justify-content:center;width:100%;margin-left:0!important}.expanded-editor-block{border-radius:var(--radius-sm)!important;inset:12px!important}}@media (width<=480px){.container{padding:0 12px}.card-glass{border-radius:var(--radius-md);padding:16px}.hero h1{font-size:1.65rem}h1{font-size:1.5rem!important}h2{font-size:1.25rem!important}h3{font-size:1.1rem!important}}@media (width<=640px){.nav-user-details,.nav-logout-text{display:none!important}.nav-logout-btn{justify-content:center;align-items:center;width:36px;height:36px;min-height:auto;display:inline-flex;border-radius:50%!important;padding:8px!important}.admin-filters-wrapper{flex-direction:column;align-items:stretch!important;gap:12px!important}.admin-filter-item{width:100%;min-width:100%!important}}.pdf-mobile-download{display:none}@media (width<=768px){.pdf-viewer,.pdf-desktop-link{display:none!important}.pdf-mobile-download{display:block!important}}@keyframes viewFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.view-fade-in{will-change:opacity, transform;animation:.25s cubic-bezier(.4,0,.2,1) both viewFadeIn}.card-glass{will-change:transform;backface-visibility:hidden;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s}.lesson-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px #00000059,0 0 0 1px #6366f140;border-color:#6366f159!important}.lesson-card:hover img{transform:scale(1.04)}.lesson-card:active{transform:translateY(-1px);box-shadow:0 6px 16px #00000040}.lesson-card:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}.option-label{will-change:background-color, border-color}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{opacity:.8;transform:scale(.98)}50%{opacity:1;transform:scale(1.02)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.spin-anim{animation:1.2s cubic-bezier(.4,0,.2,1) infinite spin}.loading-wrapper{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-glass);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;will-change:opacity, transform;flex-direction:column;justify-content:center;align-items:center;max-width:450px;margin:80px auto;padding:60px 24px;animation:3s ease-in-out infinite pulse-glow;display:flex}.loading-spinner-glow{justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:24px;display:flex;position:relative}.loading-spinner-glow:before{content:"";background:var(--color-brand);filter:blur(12px);opacity:.15;border-radius:50%;width:100%;height:100%;animation:1.5s ease-in-out infinite pulse-glow;position:absolute}.loading-text{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.5px;margin-top:16px;font-size:1.1rem;font-weight:500}.loading-subtext{color:var(--text-muted);margin-top:6px;font-size:.85rem}
