:root{--color-bg:#1C2030;--color-bg-card:#2D3142;--color-surface:#3A4058;--color-text:#F0F2F7;--color-text-muted:#A4AEC2;--color-accent:#EF8354;--color-accent-hover:#E8703F;--color-accent-dim:rgba(239,131,84,0.12);--color-muted:#4F5D75;--color-border:rgba(255,255,255,0.07);--color-bg-light:#F5F5F7;--color-bg-card-light:#FFFFFF;--color-text-light:#1A1A2E;--color-blue:var(--color-accent);--color-green:#10b981;--color-amber:#f59e0b;--color-red:#ef4444;--color-muted-border:var(--color-muted);--font-sans:"Open Sans",system-ui,sans-serif;--font-mono:var(--font-geist-mono,"Geist Mono",monospace);--font-serif:var(--font-instrument-serif),"Instrument Serif",serif;--radius:4px;--radius-md:6px}[data-theme=light]{--color-bg:var(--color-bg-light);--color-bg-card:var(--color-bg-card-light);--color-surface:#FFFFFF;--color-border:rgba(26,26,46,0.1);--color-text:var(--color-text-light);--color-text-muted:#64748b;--color-muted:#7A8599;--color-muted-border:rgba(26,26,46,0.16)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;background-color:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans,"Open Sans",system-ui,sans-serif)}body,html{overflow-x:hidden}button,input,select,textarea{font:inherit}canvas,img,svg,video{max-width:100%}.app-page{position:relative;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at top right,rgba(239,131,84,.1),transparent 30rem),radial-gradient(circle at bottom left,rgba(79,93,117,.22),transparent 28rem),var(--color-bg)}.app-page:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.24;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.12'/%3E%3C/svg%3E")}.app-page>*{position:relative;z-index:1}.app-stack{display:flex;flex-direction:column;gap:28px}.app-section{display:grid;grid-gap:12px;gap:12px}.app-section-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.app-kicker,.app-section-label{color:var(--color-text-muted);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.app-kicker{color:var(--color-accent)}.app-panel{position:relative;overflow:hidden;border:1px solid var(--color-border);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-surface) 96%,white 4%),color-mix(in srgb,var(--color-bg-card) 82%,transparent)),var(--color-surface);box-shadow:0 20px 70px rgba(0,0,0,.16)}[data-theme=light] .app-panel{background:linear-gradient(135deg,#ffffff,#f8fafc),var(--color-surface);border-color:rgba(26,26,46,.1);box-shadow:0 16px 44px rgba(15,23,42,.08)}.app-panel:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.055),transparent 34%),radial-gradient(circle at top right,rgba(239,131,84,.08),transparent 18rem)}[data-theme=light] .app-panel:before{background:linear-gradient(90deg,rgba(255,255,255,.65),transparent 38%),radial-gradient(circle at top right,rgba(239,131,84,.05),transparent 18rem)}.app-panel>*{position:relative;z-index:1}.app-panel-pad{padding:20px}.app-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:24px;gap:24px;align-items:end;margin-bottom:32px;padding:30px}.app-hero-title{color:var(--color-text);font-family:var(--font-mono);font-size:clamp(28px,4vw,46px);font-weight:700;line-height:1.08;margin-top:8px}.app-hero-copy{color:var(--color-text-muted);font-size:14px;line-height:1.7;margin-top:10px;max-width:580px}.app-hero-metrics{display:grid;grid-template-columns:repeat(3,minmax(84px,1fr));grid-gap:10px;gap:10px;min-width:300px}.app-metric{border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.12);padding:12px}[data-theme=light] .app-metric{background:#ffffff;border-color:rgba(26,26,46,.12)}.app-metric-value{color:var(--color-text);display:block;font-family:var(--font-mono);font-size:24px;font-weight:700;line-height:1}.app-metric-label{color:var(--color-text-muted);display:block;font-size:11px;margin-top:7px}.app-button,.app-button-danger,.app-button-secondary{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;min-height:38px;padding:9px 15px;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .15s;white-space:nowrap}.app-button{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff}.app-button:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.app-button-secondary{border:1px solid var(--color-border);background:rgba(0,0,0,.08);color:var(--color-text)}[data-theme=light] .app-button-secondary{background:#ffffff;border-color:rgba(26,26,46,.14)}.app-button-danger{border:1px solid rgba(239,68,68,.38);background:rgba(239,68,68,.06);color:var(--color-red)}.app-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--color-border);border-radius:999px;background:rgba(0,0,0,.1);color:var(--color-text-muted);font-family:var(--font-mono);font-size:11px;padding:5px 10px}[data-theme=light] .app-chip{background:#ffffff;border-color:rgba(26,26,46,.12);color:#475569}.app-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-accent)}.app-link{color:var(--color-accent);text-decoration:none}.app-empty{border:1px dashed var(--color-border);border-radius:8px;color:var(--color-text-muted);padding:34px;text-align:center}.page-shell{width:100%;max-width:var(--page-max,1100px);margin:0 auto;padding:40px 24px}.page-shell--narrow{--page-max:680px}.page-shell--course{--page-max:800px}.dashboard-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:40px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:24px;gap:24px;align-items:start}.dashboard-continue-card{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dashboard-course-row{background:rgba(0,0,0,.1);border:1px solid var(--color-border);border-radius:8px;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:12px;transition:border-color .15s,background .15s,transform .15s}[data-theme=light] .dashboard-course-row{background:#ffffff;border-color:rgba(26,26,46,.12)}.dashboard-course-row:hover{background:rgba(0,0,0,.16);border-color:color-mix(in srgb,var(--color-accent) 35%,var(--color-border));transform:translateY(-1px)}[data-theme=light] .dashboard-course-row:hover{background:#f8fafc;border-color:rgba(239,131,84,.35)}.dashboard-continue-card{padding:22px}.dashboard-continue-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.dashboard-course-title{color:var(--color-text);font-size:20px;font-weight:700;margin:6px 0}.dashboard-course-copy{color:var(--color-text-muted);font-size:13px;line-height:1.6;max-width:620px}.dashboard-course-meta,.dashboard-preview-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.dashboard-preview-list{display:grid;grid-gap:8px;gap:8px;border-top:1px solid var(--color-border);margin-top:18px;padding-top:16px}.dashboard-preview-link{display:grid;grid-template-columns:18px minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;color:var(--color-text-muted);font-size:12px;text-decoration:none}.dashboard-preview-index{color:var(--color-accent);font-family:var(--font-mono);font-size:10px}.dashboard-preview-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-mini-graph{min-height:130px;position:relative;border:1px solid var(--color-border);border-radius:8px;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 0),linear-gradient(rgba(255,255,255,.035) 1px,transparent 0);background-size:22px 22px;margin-top:16px;overflow:hidden}[data-theme=light] .dashboard-mini-graph{background:linear-gradient(90deg,rgba(26,26,46,.045) 1px,transparent 0),linear-gradient(rgba(26,26,46,.045) 1px,transparent 0),#ffffff}.dashboard-mini-graph span{position:absolute;width:var(--node-size,10px);height:var(--node-size,10px);left:var(--node-x);top:var(--node-y);border-radius:50%;background:var(--node-color,var(--color-accent));box-shadow:0 0 22px color-mix(in srgb,var(--node-color,var(--color-accent)) 42%,transparent)}.dashboard-stat-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;color:var(--color-text-muted);font-size:12px}.dashboard-stat-row strong{color:var(--stat-color,var(--color-text));font-size:13px}.dashboard-week-strip{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:18px;gap:18px;align-items:center;margin-bottom:26px;padding:18px}.dashboard-week-metrics{display:grid;grid-template-columns:repeat(3,minmax(96px,1fr));grid-gap:10px;gap:10px}.knowledge-layout{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(180px,240px) minmax(0,1fr)}.course-header-actions{display:flex;gap:8px;align-items:center}.lesson-root{display:flex;flex-direction:column;height:100vh;overflow:hidden}.lesson-topbar{align-items:center;border-bottom:1px solid var(--color-border);display:flex;flex-shrink:0;height:48px;justify-content:space-between;padding:0 20px;gap:16px}.lesson-stage-tabs{display:flex;align-items:center;gap:8px}.lesson-body,.lesson-main{display:flex;flex:1 1;overflow:hidden}.lesson-main{flex-direction:column;min-width:0}.lesson-scroll-pane{flex:1 1;overflow-y:auto;padding:40px}.lesson-content-width{max-width:680px;width:100%}.lesson-content-width--wide{max-width:760px}.lesson-split-stage{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.lesson-instructions-row{display:flex;align-items:flex-start;gap:24px;max-width:900px}.lesson-chat-sidebar{border-left:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0;width:340px;min-height:0;background:color-mix(in srgb,var(--color-bg-card) 96%,transparent)}.lesson-chat-header{align-items:flex-start;border-bottom:1px solid var(--color-border);display:flex;flex-shrink:0;gap:12px;justify-content:space-between;padding:10px 16px}.lesson-chat-title{color:var(--color-text);font-size:13px;font-weight:600}.lesson-chat-subtitle{color:var(--color-text-muted);font-size:12px;line-height:1.45;margin-top:2px}.lesson-chat-close{align-items:center;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:20px;height:30px;justify-content:center;line-height:1;width:30px}.lesson-chat-close:hover{border-color:var(--color-muted-border);color:var(--color-text)}.lesson-chat-panel{display:flex;flex:1 1;flex-direction:column;min-height:0}.lesson-chat-messages{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px}.lesson-chat-message{margin-bottom:16px}.lesson-chat-message-role{color:var(--color-text-muted);font-size:11px;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase}.lesson-chat-message-content{color:var(--color-text);font-size:13px;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}.lesson-chat-caret{opacity:.5}.lesson-chat-thinking{color:var(--color-text-muted);font-size:13px;padding:4px 0}.lesson-chat-thinking span{animation:glow-pulse 1s infinite}.lesson-chat-code-action{flex-shrink:0;padding:0 16px 8px}.lesson-chat-code-button{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);cursor:pointer;font-size:12px;padding:7px 12px;text-align:left;width:100%}.lesson-chat-code-button:after{content:" →"}.lesson-chat-code-button:disabled{cursor:not-allowed;opacity:.55}.lesson-chat-composer{align-items:flex-end;border-top:1px solid var(--color-border);display:flex;flex-shrink:0;gap:8px;padding:12px 16px}.lesson-chat-input{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);flex:1 1;font-family:var(--font-sans);font-size:13px;line-height:1.5;max-height:160px;min-height:38px;outline:none;padding:8px 12px;resize:none}.lesson-chat-input:focus{border-color:color-mix(in srgb,var(--color-accent) 65%,var(--color-border))}.lesson-chat-send{align-items:center;background:var(--color-accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:17px;height:38px;justify-content:center;line-height:1;transition:background .1s,opacity .1s;width:42px}.lesson-chat-send:disabled{background:var(--color-border);cursor:not-allowed;opacity:.8}.graph-root{flex-direction:column;height:100vh;background:var(--color-bg)}.graph-body,.graph-root{display:flex;overflow:hidden}.graph-body{flex:1 1}.graph-canvas{flex:1 1;position:relative;min-width:0}.graph-sidebar{width:320px;overflow:hidden;transition:width .2s ease;border-left:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg-card) 92%,transparent);flex-shrink:0;box-shadow:-24px 0 60px rgba(0,0,0,.18)}.review-shell{--page-max:860px}.review-mode-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:16px}.review-mode-card{display:grid;grid-gap:6px;gap:6px;text-align:left;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.1);color:var(--color-text);cursor:pointer;padding:16px;transition:border-color .15s,background .15s,transform .15s}[data-theme=light] .review-mode-card{background:#ffffff;border-color:rgba(26,26,46,.12)}.review-mode-card.is-active{border-color:var(--color-accent);background:var(--color-accent-dim)}[data-theme=light] .review-mode-card.is-active{background:#fff7ed;border-color:rgba(239,131,84,.55)}.review-mode-card:hover{transform:translateY(-1px)}.review-mode-title{color:var(--color-text);font-size:15px;font-weight:700}.review-mode-copy{color:var(--color-text-muted);font-size:13px;line-height:1.55}.review-filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.review-filter-label{color:var(--color-text-muted);display:flex;flex:1 1 220px;flex-direction:column;font-size:12px;gap:6px}.review-answer,.review-select{width:100%;border:1px solid var(--color-border);border-radius:8px;background:color-mix(in srgb,var(--color-bg) 92%,black 8%);color:var(--color-text);outline:none}[data-theme=light] .review-answer,[data-theme=light] .review-select{background:#ffffff;border-color:rgba(26,26,46,.16);color:#1A1A2E}.review-select{font-size:13px;padding:9px 12px}.review-card-list{display:grid;grid-gap:8px;gap:8px}.review-card-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.12);padding:12px}[data-theme=light] .review-card-row{background:#ffffff;border-color:rgba(26,26,46,.12)}[data-theme=light] .review-card-row:hover{background:#f8fafc;border-color:rgba(239,131,84,.26)}.review-card-title{color:var(--color-text);font-size:13px;font-weight:700;margin-bottom:2px}.review-card-meta{color:var(--color-text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-card-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.review-remove{border:none;background:transparent;cursor:pointer;font-size:12px}.review-empty,.review-remove{color:var(--color-text-muted)}.review-empty{font-size:13px;padding:24px 0;text-align:center}.review-session{display:grid;grid-gap:16px;gap:16px}.review-progress{height:5px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)}[data-theme=light] .review-progress{background:rgba(26,26,46,.1)}.review-progress-bar{height:100%;border-radius:inherit;background:var(--color-accent);transition:width .3s ease}.review-session-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--color-text-muted);font-family:var(--font-mono);font-size:11px}.review-question{color:var(--color-text);font-size:18px;font-weight:700;line-height:1.55;margin-bottom:20px}.review-text-box{border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.12);margin-bottom:12px;padding:13px 14px}[data-theme=light] .review-text-box{background:#ffffff;border-color:rgba(26,26,46,.12)}.review-text-label{color:var(--color-text-muted);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.08em;margin-bottom:5px;text-transform:uppercase}.review-text-body{color:var(--color-text);font-size:13px;line-height:1.65}.review-feedback{border:1px solid var(--color-border);border-radius:8px;margin-bottom:16px;padding:13px 14px}.review-feedback.is-good{background:rgba(16,185,129,.07);border-color:rgba(16,185,129,.24)}.review-feedback.is-partial{background:rgba(245,158,11,.07);border-color:rgba(245,158,11,.26)}.review-feedback.is-low{background:rgba(239,68,68,.07);border-color:rgba(239,68,68,.26)}.review-feedback-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.review-score{font-size:13px;font-weight:800}.review-score-label{font-family:var(--font-mono);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.review-score-label.is-good,.review-score.is-good{color:var(--color-green)}.review-score-label.is-partial,.review-score.is-partial{color:var(--color-amber)}.review-score-label.is-low,.review-score.is-low{color:var(--color-red)}.review-answer{display:block;min-height:128px;font-size:14px;line-height:1.65;margin-bottom:12px;padding:13px 14px;resize:vertical}.review-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-help-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.review-help-links a,.review-muted-note{color:var(--color-text-muted);font-size:12px;text-decoration:none}.review-error{color:var(--color-red);font-size:12px;line-height:1.5;margin-bottom:10px}.review-summary{display:grid;grid-gap:10px;gap:10px;border-top:1px solid var(--color-border);margin-top:18px;padding-top:16px}.review-summary-row{display:grid;grid-template-columns:48px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start}.review-summary-title{color:var(--color-text);font-size:12px;font-weight:700;margin-bottom:2px}.review-summary-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.course-builder{display:grid;grid-gap:24px;gap:24px}.course-builder-head{display:grid;grid-gap:8px;gap:8px}.course-builder-title{color:var(--color-text);font-family:var(--font-mono);font-size:clamp(28px,5vw,44px);font-weight:800;line-height:1.08}.course-builder-copy{color:var(--color-text-muted);font-size:14px;line-height:1.7}.course-field-stack{display:grid;grid-gap:12px;gap:12px}.course-input,.course-select,.course-textarea{width:100%;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.12);color:var(--color-text);font-family:var(--font-sans);outline:none}[data-theme=light] .course-input,[data-theme=light] .course-select,[data-theme=light] .course-textarea{background:#ffffff;border-color:rgba(26,26,46,.16);color:#1A1A2E}.course-textarea{font-size:14px;line-height:1.65;min-height:124px;padding:13px 15px;resize:vertical}.course-input,.course-select{font-size:14px;padding:12px 15px}.course-source-panel{display:grid;grid-gap:10px;gap:10px;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.1);padding:16px}[data-theme=light] .course-source-panel{background:#ffffff;border-color:rgba(26,26,46,.12)}.course-source-title{color:var(--color-text);font-size:13px;font-weight:800}.course-file-input{color:var(--color-text-muted);display:block;font-size:12px;width:100%}.course-source-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--color-text-muted);font-size:11px}.course-clear-button{border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:12px;padding:0}.course-option-grid{display:grid;grid-gap:10px;gap:10px}.course-option-card{display:grid;grid-gap:5px;gap:5px;text-align:left;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.1);color:var(--color-text);cursor:pointer;padding:16px}[data-theme=light] .course-option-card{background:#ffffff;border-color:rgba(26,26,46,.12)}.course-option-card.is-selected{border-color:var(--color-accent);background:var(--color-accent-dim)}[data-theme=light] .course-option-card.is-selected{background:#fff7ed;border-color:rgba(239,131,84,.55)}.course-option-title{color:var(--color-text);font-size:14px;font-weight:800}.course-option-card.is-selected .course-option-title{color:var(--color-accent)}.course-option-copy{color:var(--color-text-muted);font-size:13px;line-height:1.55}.course-action-row{display:flex;gap:8px}.course-action-row>*{flex:1 1}.course-loader{display:grid;grid-gap:18px;gap:18px;justify-items:center;border:1px solid var(--color-border);border-radius:8px;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 0),linear-gradient(rgba(255,255,255,.035) 1px,transparent 0),rgba(0,0,0,.1);background-size:24px 24px;color:var(--color-accent);font-family:var(--font-mono);font-size:12px;padding:28px;text-align:center}[data-theme=light] .course-loader{background:linear-gradient(90deg,rgba(26,26,46,.045) 1px,transparent 0),linear-gradient(rgba(26,26,46,.045) 1px,transparent 0),#ffffff}.course-loader-orbit{width:46px;height:46px;border:1px solid rgba(239,131,84,.35);border-radius:50%;position:relative;animation:spin 1.8s linear infinite}.course-loader-orbit:after{content:"";position:absolute;top:-4px;left:18px;width:8px;height:8px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 18px rgba(239,131,84,.8)}.curriculum-preview{display:grid;grid-gap:18px;gap:18px}.curriculum-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.curriculum-modules{display:grid;grid-gap:8px;gap:8px}.curriculum-module{overflow:hidden;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.1)}[data-theme=light] .curriculum-module{background:#ffffff;border-color:rgba(26,26,46,.12)}.curriculum-module-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:none;background:transparent;color:var(--color-text);cursor:pointer;padding:13px 16px;text-align:left}.curriculum-module-title{display:flex;gap:10px;align-items:center;font-size:13px;font-weight:800}.curriculum-module-index{color:var(--color-accent);font-family:var(--font-mono);font-size:11px}.curriculum-lessons{border-top:1px solid var(--color-border)}.curriculum-lesson{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;border-bottom:1px solid var(--color-border);padding:11px 16px 11px 40px}.curriculum-lesson:last-child{border-bottom:none}.curriculum-lesson-title{color:var(--color-text);font-size:13px;font-weight:700}.difficulty-badge{align-self:center;border-radius:999px;font-family:var(--font-mono);font-size:10px;font-weight:800;padding:3px 8px}.difficulty-badge.is-easy{background:rgba(16,185,129,.1);color:var(--color-green)}.difficulty-badge.is-medium{background:rgba(245,158,11,.12);color:var(--color-amber)}.difficulty-badge.is-hard{background:rgba(239,68,68,.12);color:var(--color-red)}.course-overview{--page-max:900px}.course-breadcrumb{display:flex;align-items:center;gap:8px;color:var(--color-text-muted);font-size:13px;margin-bottom:18px}.course-progress{display:flex;align-items:center;gap:12px;margin-top:20px}.course-progress-track{flex:1 1;height:5px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}[data-theme=light] .course-progress-track{background:rgba(26,26,46,.1)}.course-progress-fill{height:100%;border-radius:inherit;background:var(--color-accent);transition:width .3s ease}.course-module-list{display:grid;grid-gap:22px;gap:22px}.course-module-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}.course-lesson-list{display:grid;grid-gap:6px;gap:6px}.course-lesson-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.1);padding:13px 16px;text-decoration:none;transition:border-color .15s,background .15s,transform .15s}[data-theme=light] .course-lesson-row{background:#ffffff;border-color:rgba(26,26,46,.12)}.course-lesson-row:hover{border-color:rgba(239,131,84,.38);transform:translateY(-1px)}.course-lesson-row.is-complete{background:rgba(16,185,129,.06);border-color:rgba(16,185,129,.2)}.course-lesson-dot{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--color-border);border-radius:50%;color:#fff;font-size:10px}.course-lesson-row.is-complete .course-lesson-dot{background:var(--color-green);border-color:var(--color-green)}.knowledge-calendar-shell{--page-max:1180px}.knowledge-calendar-layout{display:grid;grid-template-columns:minmax(190px,250px) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.knowledge-calendar-filters{display:grid;grid-gap:14px;gap:14px;position:-webkit-sticky;position:sticky;top:72px}.knowledge-filter-list{display:grid;grid-gap:6px;gap:6px}.knowledge-filter-link{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px;align-items:center;border:1px solid transparent;border-radius:8px;color:var(--color-text);font-size:13px;padding:8px 9px;text-decoration:none}.knowledge-filter-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.knowledge-filter-link strong{border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-muted);font-size:11px;padding:2px 7px}.knowledge-filter-link.is-active{background:var(--color-accent-dim);border-color:rgba(239,131,84,.35);color:var(--color-accent)}.knowledge-calendar-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;margin-bottom:18px}.knowledge-calendar-window{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:16px;gap:16px;align-items:center;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.1);margin-bottom:16px;padding:14px}[data-theme=light] .knowledge-calendar-window{background:#ffffff;border-color:rgba(26,26,46,.12)}.knowledge-calendar-window-copy{color:var(--color-text-muted);font-size:13px;line-height:1.55;margin-top:4px}.knowledge-calendar-window-metrics{display:flex;align-items:center;gap:8px;color:var(--color-text-muted);font-family:var(--font-mono);font-size:11px}.knowledge-calendar-window-metrics strong{color:var(--color-accent)}.knowledge-upcoming-list{display:flex;gap:8px;overflow-x:auto;margin:-4px 0 18px;padding-bottom:4px}.knowledge-upcoming-item{display:grid;grid-gap:3px;gap:3px;min-width:145px;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.1);color:var(--color-text);padding:9px 10px;text-decoration:none}[data-theme=light] .knowledge-upcoming-item{background:#ffffff;border-color:rgba(26,26,46,.12)}.knowledge-upcoming-item span{color:var(--color-accent);font-family:var(--font-mono);font-size:10px}.knowledge-upcoming-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.knowledge-calendar-title{color:var(--color-text);font-family:var(--font-mono);font-size:20px;font-weight:800;text-align:center}.knowledge-calendar-grid,.knowledge-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.knowledge-calendar-weekdays{color:var(--color-text-muted);font-family:var(--font-mono);font-size:11px;font-weight:800;letter-spacing:.08em;margin-bottom:8px;text-transform:uppercase}.knowledge-calendar-weekdays span{padding:0 8px}.knowledge-calendar-grid{gap:6px}.knowledge-calendar-day{display:flex;flex-direction:column;justify-content:space-between;min-height:96px;border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.1);color:var(--color-text);padding:9px;text-decoration:none;transition:border-color .15s,background .15s,transform .15s}[data-theme=light] .knowledge-calendar-day{background:#ffffff;border-color:rgba(26,26,46,.12)}.knowledge-calendar-day.is-selected,.knowledge-calendar-day:hover{border-color:rgba(239,131,84,.55);transform:translateY(-1px)}.knowledge-calendar-day.is-selected{background:var(--color-accent-dim);box-shadow:inset 0 0 0 1px rgba(239,131,84,.45),0 12px 28px rgba(239,131,84,.1)}[data-theme=light] .knowledge-calendar-day.is-selected{background:#fff7ed;box-shadow:inset 0 0 0 1px rgba(239,131,84,.45),0 10px 24px rgba(239,131,84,.14)}.knowledge-calendar-day.is-muted{opacity:.42}.knowledge-calendar-date{font-family:var(--font-mono);font-size:13px;font-weight:800}.knowledge-calendar-day.is-selected .knowledge-calendar-date{color:var(--color-accent)}.knowledge-calendar-counts{display:grid;grid-gap:4px;gap:4px;color:var(--color-text-muted);font-size:11px}.knowledge-calendar-counts span{width:-moz-fit-content;width:fit-content;border:1px solid var(--color-border);border-radius:999px;padding:2px 7px}.knowledge-day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-top:18px}.knowledge-day-section{display:grid;align-content:start;grid-gap:10px;gap:10px}.knowledge-day-list{display:grid;grid-gap:8px;gap:8px}.knowledge-day-item{border:1px solid var(--color-border);border-radius:8px;background:rgba(0,0,0,.1);padding:13px}[data-theme=light] .knowledge-day-item{background:#ffffff;border-color:rgba(26,26,46,.12)}.graph-sidebar.is-hidden{width:0;border-left:none;box-shadow:none}.graph-legend{position:fixed;bottom:20px;left:20px;display:flex;gap:16px;background:color-mix(in srgb,var(--color-bg-card) 84%,transparent);border:1px solid var(--color-border);border-radius:8px;padding:10px 16px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.graph-count{position:fixed;bottom:20px;right:20px;transition:right .2s ease;color:var(--color-text-muted);font-size:12px}.graph-count.has-sidebar{right:340px}@media (max-width:900px){.app-hero{grid-template-columns:1fr;align-items:start}.app-hero-metrics{min-width:0;width:100%}.dashboard-grid,.dashboard-week-strip{grid-template-columns:1fr}.dashboard-sidebar,.dashboard-week-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-sidebar{display:grid!important}.lesson-root{min-height:100vh;height:auto;overflow:visible}.lesson-topbar{height:auto;min-height:48px;align-items:flex-start;flex-direction:column;padding:10px 16px}.lesson-stage-tabs{width:100%;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.lesson-stage-tabs>*{flex-shrink:0}.lesson-body,.lesson-main{min-height:0;overflow:visible}.lesson-scroll-pane{padding:24px 18px}.lesson-split-stage{min-height:calc(100vh - 116px)}.lesson-instructions-row{flex-direction:column;gap:12px}.lesson-chat-sidebar{position:fixed;bottom:max(10px,env(safe-area-inset-bottom));left:10px;max-height:min(74dvh,calc(100dvh - 92px));right:10px;width:auto;z-index:30;border:1px solid var(--color-border);border-radius:8px;background:color-mix(in srgb,var(--color-bg-card) 98%,transparent);box-shadow:0 18px 60px rgba(0,0,0,.34);overflow:hidden}.lesson-chat-header{padding:10px 12px}.lesson-chat-messages{padding:12px}.lesson-chat-code-action{padding:0 12px 8px}.lesson-chat-composer{gap:7px;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.lesson-chat-input{font-size:16px;max-height:118px}.lesson-chat-send{height:40px;width:40px}.graph-root{height:calc(100vh - 0px)}.graph-body{position:relative}.graph-sidebar{position:fixed;left:12px;right:12px;bottom:12px;width:auto;max-height:46vh;overflow:auto;z-index:25;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 18px 56px rgba(0,0,0,.32)}.graph-sidebar.is-hidden{width:auto;max-height:0;border:none}.graph-legend{left:12px;right:12px;bottom:12px;gap:10px;justify-content:space-between;overflow-x:auto;padding:8px 10px}.graph-count,.graph-count.has-sidebar{right:14px;bottom:58px}}@media (max-width:640px){.page-shell{padding:24px 16px}.app-hero{padding:22px}.app-hero-metrics{grid-template-columns:1fr}.app-header-bar{padding:0 16px}.app-header-mobile-menu{padding:8px 16px 16px}.app-header-mobile-actions{align-items:stretch;flex-direction:column}.dashboard-hero{margin-bottom:28px}.dashboard-continue-card,.dashboard-hero{flex-direction:column}.dashboard-week-metrics{grid-template-columns:1fr}.dashboard-continue-top{flex-direction:column}.dashboard-continue-top>a{width:100%;text-align:center}.review-card-row{grid-template-columns:1fr}.review-card-actions{justify-content:space-between}.dashboard-course-row{align-items:flex-start;flex-direction:column}.dashboard-course-row>a{width:100%}.knowledge-calendar-layout,.knowledge-day-grid,.knowledge-layout{grid-template-columns:1fr}.knowledge-calendar-filters{position:static}.knowledge-calendar-day{min-height:74px}.dashboard-sidebar{display:flex!important;flex-direction:column}.course-header-actions{align-items:stretch;flex-direction:column}.course-header-actions>a,.course-header-actions>button,.course-header-actions>div{margin-left:0!important;width:100%}.course-lesson-row{align-items:flex-start!important;gap:10px!important}.course-lesson-row .difficulty-badge{align-self:flex-start}.lesson-topbar h1{max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-scroll-pane{padding:20px 16px}.lesson-chat-sidebar{bottom:0;left:0;max-height:min(82dvh,calc(100dvh - 68px));right:0;border-bottom:none;border-left:none;border-radius:12px 12px 0 0;border-right:none}.lesson-chat-subtitle{display:none}}.landing-nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;background:rgba(6,8,16,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border)}[data-theme=light] .landing-nav{background:rgba(255,255,255,.92);box-shadow:0 1px 3px rgba(0,0,0,.06)}.landing-nav-links{display:flex;align-items:center;gap:24px}.landing-nav-link{font-size:13px;color:var(--color-text-muted);text-decoration:none;transition:color .1s;white-space:nowrap}.landing-nav-link:hover{color:var(--color-text)}@media (max-width:768px){.landing-nav{padding:0 20px}.landing-nav-links{gap:16px}.landing-nav-hide-mobile{display:none}}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(28,32,48,.78);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border)}[data-theme=light] .app-header{background:rgba(255,255,255,.84);box-shadow:0 1px 3px rgba(0,0,0,.06)}.app-header-bar{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 24px;gap:24px}.app-header-left{display:flex;align-items:center;gap:32px;min-width:0}.app-header-logo{display:inline-flex;align-items:center;gap:9px;color:var(--color-text);font-weight:600;font-size:15px;text-decoration:none;flex-shrink:0}.app-header-logo-mark{width:28px;height:28px;border-radius:7px;box-shadow:0 0 24px rgba(239,131,84,.18)}.app-header-logo-text{font-family:var(--font-mono);font-size:14px;font-weight:800}.app-header-nav{display:flex;gap:20px}.app-header-nav-link{color:var(--color-text-muted);font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:.03em;text-decoration:none;transition:color .1s;white-space:nowrap}.app-header-nav-link:hover{color:var(--color-text)}.app-header-nav-link.active{color:var(--color-text);font-weight:500}.app-header-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.app-header-cta{background:var(--color-accent);border-radius:var(--radius-md);color:#fff!important;font-size:13px;font-weight:500;padding:6px 14px;text-decoration:none;white-space:nowrap}.app-header-cta:hover{background:var(--color-accent-hover)}.app-header-hamburger{display:none;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;font-size:16px;line-height:1;padding:5px 8px;transition:border-color .1s,color .1s}.app-header-hamburger:hover{border-color:var(--color-muted-border)}.app-header-mobile-menu{border-top:1px solid var(--color-border);padding:8px 24px 16px;display:flex;flex-direction:column;gap:2px}.app-header-mobile-link{color:var(--color-text-muted);font-size:15px;font-weight:400;padding:10px 0;text-decoration:none;transition:color .1s;border-bottom:1px solid var(--color-border)}.app-header-mobile-link:last-of-type{border-bottom:none}.app-header-mobile-link.active,.app-header-mobile-link:hover{color:var(--color-text)}.app-header-mobile-link.active{font-weight:500}.app-header-mobile-actions{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border)}@media (max-width:768px){.app-header-desktop-only,.app-header-nav{display:none}.app-header-hamburger{display:flex}}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glow-pulse{0%,to{opacity:.35;transform:scale(1)}50%{opacity:.55;transform:scale(1.08)}}@keyframes drift{0%{transform:translate(0)}33%{transform:translate(6px,-4px)}66%{transform:translate(-4px,5px)}to{transform:translate(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes edge-shimmer{0%,to{opacity:.08}50%{opacity:.22}}.science-row{transition:background .15s}.science-row:hover,[data-theme=light] .science-row:hover{background:rgba(0,0,0,.03)}