code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}:root,[data-theme=dark]{--bg-main: #0f172a;--bg-elevated: #111827;--bg-elevated-soft: #020617;--accent: #22c55e;--accent-soft: rgba(34, 197, 94, .08);--highlight: #38bdf8;--text-main: #e5e7eb;--text-muted: #6b7280;--border-subtle: #1f2937;--error: #f97373;--header-bg: linear-gradient(90deg, rgba(15, 23, 42, .96), rgba(15, 23, 42, .9));--body-bg: radial-gradient(circle at top left, #1e293b 0, #020617 45%, #020617 100%);--card-bg: rgba(15, 23, 42, .95);--input-bg: rgba(15, 23, 42, .9);--code-bg: #020617;--shadow-soft: rgba(15, 23, 42, .9);--overlay-bg: rgba(15, 23, 42, .8)}[data-theme=light]{--bg-main: #f8fafc;--bg-elevated: #ffffff;--bg-elevated-soft: #f1f5f9;--accent: #16a34a;--accent-soft: rgba(22, 163, 74, .12);--highlight: #0284c7;--text-main: #0f172a;--text-muted: #64748b;--border-subtle: #e2e8f0;--error: #dc2626;--header-bg: linear-gradient(90deg, rgba(255, 255, 255, .98), rgba(248, 250, 252, .95));--body-bg: radial-gradient(circle at top left, #e2e8f0 0, #f1f5f9 45%, #f8fafc 100%);--card-bg: rgba(255, 255, 255, .95);--input-bg: rgba(255, 255, 255, .95);--code-bg: #f1f5f9;--shadow-soft: rgba(15, 23, 42, .08);--overlay-bg: rgba(15, 23, 42, .4)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--body-bg);color:var(--text-main);font-family:system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;transition:background .2s ease,color .2s ease}#app{min-height:100vh}.app-root{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:1rem 2rem;border-bottom:1px solid var(--border-subtle);background:var(--header-bg);position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.header-left{display:flex;align-items:center;gap:.75rem}.nav-menu-toggle{display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:1px solid var(--border-subtle);border-radius:.5rem;background:var(--card-bg);color:var(--text-main);cursor:pointer}.nav-menu-icon{display:block;width:1.25rem;height:2px;background:currentColor;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor}.theme-toggle{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:1px solid var(--border-subtle);border-radius:.5rem;background:var(--card-bg);color:var(--text-main);cursor:pointer;font-size:1.2rem;transition:transform .15s ease,border-color .15s ease}.theme-toggle:hover{border-color:var(--accent);transform:scale(1.05)}.logo-block{display:flex;align-items:center;gap:.75rem}.logo-dot{width:2.4rem;height:2.4rem;border-radius:.8rem;background:radial-gradient(circle at 30% 20%,#38bdf8,#22c55e);box-shadow:0 0 28px #38bdf880}.logo-title{font-weight:600;letter-spacing:.04em}.logo-subtitle{font-size:.75rem;color:var(--text-muted)}.nav-links{display:flex;gap:.5rem}.nav-link{border-radius:999px;border:1px solid transparent;padding:.4rem .9rem;font-size:.9rem;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.nav-link:hover{color:var(--text-main);border-color:var(--border-subtle);background:var(--input-bg)}.nav-link-active{background:var(--accent-soft);color:var(--accent);border-color:#22c55e99}.app-main{flex:1;padding:2rem;max-width:1120px;margin:0 auto}.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:2.5rem;align-items:center}.hero-title{font-size:2.8rem;line-height:1.1;letter-spacing:-.04em;margin-bottom:1rem}.hero-subtitle{color:var(--text-muted);max-width:32rem}.hero-actions{display:flex;gap:.75rem;margin:1.75rem 0 1rem}.hero-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.8rem;color:var(--text-muted)}.hero-meta span{padding:.25rem .7rem;border-radius:999px;border:1px solid rgba(148,163,184,.4)}.hero-panel{position:relative}.hero-card{border-radius:1.25rem;border:1px solid var(--border-subtle);background:var(--card-bg);box-shadow:0 24px 60px var(--shadow-soft);overflow:hidden}.hero-card-header{padding:.9rem 1.1rem;border-bottom:1px solid rgba(148,163,184,.3);font-size:.85rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted)}.hero-card-body{padding:1.1rem}.hero-split{display:grid;grid-template-columns:1.1fr 1.3fr;gap:.9rem}.hero-chat-preview{font-size:.8rem;display:flex;flex-direction:column;gap:.35rem}.hero-chat-line{padding:.35rem .6rem;border-radius:.7rem;background:#0f172af2;border:1px solid rgba(148,163,184,.35)}.hero-code-preview{background:#020617;border-radius:.8rem;border:1px solid rgba(148,163,184,.35);padding:.7rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8rem}.hero-code-preview pre{margin:0}.primary-button,.secondary-button{border-radius:999px;border:1px solid transparent;padding:.55rem 1.3rem;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease}.primary-button{background:linear-gradient(135deg,var(--accent),#4ade80);color:#020617;box-shadow:0 14px 30px #22c55e59}.primary-button:hover{transform:translateY(-1px);box-shadow:0 18px 40px #22c55e73}.secondary-button{background:#0f172ae6;border-color:#94a3b880;color:var(--text-main)}.secondary-button:hover{border-color:var(--highlight)}.section-title{font-size:1.1rem;margin-bottom:.25rem}.section-subtitle{font-size:.95rem;margin-top:1.5rem;margin-bottom:.5rem}.muted{color:var(--text-muted);font-size:.85rem}.two-column{display:grid;grid-template-columns:260px 780px;gap:1.4rem;align-items:flex-start;justify-content:center}.single-column{max-width:720px;margin:0 auto}.lesson-sidebar{border-radius:1rem;background:var(--card-bg);border:1px solid var(--border-subtle);padding:1rem;width:260px;max-width:100%;box-sizing:border-box}.lesson-list{list-style:none;padding:0;margin:.75rem 0 0;display:flex;flex-direction:column;gap:.5rem}.lesson-item{width:100%;display:flex;align-items:center;gap:.6rem;padding:.45rem .65rem;border-radius:.7rem;border:1px solid transparent;font-size:.85rem;cursor:pointer;background:transparent;color:var(--text-main);text-align:left}.lesson-item:hover{background:#0f172ae6;border-color:#94a3b880}.lesson-item-active{background:var(--accent-soft);border-color:#22c55eb3;color:var(--accent)}.lesson-number{width:2.2rem;text-align:center;font-variant-numeric:tabular-nums;font-size:.85rem;color:var(--text-muted)}.lesson-title-text{flex:1}.lesson-content{border-radius:1rem;background:var(--card-bg);border:1px solid var(--border-subtle);padding:1.25rem 1.4rem;width:780px;max-width:100%;box-sizing:border-box;min-height:60vh;height:75vh;overflow:auto}.lesson-content.empty{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:240px}.lesson-heading{font-size:1.35rem;margin-bottom:.75rem}.lesson-body{display:flex;flex-direction:column;gap:.55rem;font-size:.9rem}.lesson-markdown{line-height:1.6}.lesson-markdown p{margin:.25rem 0}.lesson-markdown ul,.lesson-markdown ol{padding-left:1.1rem;margin:.25rem 0}.lesson-markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.85em;background:var(--code-bg);padding:.08rem .25rem;border-radius:.25rem}.lesson-paragraph{color:var(--text-main)}.lesson-snippets{margin-top:1.2rem;display:flex;flex-direction:column;gap:.75rem}.lesson-docs{margin-top:1.25rem}.doc-link{color:var(--highlight);font-size:.85rem}.doc-link:hover{text-decoration:underline}.code-block{border-radius:.9rem;background:var(--code-bg);border:1px solid var(--border-subtle);overflow:hidden}.code-block-expanded{max-height:520px}.code-block-header{display:flex;justify-content:space-between;align-items:center;padding:.45rem .7rem;border-bottom:1px solid var(--border-subtle);background:var(--code-bg)}.code-block-title{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-muted)}.code-block-label{text-transform:uppercase;letter-spacing:.16em}.code-block-dot{width:.6rem;height:.6rem;border-radius:999px}.code-dot-red{background:#f97373}.code-dot-yellow{background:#facc15}.code-dot-green{background:#22c55e}.code-block-actions{display:flex;gap:.4rem}.pill-button{border-radius:999px;border:1px solid var(--border-subtle);padding:.25rem .6rem;font-size:.75rem;background:var(--input-bg);color:var(--text-main);cursor:pointer}.pill-button-outline{background:transparent}.code-pre{margin:0;padding:.75rem .9rem .9rem;font-size:.8rem}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;padding:.15rem .6rem;border-radius:999px;border:1px solid rgba(148,163,184,.6);color:var(--text-muted)}.badge-accent{border-color:#22c55eb3;color:var(--accent)}.badge-dot{width:.4rem;height:.4rem;border-radius:999px;background:var(--accent)}.chat-panel,.code-share-panel{border-radius:1rem;background:var(--card-bg);border:1px solid var(--border-subtle);padding:1rem;display:flex;flex-direction:column}.chat-messages{flex:1;overflow-y:auto;padding-right:.25rem;display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.chat-message{font-size:.85rem;background:var(--input-bg);border-radius:.7rem;padding:.4rem .6rem;border:1px solid var(--border-subtle)}.chat-meta{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted);margin-bottom:.15rem}.chat-nickname{font-weight:500}.chat-text{color:var(--text-main)}.chat-typing{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--text-muted)}.typing-dot{width:.3rem;height:.3rem;border-radius:999px;background:#94a3b8b3;animation:typing 1s infinite ease-in-out}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typing{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-2px);opacity:.9}}.chat-input-row{display:flex;gap:.6rem}.chat-input{flex:1;border-radius:999px;border:1px solid var(--border-subtle);background:var(--input-bg);color:var(--text-main);padding:.5rem .85rem;font-size:.85rem}.chat-input:focus{outline:none;border-color:var(--highlight)}.live-layout{position:relative}.live-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr);gap:1.25rem}.code-share-panel.empty .empty-body{padding:1.5rem .5rem;font-size:.85rem;color:var(--text-muted)}.modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal{border-radius:1rem;background:var(--bg-elevated);padding:1.25rem 1.5rem 1.4rem;border:1px solid var(--border-subtle);max-width:360px;width:100%}.modal-form{margin-top:.75rem;display:flex;flex-direction:column;gap:.6rem}.field-label{font-size:.8rem;color:var(--text-muted);display:flex;flex-direction:column;gap:.25rem}.text-input{border-radius:.6rem;border:1px solid var(--border-subtle);background:var(--input-bg);color:var(--text-main);padding:.45rem .6rem;font-size:.85rem}.text-input:focus{outline:none;border-color:var(--highlight)}.text-area{resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.4rem}.form-grid{display:flex;flex-direction:column;gap:.65rem;margin-top:.75rem}.form-actions{display:flex;justify-content:flex-end}.admin-broadcast{display:flex;flex-direction:column;gap:1.4rem;margin-top:.75rem}.admin-section{padding:.8rem .1rem;border-top:1px solid rgba(31,41,55,.8)}.status-text{margin-top:.6rem;font-size:.8rem;color:var(--text-muted)}.status-text.error{color:var(--error)}.card{border-radius:1rem;background:var(--card-bg);border:1px solid var(--border-subtle);padding:1.25rem 1.5rem 1.5rem}@media(max-width:900px){.hero{grid-template-columns:minmax(0,1fr)}.hero-panel{order:-1}.two-column{grid-template-columns:minmax(0,1fr)}.lesson-sidebar,.lesson-content{width:100%}.live-grid{grid-template-columns:minmax(0,1fr)}.app-main{padding:1.25rem}.app-header{padding-inline:1.25rem}}@media(max-width:768px){.app-header{padding:.75rem 1rem;gap:.5rem}.nav-menu-toggle{display:flex}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--header-bg);border-bottom:1px solid var(--border-subtle);padding:.75rem 1rem;gap:.25rem;box-shadow:0 8px 24px var(--shadow-soft)}.nav-links-open{display:flex}.nav-link{width:100%;justify-content:center;padding:.6rem 1rem;min-height:44px}.logo-title{font-size:.95rem}.logo-subtitle{display:none}.logo-dot{width:2rem;height:2rem}.app-main{padding:1rem}.hero-title{font-size:1.75rem}.hero-actions{flex-direction:column}.hero-actions .primary-button,.hero-actions .secondary-button{width:100%;min-height:44px}.hero-split{grid-template-columns:1fr}.two-column{gap:1rem}.lesson-content{min-height:50vh;height:auto;padding:1rem}.live-grid{gap:1rem}.chat-panel,.code-share-panel{min-height:280px}.modal{margin:1rem;max-width:calc(100% - 2rem)}}@media(max-width:480px){.app-header{padding:.5rem .75rem}.hero-title{font-size:1.5rem}.hero-meta{flex-direction:column}.section-title{font-size:1rem}.card{padding:1rem}.lesson-heading{font-size:1.15rem}}
