@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..900;1,9..144,300..900&family=Epilogue:ital,wght@0,400..900;1,400..900&family=JetBrains+Mono:wght@400;700&display=swap";.command-palette-trigger{position:fixed;right:24px;bottom:80px;z-index:139;display:inline-flex;align-items:center;gap:10px;height:42px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-surface) 88%,transparent);color:var(--text-primary);box-shadow:0 12px 32px #0f172a2e;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:13px;font-weight:700;transition:transform var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.command-palette-trigger:hover{transform:translateY(-2px);border-color:var(--border-hover)}.command-palette-trigger kbd{font-size:10px;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:3px 6px}.command-palette{position:fixed;inset:0;z-index:200}.command-palette__backdrop{position:absolute;inset:0;border:0;background:#02081799;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.command-palette__panel{position:relative;width:min(760px,calc(100vw - 32px));margin:10vh auto 0;border-radius:24px;border:1px solid var(--border);background:radial-gradient(circle at top right,color-mix(in srgb,var(--primary-500) 9%,transparent),transparent 34%),color-mix(in srgb,var(--bg-surface) 96%,transparent);box-shadow:0 30px 80px #02081773;overflow:hidden}.command-palette__search{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--border)}.command-palette__search svg{color:var(--text-muted);flex-shrink:0}.command-palette__search input{flex:1;border:0;background:transparent;color:var(--text-primary);font-size:15px;font-weight:600}.command-palette__search input:focus{outline:none}.command-palette__search input::placeholder{color:var(--text-muted)}.command-palette__search kbd{font-size:11px;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:4px 8px}.command-palette__results{max-height:min(70vh,620px);overflow-y:auto;padding:8px}.command-palette__item{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:flex-start;gap:12px;padding:14px 12px;border-radius:16px;border:0;background:transparent;color:inherit;text-align:left;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}.command-palette__item:hover,.command-palette__item.is-active{background:color-mix(in srgb,var(--primary-500) 10%,transparent);transform:translateY(-1px)}.command-palette__item-icon{width:34px;height:34px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);border:1px solid var(--border);color:var(--primary-400);flex-shrink:0}.command-palette__item-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.command-palette__item-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.command-palette__item-title-row strong{color:var(--text-primary);font-size:14px;line-height:1.35}.command-palette__item-subtitle{color:var(--text-secondary);font-size:12px;line-height:1.5}.command-palette__item-note{color:var(--text-muted);font-size:11px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-palette__item-section{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding-top:2px}.command-palette__pill{display:inline-flex;align-items:center;gap:4px;min-height:20px;padding:0 8px;border-radius:999px;background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);border:1px solid var(--border);color:var(--text-muted);font-size:10px;font-weight:700}.command-palette__pill--favorite{color:var(--warning-400);border-color:color-mix(in srgb,var(--warning-500) 35%,transparent)}.command-palette__empty{display:flex;align-items:center;gap:12px;padding:20px 16px;color:var(--text-secondary)}.command-palette__empty strong{display:block;color:var(--text-primary);margin-bottom:2px}@media(max-width:768px){.command-palette-trigger{right:16px;bottom:72px;height:40px;padding:0 12px}.command-palette-trigger span,.command-palette-trigger kbd,.command-palette__item-section{display:none}.command-palette__panel{width:calc(100vw - 16px);margin-top:24px}.command-palette__search{padding:16px}.command-palette__item{grid-template-columns:auto minmax(0,1fr)}}:root{--bg-base: #080b12;--bg-surface: #0f1117;--bg-elevated: #161923;--bg-overlay: #1e2333;--bg-hover: #252d40;--primary-50: #EAF6FF;--primary-100: #CCEBFF;--primary-300: #73CFFF;--primary-400: #33BAFF;--primary-500: #00A3FF;--primary-600: #0082CC;--primary-700: #006299;--accent-400: #f87171;--accent-500: #ef4444;--success-400: #4ade80;--success-500: #22c55e;--success-600: #16a34a;--warning-400: #fbbf24;--warning-500: #f59e0b;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #475569;--text-disabled: #334155;--border: #1e2d3d;--border-hover: #2d4461;--border-focus: var(--primary-500);--syntax-keyword: #569cd6;--syntax-string: #ce9178;--syntax-number: #b5cea8;--syntax-comment: #6a9955;--syntax-fn: #dcdcaa;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(14, 165, 233, .25);--sidebar-w: 260px;--t-fast: .15s ease;--t-normal: .25s ease;--t-slow: .4s ease}body[data-theme=light]{--bg-base: #FAF9F6;--bg-surface: #ffffff;--bg-elevated: #ffffff;--bg-overlay: #F3F4F6;--bg-hover: #E5E7EB;--text-primary: #111827;--text-secondary: #4B5563;--text-muted: #6B7280;--text-disabled: #9CA3AF;--border: #E5E7EB;--border-hover: #D1D5DB;--border-focus: #00A3FF;--shadow-sm: 0 4px 8px rgba(0, 0, 0, .02);--shadow-md: 0 10px 30px rgba(0, 0, 0, .05);--shadow-lg: 0 20px 50px rgba(0, 0, 0, .08);--shadow-glow: 0 0 20px rgba(0, 163, 255, .16);--bg-dark: #FAF9F6;--panel-bg: rgba(255, 255, 255, .9);--panel-border: rgba(0, 0, 0, .05);--panel-hover: rgba(0, 0, 0, .03);--glass-shadow: 0 10px 30px rgba(0, 0, 0, .05);--landing-bg: #FAF9F6;--landing-surface: #ffffff;--landing-elevated: #ffffff;--landing-border: #E5E7EB;--landing-glow: rgba(0, 163, 255, .12);--text-primary-v2: #111827;--text-secondary-v2: #4B5563;--text-muted-v2: #6B7280}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{overflow:hidden}body[data-page=landing],body[data-page=support],body[data-page=profile],body[data-page=review],body[data-page=problems],body[data-page=simulator]{overflow:auto}#root{height:auto;min-height:100%}body{font-family:Epilogue,system-ui,sans-serif;background:var(--bg-base);color:var(--text-primary);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color var(--t-normal),color var(--t-normal)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-overlay);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}h1,h2,h3,h4{color:var(--text-primary);font-weight:700;line-height:1.18;letter-spacing:-.02em;text-wrap:balance}h1,h2{font-family:Fraunces,serif}h3,h4{font-family:Epilogue,sans-serif}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1rem}p{color:var(--text-secondary);margin-bottom:.75rem;line-height:1.72;text-wrap:pretty}p:last-child{margin-bottom:0}li{line-height:1.68}code{font-family:JetBrains Mono,monospace;font-size:.8em}pre code{font-size:13px}a{color:var(--primary-400);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;background:none;font-family:inherit}kbd{font-family:JetBrains Mono,monospace;font-size:11px;background:var(--bg-overlay);border:1px solid var(--border-hover);border-radius:var(--radius-sm);padding:1px 5px;color:var(--text-secondary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.app-layout{height:100vh;width:100%;overflow:hidden}.app-main{display:flex;flex-direction:column;overflow:hidden;min-width:0;height:100%;width:100%}.course-shell{background:var(--bg-base)}.course-shell--zen .course-topbar{display:none}.course-shell.course-shell--light{--bg-base: #FAF9F6;--bg-surface: #ffffff;--bg-elevated: #ffffff;--bg-overlay: #F3F4F6;--bg-hover: #E5E7EB;--text-primary: #111827;--text-secondary: #4B5563;--text-muted: #6B7280;--text-disabled: #9CA3AF;--border: #E5E7EB;--border-hover: #D1D5DB}.course-topbar{position:fixed;top:0;left:0;right:0;height:64px;z-index:120;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 16px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-surface) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.course-topbar-left{display:flex;align-items:center;gap:16px;min-width:0}.course-nav-back{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 12px 0 10px;border-radius:8px;border:1px solid transparent;color:var(--text-secondary);background:transparent;font-size:13px;font-weight:500;transition:all var(--t-fast)}.course-nav-back:hover{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border-hover)}.course-topbar-separator{width:1px;height:24px;background:var(--border);flex-shrink:0}.course-topbar-meta{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px}.course-breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;min-width:0}.course-breadcrumb-module{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-breadcrumb-icon{color:var(--text-secondary);opacity:.8}.course-breadcrumb-sep{color:var(--text-disabled);font-weight:400}.course-breadcrumb-lesson{color:var(--text-primary);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-lesson-label{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500}.course-lesson-label-mod{color:var(--primary-400);letter-spacing:.02em}.course-lesson-label-dot{color:var(--text-disabled);font-size:8px}.course-lesson-label-les{color:var(--text-muted)}.course-topbar-stats{display:flex;align-items:center;gap:10px}.course-stat-chip{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:12px;border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--bg-elevated) 92%,white 8%),var(--bg-overlay));color:var(--text-primary);padding:0 12px;font-size:12px;font-weight:600;box-shadow:0 6px 14px #02061724;transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast)}.course-stat-chip:hover{transform:translateY(-1px);border-color:var(--border-hover);box-shadow:0 8px 18px #0206172e}.course-stat-chip-icon{flex:0 0 auto}.course-stat-chip--streak{border-color:color-mix(in srgb,#fb923c 55%,var(--border) 45%);background:linear-gradient(135deg,color-mix(in srgb,#fb923c 16%,var(--bg-elevated) 84%),var(--bg-overlay))}.course-stat-chip--streak .course-stat-chip-icon{color:#f97316}.course-stat-chip--xp{border-color:color-mix(in srgb,#38bdf8 52%,var(--border) 48%);background:linear-gradient(135deg,color-mix(in srgb,#38bdf8 14%,var(--bg-elevated) 86%),var(--bg-overlay))}.course-stat-chip--xp .course-stat-chip-icon{color:#0ea5e9}.course-stat-value{font-variant-numeric:tabular-nums;font-weight:700}.course-stat-label{font-size:11px;color:var(--text-muted);font-weight:600}.course-coach{display:flex;align-items:stretch;justify-content:space-between;gap:14px;min-height:104px;padding:12px 16px;border-bottom:1px solid var(--border);background:linear-gradient(140deg,color-mix(in srgb,var(--bg-surface) 80%,#0ea5e9 20%) 0%,var(--bg-surface) 100%)}.course-coach-main{display:flex;flex-direction:column;justify-content:center;gap:5px}.course-coach-title{margin:0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-300);font-weight:700}.course-coach-text{margin:0;color:var(--text-primary);font-weight:600;max-width:560px}.course-progress-chip{min-width:280px;max-width:360px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);display:flex;flex-direction:column;justify-content:center;gap:7px}.course-progress-chip-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-secondary)}.course-progress-chip-head strong{color:var(--text-primary)}.course-progress-track{width:100%;height:6px;border-radius:999px;overflow:hidden;background:var(--bg-overlay)}.course-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-500),var(--success-500));border-radius:999px}.course-progress-foot{margin:0;font-size:11px;color:var(--text-muted)}.sidebar{display:flex;flex-direction:column;background:var(--bg-surface);border-right:1px solid var(--border);overflow:hidden;height:100%}.sidebar-header{padding:20px 16px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-logo{display:flex;align-items:center;gap:10px;margin-bottom:4px}.sidebar-logo .brand-logo{transform:translateY(1px)}.sidebar-subtitle{font-size:11px;color:var(--text-muted);margin:0}.sidebar-nav{flex:1;overflow-y:auto;padding:8px 0}.module-group{border-bottom:1px solid var(--border)}.module-header{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;text-align:left;transition:background var(--t-fast);color:var(--text-primary)}.module-header:hover{background:var(--bg-hover)}.module-icon{font-size:16px;flex-shrink:0}.module-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.module-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-progress{font-size:10px;color:var(--text-muted)}.progress-ring{flex-shrink:0;transform:rotate(-90deg)}.progress-ring-bg{fill:none;stroke:var(--bg-overlay)}.progress-ring-fill{fill:none;stroke:var(--primary-500);stroke-linecap:round;transition:stroke-dasharray var(--t-slow)}.lesson-list{list-style:none;padding:0 0 4px}.lesson-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 14px 7px 32px;font-size:12.5px;color:var(--text-secondary);text-align:left;transition:all var(--t-fast);border-left:2px solid transparent}.lesson-item:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.lesson-item--active{background:#0ea5e914;color:var(--primary-300);border-left-color:var(--primary-500)}.lesson-item--done{color:var(--success-400)}.lesson-item--done:hover{color:var(--success-500)}.lesson-item--locked{opacity:.35;cursor:not-allowed;color:var(--text-disabled)}.lesson-item--locked:hover{opacity:.35;background:transparent;color:var(--text-disabled)}.lesson-item--next{background:#fbbf240f;border-left-color:var(--warning-400);color:var(--warning-400);font-weight:500}.lesson-item--next:hover{background:#fbbf241f}.lesson-item-icon{flex-shrink:0}.lesson-item-content{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.lesson-item-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-item-step{flex-shrink:0;font-size:10px;color:var(--text-muted);opacity:.7;font-weight:500}.lesson-item--active .lesson-item-step{color:var(--primary-400);opacity:.8}.lesson-next-badge{color:var(--warning-400);margin-left:4px;font-size:12px;animation:pulse 2s infinite}.icon-done{color:var(--success-500)}.icon-locked{color:var(--text-muted)}.icon-next{color:var(--warning-400)}.icon-open{color:var(--text-muted)}.sidebar-footer{padding:12px 14px;border-top:1px solid var(--border);flex-shrink:0}.total-progress-row{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted);margin-bottom:6px}.total-progress-bar{height:3px;background:var(--bg-overlay);border-radius:2px;overflow:hidden}.total-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-500),var(--primary-300));transition:width var(--t-slow);border-radius:2px}.sidebar-auth{padding:12px 14px;border-top:1px solid var(--border);background:var(--bg-surface);flex-shrink:0}.user-login{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--t-fast)}.user-login:hover{background:var(--bg-hover);border-color:var(--border-hover)}.sidebar-user-info{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0}.user-email{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.user-logout{background:transparent;border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-sm);color:#f87171;font-size:11px;padding:6px 12px;cursor:pointer;transition:all var(--t-fast);white-space:nowrap;font-weight:500}.user-logout:hover{color:#fca5a5;border-color:#ef444499;background:#ef44441f}.module-group[data-module-index="0"]{--module-accent: #38bdf8;--module-accent-dim: rgba(56,189,248,.1)}.module-group[data-module-index="1"]{--module-accent: #a78bfa;--module-accent-dim: rgba(167,139,250,.1)}.module-group[data-module-index="2"]{--module-accent: #34d399;--module-accent-dim: rgba(52,211,153,.1)}.module-group[data-module-index="3"]{--module-accent: #fb923c;--module-accent-dim: rgba(251,146,60,.1)}.module-group[data-module-index="4"]{--module-accent: #f472b6;--module-accent-dim: rgba(244,114,182,.1)}.module-group[data-module-index="5"]{--module-accent: #22d3ee;--module-accent-dim: rgba(34,211,238,.1)}.module-group[data-module-index="6"]{--module-accent: #facc15;--module-accent-dim: rgba(250,204,21,.1)}.module-group[data-module-index="7"]{--module-accent: #818cf8;--module-accent-dim: rgba(129,140,248,.1)}.module-group[data-module-index="8"]{--module-accent: #f87171;--module-accent-dim: rgba(248,113,113,.1)}.module-group[data-module-index="9"]{--module-accent: #4ade80;--module-accent-dim: rgba(74,222,128,.1)}.module-group[data-module-index="10"]{--module-accent: #e879f9;--module-accent-dim: rgba(232,121,249,.1)}.module-group .module-icon{color:var(--module-accent, var(--primary-400));transition:transform .15s ease}.module-header:hover .module-icon{transform:scale(1.18)}.module-group .progress-ring-fill{stroke:var(--module-accent, var(--primary-500))}.module-group .module-progress{color:var(--module-accent, var(--text-muted));opacity:.8}.module-header{border-left:3px solid transparent;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.module-header[aria-expanded=true]{border-left-color:var(--module-accent, var(--primary-500));background:var(--module-accent-dim, rgba(14,165,233,.08))}.module-header:hover .module-title{color:var(--module-accent, var(--text-primary))}@keyframes sidebar-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.lesson-list{animation:sidebar-slide-in .16s ease;position:relative}.lesson-list:before{content:"";position:absolute;left:41px;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,var(--module-accent, var(--border)),transparent);opacity:.18;pointer-events:none}.module-group .lesson-item--active{background:var(--module-accent-dim, rgba(14,165,233,.08));color:var(--module-accent, var(--primary-300));border-left-color:var(--module-accent, var(--primary-500))}.lesson-item:not(.lesson-item--locked):hover{border-left-color:var(--module-accent, var(--border-hover));transform:translate(2px)}.lesson-item--active .lesson-step-pill{background:var(--module-accent-dim, rgba(14,165,233,.12));border-color:var(--module-accent, var(--primary-500));color:var(--module-accent, var(--primary-300))}.module-group .lesson-visual-pill{border-color:color-mix(in srgb,var(--module-accent, var(--primary-500)) 45%,var(--border));background:color-mix(in srgb,var(--module-accent, var(--primary-500)) 12%,transparent);color:var(--module-accent, var(--primary-300))}.user-profile-btn{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-md);padding:6px 10px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--t-fast);flex:1;overflow:hidden}.user-profile-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);color:var(--text-primary)}.user-profile-btn svg{flex-shrink:0}.user-profile-btn .user-email{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-container{position:fixed;bottom:24px;right:24px;z-index:1000;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.validation-toast{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;min-width:320px;max-width:400px;box-shadow:var(--shadow-lg)}.validation-toast--success{border-left:4px solid var(--success-500)}.validation-toast--error{border-left:4px solid var(--accent-500)}.validation-toast__header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.validation-toast__icon{display:flex;align-items:center;justify-content:center}.validation-toast--success .validation-toast__icon{color:var(--success-500)}.validation-toast--error .validation-toast__icon{color:var(--accent-500)}.validation-toast__title{flex:1;font-weight:600;font-size:14px;color:var(--text-primary)}.validation-toast__close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:all var(--t-fast)}.validation-toast__close:hover{color:var(--text-primary);background:var(--bg-hover)}.validation-toast__content{margin-bottom:16px}.validation-toast__message{font-size:13px;color:var(--text-secondary);margin:0 0 8px;line-height:1.5}.validation-toast__hint{font-size:12px;color:var(--warning-400);margin:0;padding:8px;background:#fbbf2414;border-radius:var(--radius-md);border:1px solid rgba(251,191,36,.2)}.validation-toast__actions{display:flex;gap:8px}.validation-toast__btn{flex:1;padding:8px 12px;border-radius:var(--radius-md);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--t-fast);display:flex;align-items:center;justify-content:center;gap:6px}.validation-toast__btn--primary{background:linear-gradient(135deg,var(--success-600),var(--success-500));color:#fff;border:none}.validation-toast__btn--primary:hover{filter:brightness(1.1)}.validation-toast__btn--secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.validation-toast__btn--secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.lesson-view{height:100%;width:100%;overflow:hidden;min-width:0}.pane-lesson{display:flex;flex-direction:column;border-right:1px solid var(--border);overflow:hidden;min-width:0;height:100%;width:100%}.pane-workspace{display:flex;flex-direction:column;overflow:hidden;min-width:0;height:100%;width:100%}.lesson-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.lesson-panel--zen{border-right:1px solid var(--border)}.lesson-zen-header{display:flex;align-items:baseline;gap:8px;padding:12px 14px 8px;border-bottom:1px solid var(--border);flex-shrink:0}.lesson-zen-title{font-size:.8rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.3;flex:1;min-width:0}.lesson-zen-content{overflow-y:auto;padding:10px 14px 16px;font-size:.82rem}.lesson-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;padding:0 16px;gap:4px}.lesson-tabs--with-actions{align-items:center}.lesson-sidebar-toggle{width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);border:1px solid transparent;margin-right:2px}.lesson-sidebar-toggle:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.lesson-tab{display:flex;align-items:center;gap:6px;padding:10px 12px 9px;font-size:12.5px;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;transition:all var(--t-fast)}.lesson-tab:hover{color:var(--text-primary)}.lesson-tab--active{color:var(--primary-400);border-bottom-color:var(--primary-500)}.lesson-tts-btn{margin-left:auto;width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);border:1px solid transparent;flex-shrink:0;transition:all var(--t-fast)}.lesson-tts-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.lesson-tts-btn--active{color:var(--primary-400);background:color-mix(in srgb,var(--primary-500) 12%,transparent);border-color:color-mix(in srgb,var(--primary-500) 30%,transparent)}.lesson-content{flex:1;overflow-y:auto;padding:20px 20px 24px}.lesson-title-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;flex-wrap:wrap}.lesson-title{font-size:1.1rem;font-weight:700;flex:1}.lesson-project-icon{display:inline-flex;align-items:center;justify-content:center;margin-right:8px;padding:3px 8px;border-radius:8px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#6d28d9,#4f46e5);vertical-align:middle}.lesson-tags{display:flex;gap:4px;flex-wrap:wrap}.lesson-tag{font-size:10px;background:#0ea5e91f;color:var(--primary-400);padding:2px 7px;border-radius:20px;border:1px solid rgba(14,165,233,.2);font-weight:500}.lesson-tag--project{background:linear-gradient(135deg,#6d28d9,#4f46e5);color:#fff;border-color:#6d28d966;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.lesson-study-card{margin-bottom:14px;background:color-mix(in srgb,var(--bg-elevated) 85%,transparent);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.lesson-study-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--primary-400);margin:0 0 6px;font-weight:700}.lesson-study-list{list-style:disc;padding-left:16px;margin:0;color:var(--text-secondary);font-size:12.5px}.lesson-study-list li{margin-bottom:4px}.lesson-study-list li:last-child{margin-bottom:0}.study-organizer-card{display:flex;flex-direction:column;gap:12px;padding:14px;margin-top:16px;border-radius:16px;border:1px solid var(--border);background:radial-gradient(circle at top right,color-mix(in srgb,var(--primary-500) 10%,transparent),transparent 42%),color-mix(in srgb,var(--bg-surface) 92%,transparent);box-shadow:0 12px 30px #0f172a1f}.study-organizer-card--compact{margin-top:0}.study-organizer-card__top{display:flex;align-items:center;justify-content:space-between;gap:12px}.study-organizer-card__eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.study-organizer-card__favorite{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:700;transition:all var(--t-fast)}.study-organizer-card__favorite:hover{border-color:var(--border-hover);color:var(--text-primary)}.study-organizer-card__favorite.is-active{border-color:color-mix(in srgb,var(--warning-500) 55%,transparent);background:color-mix(in srgb,var(--warning-500) 12%,transparent);color:var(--warning-400)}.study-organizer-card__title-row{display:flex;align-items:flex-start;gap:10px;color:var(--text-secondary)}.study-organizer-card__title-row strong{display:block;color:var(--text-primary);font-size:13px;line-height:1.35}.study-organizer-card__title-row span{display:block;margin-top:2px;font-size:12px;line-height:1.5}.study-organizer-card__textarea{width:100%;min-height:108px;resize:vertical;border-radius:14px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);color:var(--text-primary);padding:12px 13px;font:inherit;line-height:1.65;transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast)}.study-organizer-card__textarea::placeholder{color:var(--text-muted)}.study-organizer-card__textarea:focus{outline:none;border-color:color-mix(in srgb,var(--primary-500) 48%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-500) 18%,transparent)}.study-organizer-card__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-muted);font-size:11px}.study-organizer-card__updated{display:inline-flex;align-items:center;gap:5px}.lesson-markdown{line-height:1.7}.lesson-markdown h2{font-size:1rem;margin:20px 0 8px;color:var(--text-primary);padding-bottom:6px;border-bottom:1px solid var(--border)}.lesson-markdown h3{font-size:.9rem;margin:16px 0 6px;color:var(--primary-300)}.lesson-markdown p{color:var(--text-secondary);margin-bottom:10px}.lesson-markdown ul,.lesson-markdown ol{padding-left:18px;color:var(--text-secondary);margin-bottom:10px}.lesson-markdown li{margin-bottom:4px}.lesson-markdown strong{color:var(--text-primary);font-weight:600}.lesson-markdown code{background:var(--bg-overlay);border:1px solid var(--border);padding:1px 5px;border-radius:var(--radius-sm);color:var(--syntax-string);font-size:.8em}.lesson-markdown pre{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;overflow-x:auto;margin:12px 0}.lesson-markdown pre code{background:none;border:none;padding:0;color:var(--text-primary);font-size:13px}.lesson-markdown table{width:100%;border-collapse:collapse;margin:12px 0}.lesson-markdown th{background:var(--bg-overlay);padding:7px 10px;font-size:12px;font-weight:600;text-align:left;color:var(--text-secondary);border:1px solid var(--border)}.lesson-markdown td{padding:6px 10px;font-size:12.5px;color:var(--text-secondary);border:1px solid var(--border)}.lesson-markdown tr:hover td{background:var(--bg-hover)}.lesson-instructions{background:linear-gradient(135deg,#0ea5e914,#0ea5e905);border:1px solid rgba(14,165,233,.3);border-radius:var(--radius-lg);padding:20px;position:relative;overflow:hidden;margin-bottom:24px;box-shadow:0 8px 32px #0ea5e914}.lesson-instructions:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(to bottom,#38bdf8,#2563eb);box-shadow:0 0 10px #38bdf8}.lesson-markdown--instructions{background:color-mix(in srgb,var(--bg-elevated) 80%,transparent);border:1px solid rgba(14,165,233,.15);border-radius:var(--radius-md);padding:16px;box-shadow:inset 0 2px 8px #0003}.lesson-markdown blockquote{border-left:3px solid var(--primary-500);padding-left:12px;color:var(--text-muted);font-style:italic;margin:10px 0}.lesson-divider{height:1px;background:var(--border);margin:18px 0}.lesson-instructions-title{display:flex;align-items:center;gap:8px;font-size:1.1rem;font-weight:700;color:#38bdf8;margin-top:0;margin-bottom:16px;text-transform:uppercase;letter-spacing:.05em;text-shadow:0 0 12px rgba(56,189,248,.3)}.lesson-instructions-title svg{color:#38bdf8;filter:drop-shadow(0 0 4px rgba(56,189,248,.5))}.lesson-meta-badges{display:flex;align-items:center;gap:6px;flex-shrink:0}.lesson-progress-badge{font-size:10px;font-weight:600;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;padding:2px 8px;letter-spacing:.04em}.lesson-xp-badge{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;color:#fbbf24;background:#fbbf241f;border:1px solid rgba(251,191,36,.25);border-radius:20px;padding:2px 9px 2px 6px;letter-spacing:.02em;animation:xpPulse 3s ease-in-out infinite}.lesson-xp-badge svg{color:#fbbf24;filter:drop-shadow(0 0 3px rgba(251,191,36,.6))}.lesson-xp-badge--project{color:#a78bfa;background:#a78bfa1f;border-color:#a78bfa4d}.lesson-xp-badge--project svg{color:#a78bfa;filter:drop-shadow(0 0 3px rgba(167,139,250,.6))}@keyframes xpPulse{0%,to{box-shadow:0 0 #fbbf2400}50%{box-shadow:0 0 8px #fbbf2426}}.lesson-expected-output{margin-top:16px;background:#10b9810f;border:1px solid rgba(16,185,129,.3);border-left:3px solid #10b981;border-radius:var(--radius-md);padding:12px 14px;animation:fadeIn var(--t-fast) ease}.lesson-expected-output__header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#10b981;margin-bottom:8px}.lesson-expected-output__header svg{filter:drop-shadow(0 0 3px rgba(16,185,129,.5))}.lesson-expected-output__code{margin:0;padding:10px 12px;background:var(--bg-surface);border:1px solid rgba(16,185,129,.15);border-radius:var(--radius-sm);font-family:JetBrains Mono,monospace;font-size:12.5px;line-height:1.5;color:#6ee7b7;white-space:pre-wrap;word-break:break-word;box-shadow:inset 0 2px 6px #0003}.lesson-hints{margin-top:14px}.lesson-hints{margin-top:4px}.hint-toggle{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;font-size:13px;font-weight:600;color:#1a1a1a;background:linear-gradient(135deg,#fbbf24,#f59e0b);border:none;border-radius:var(--radius-md);padding:9px 14px;cursor:pointer;transition:filter var(--t-fast),transform var(--t-fast);box-shadow:0 2px 8px #fbbf2459}.hint-toggle:hover{filter:brightness(1.08);transform:translateY(-1px)}.hint-toggle:active{transform:translateY(0)}.hint-toggle--open{background:#fbbf241f;color:var(--warning-400);box-shadow:none;border:1px solid rgba(251,191,36,.3)}.hint-box{margin-top:10px;background:#fbbf2412;border:1px solid rgba(251,191,36,.35);border-left:3px solid #fbbf24;border-radius:var(--radius-md);padding:12px 16px;animation:fadeIn var(--t-fast) ease}.hint-box__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.hint-box__label{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#fbbf24;text-transform:uppercase;letter-spacing:.06em}.hint-box__progress{font-size:10px;color:var(--warning-400);background:#fbbf2426;border-radius:10px;padding:2px 8px;font-weight:600}.hint-box__exhausted{margin-top:10px;font-size:11px;color:var(--text-muted);font-style:italic;border-top:1px solid rgba(251,191,36,.15);padding-top:8px}.hint-box code{font-size:13px;color:#fde68a;display:block;line-height:1.6;white-space:pre-wrap;word-break:break-word}.hint-next{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:12px;font-size:12px;font-weight:600;color:#fbbf24;background:#fbbf241a;border:1px solid rgba(251,191,36,.25);border-radius:var(--radius-sm);padding:5px 10px;width:100%;justify-content:center;cursor:pointer;transition:background var(--t-fast)}.hint-next:hover{background:#fbbf242e}.example-panel{display:flex;flex-direction:column;height:300px;gap:10px}.example-label{font-size:12px;color:var(--text-muted);font-style:italic}.example-editor{flex:1;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.resize-handle{position:relative;z-index:40;flex-shrink:0;display:flex;align-items:center;justify-content:center}.resize-handle-horizontal{width:13px;margin:0 -6px;cursor:col-resize}.resize-handle-horizontal:after{content:"";position:absolute;left:6px;top:0;bottom:0;width:1px;background:var(--border);transition:background var(--t-fast),width var(--t-fast)}.resize-handle-horizontal[data-resize-handle-state=hover]:after,.resize-handle-horizontal[data-resize-handle-state=drag]:after{background:var(--primary-500);width:2px}.resize-handle-vertical{height:13px;margin:-6px 0;cursor:row-resize}.resize-handle-vertical:after{content:"";position:absolute;top:6px;left:0;right:0;height:1px;background:var(--border);transition:background var(--t-fast),height var(--t-fast)}.resize-handle-vertical[data-resize-handle-state=hover]:after,.resize-handle-vertical[data-resize-handle-state=drag]:after{background:var(--primary-500);height:2px}.workspace{height:100%;width:100%;overflow:hidden;position:relative}.workspace-feedback-overlay{position:absolute;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:auto}.workspace-feedback-backdrop{position:absolute;inset:0;background:#0308148c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.workspace-feedback-panel{position:relative;z-index:1;max-width:min(760px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto}.workspace-editor{display:flex;flex-direction:column;overflow:hidden;height:100%;width:100%}.lesson-step-strip{display:flex;align-items:center;justify-content:center;padding:12px 16px;background:var(--bg-elevated);border-bottom:1px solid var(--border);gap:8px;flex-shrink:0}.lesson-step{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-md);transition:all var(--t-normal);position:relative}.lesson-step__icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;transition:all var(--t-normal);background:var(--bg-surface);color:var(--text-muted)}.lesson-step__label{font-size:13px;font-weight:500;color:var(--text-muted);transition:color var(--t-normal)}.lesson-step--pending .lesson-step__icon{background:var(--bg-surface);color:var(--text-disabled)}.lesson-step--pending .lesson-step__label{color:var(--text-disabled)}.lesson-step--completed .lesson-step__icon{background:var(--success-600);color:#fff}.lesson-step--completed .lesson-step__label{color:var(--text-secondary)}.lesson-step--active{background:var(--bg-hover)}.lesson-step--active .lesson-step__icon{background:var(--primary-500);color:#fff;box-shadow:0 0 12px #0ea5e966}.lesson-step--active .lesson-step__label{color:var(--text-primary);font-weight:600}.lesson-step-connector{width:32px;height:2px;background:var(--border);transition:background var(--t-normal);border-radius:2px}.lesson-step-connector--completed{background:var(--success-600)}@media(max-width:768px){.lesson-step-strip{padding:8px 12px;gap:4px}.lesson-step{padding:4px 8px;gap:4px}.lesson-step__icon{width:20px;height:20px}.lesson-step__label{font-size:11px}.lesson-step-connector{width:16px}}.adaptive-helper-text{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-surface);border-left:2px solid var(--primary-500);color:var(--text-secondary);font-size:13px;line-height:1.4;margin:0 12px 8px;border-radius:4px;animation:fadeInDown .3s ease-out}.adaptive-helper-text svg{color:var(--primary-500);flex-shrink:0}.adaptive-helper-text--success{border-left-color:var(--success-500);background:#10b9810d}.adaptive-helper-text--success svg{color:var(--success-500)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.adaptive-helper-text{padding:6px 12px;margin:0 8px 6px;font-size:12px;gap:6px}}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0}.editor-filename{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-muted)}.editor-shortcuts{font-size:11px;color:var(--text-muted);display:flex;gap:6px;align-items:center}.pair-session-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast)}.pair-session-btn:hover:not(:disabled){background:var(--bg-surface);border-color:var(--border-hover);color:var(--text-primary)}.pair-session-btn:disabled{opacity:.5;cursor:not-allowed}.pair-session-btn.active{background:color-mix(in srgb,var(--success-500) 15%,transparent);border-color:var(--success-500);color:var(--success-600)}.pair-session-btn.active:hover{background:color-mix(in srgb,var(--success-500) 25%,transparent);border-color:var(--success-600)}.editor-body{flex:1;overflow:hidden}.editor-toolbar{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"left validation right" "coach coach coach";align-items:center;row-gap:7px;column-gap:8px;padding:9px 12px;background:var(--bg-surface);border-top:1px solid var(--border);flex-shrink:0}.toolbar-left{grid-area:left;display:flex;gap:6px}.toolbar-right{grid-area:right;display:flex;gap:6px;margin-left:auto}.toolbar-validation{grid-area:validation;display:flex;justify-content:center}.toolbar-coach{grid-area:coach;border-top:1px solid var(--border);padding-top:7px;display:flex;align-items:center;justify-content:space-between;gap:10px}.toolbar-coach-text{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.4}.toolbar-coach-meta{font-size:11px;color:var(--text-muted);white-space:nowrap}.toolbar-coach-meta strong{color:var(--text-primary)}.toolbar-btn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;padding:6px 12px;border-radius:var(--radius-md);transition:all var(--t-fast);white-space:nowrap}.toolbar-btn:disabled{opacity:.6;cursor:not-allowed;filter:grayscale(.5)}.toolbar-btn--ghost{color:var(--text-secondary);background:transparent}.toolbar-btn--ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.toolbar-btn--secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border)}.toolbar-btn--secondary:hover:not(:disabled){background:var(--bg-overlay);border-color:var(--border-hover)}.toolbar-btn--primary{background:linear-gradient(135deg,var(--primary-500),var(--primary-400));color:#fff;border-radius:var(--radius-md);box-shadow:0 4px 12px #0ea5e966,inset 0 1px #fff3;border:1px solid rgba(14,165,233,.5);transition:all var(--t-fast);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2)}.toolbar-btn--primary:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.2);box-shadow:0 6px 16px #0ea5e999,inset 0 1px #ffffff4d}.toolbar-btn--success{background:linear-gradient(135deg,var(--success-600),var(--success-500));color:#fff;box-shadow:0 0 12px #22c55e4d}.toolbar-btn--success:hover:not(:disabled){filter:brightness(1.1)}.toolbar-btn--answer{color:var(--warning-400);background:transparent;border:1px solid rgba(251,191,36,.25)}.toolbar-btn--answer:hover:not(:disabled){background:#fbbf241a;border-color:var(--warning-400)}.toolbar-btn--answer-active{background:#fbbf241f;border-color:var(--warning-400);color:var(--warning-400)}.toolbar-btn--answer-active:hover:not(:disabled){background:#fbbf2433}.toolbar-btn--debug{color:#94a3b8;background:transparent;border:1px solid rgba(239,68,68,.2);position:relative}.toolbar-btn--debug:hover:not(:disabled){background:#ef444414;border-color:#ef444473;color:#fca5a5}.toolbar-btn--debug-active{background:#ef44441f;border-color:#ef444480;color:#f87171}.toolbar-btn--debug-active:hover:not(:disabled){background:#ef44442e}.toolbar-debug-badge{display:inline-flex;align-items:center;justify-content:center;background:#ef4444;color:#fff;font-size:9.5px;font-weight:700;min-width:16px;height:16px;padding:0 4px;border-radius:8px;line-height:1}.toolbar-shortcut{margin-left:8px;opacity:.7;font-size:10px;font-weight:400;padding:2px 6px;transition:opacity var(--t-fast)}.toolbar-btn:hover:not(:disabled) .toolbar-shortcut{opacity:1}@media(max-width:768px){.toolbar-shortcut{display:none}}.validation-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:4px 10px;border-radius:20px}.validation-badge--pass{background:#22c55e1f;color:var(--success-400);border:1px solid rgba(34,197,94,.25)}.validation-badge--fail{background:#ef44441a;color:var(--accent-400);border:1px solid rgba(239,68,68,.2)}.validation-badge--idle{background:#0ea5e91a;color:var(--primary-300);border:1px solid rgba(14,165,233,.25)}.workspace-console{overflow:hidden;display:flex;flex-direction:column;height:100%;width:100%;min-height:0;background:var(--bg-surface)}.workspace-console-main{flex:1;min-height:0}.console-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-surface)}.console-header{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-elevated);border-bottom:1px solid var(--border);font-size:12px;color:var(--text-muted);flex-shrink:0}.console-time{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--text-muted);font-family:JetBrains Mono,monospace}.console-hint{margin-left:auto;font-size:10px;color:var(--text-muted);letter-spacing:.02em}.console-running{margin-left:auto;font-size:11px;color:var(--primary-400);animation:pulse 1s infinite}.console-body{flex:1;overflow-y:auto;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:12.5px}.console-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;color:var(--text-muted);font-size:12px}.console-empty-icon{opacity:.2}.console-loader{display:flex;align-items:center;gap:8px;color:var(--primary-400);font-size:12px}.console-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--primary-400);border-radius:50%;animation:spin .7s linear infinite}.console-line{display:flex;align-items:flex-start;gap:8px;padding:1.5px 0;line-height:1.5}.console-prompt{color:var(--primary-500);font-weight:700;flex-shrink:0}.console-line--stdout{color:var(--text-primary)}.console-line--stderr{color:var(--accent-400)}.console-line--info{color:var(--text-muted)}.console-line--suggestion{color:var(--primary-300);font-size:11.5px;padding-left:20px;opacity:.9}.console-error-group{margin-bottom:4px}.toast-container{position:absolute;bottom:200px;right:20px;z-index:100;width:min(420px,calc(100% - 40px));animation:slideUp var(--t-normal) ease}.v-toast{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid;position:relative}.v-toast--pass{background:#16a34a1f;border-color:#22c55e4d}.v-toast--fail{background:#7f1d1d26;border-color:#ef444440}.v-toast-icon{flex-shrink:0;margin-top:1px}.v-toast--pass .v-toast-icon{color:var(--success-400)}.v-toast--fail .v-toast-icon{color:var(--accent-400)}.v-toast-content{flex:1;min-width:0}.v-toast-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.v-toast-message{font-size:12.5px;color:var(--text-secondary);font-family:JetBrains Mono,monospace;white-space:pre-wrap;word-break:break-all}.v-toast-hint{font-size:12px;color:var(--warning-400);margin-top:6px}.v-toast-diags{margin-top:10px;display:flex;flex-direction:column;gap:6px}.v-toast-diag{display:flex;gap:8px;align-items:flex-start;background:#ffffff08;border:1px solid var(--border);border-radius:6px;padding:6px 8px}.v-toast-diag-line{min-width:58px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted)}.v-toast-diag-message{font-size:12px;color:var(--text-secondary)}.v-toast-diag--error{border-color:#f8717159}.v-toast-diag--warning{border-color:#fbbf2459}.v-toast-diag--info{border-color:#38bdf859}.v-toast-next{display:inline-flex;align-items:center;margin-top:10px;font-size:12.5px;font-weight:500;color:var(--success-400);background:#22c55e1a;border:1px solid rgba(34,197,94,.2);padding:5px 12px;border-radius:var(--radius-md);transition:all var(--t-fast)}.v-toast-next:hover{background:#22c55e33}.v-toast-close{position:absolute;top:10px;right:10px;color:var(--text-muted);padding:4px;border-radius:var(--radius-sm);transition:all var(--t-fast)}.v-toast-close:hover{background:var(--bg-hover);color:var(--text-primary)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.spin{animation:spin .7s linear infinite}@media(max-width:900px){.course-topbar{height:58px;padding:0 10px;gap:8px}.course-coach{flex-direction:column;gap:10px;padding:10px;min-height:96px}.course-progress-chip{min-width:100%;max-width:100%}.course-topbar-meta{max-width:44vw}.course-topbar-stats .course-stat-chip span.hide-mobile{display:none}.course-nav-back{padding:0 8px;height:32px}.course-nav-back span{display:none}.toolbar-coach{flex-direction:column;align-items:flex-start;gap:4px}.app-layout{grid-template-columns:0 1fr}.sidebar{display:none}.lesson-view{grid-template-columns:1fr;grid-template-rows:40% 60%}.pane-lesson{border-right:none;border-bottom:1px solid var(--border)}}@media(max-width:600px){.course-topbar-stats{gap:5px}.course-stat-chip{padding:0 8px;font-size:11px}.course-breadcrumb{font-size:11.5px}.course-lesson-label{display:none}.editor-toolbar{grid-template-columns:1fr;grid-template-areas:"left" "validation" "right" "coach"}.toolbar-validation{justify-content:flex-start}.toolbar-right{margin-left:0;flex-wrap:wrap}.toolbar-btn{padding:6px 9px;font-size:12px}.workspace-feedback-panel{max-width:calc(100% - 16px);max-height:calc(100% - 16px)}.lesson-view{grid-template-rows:35% 65%}.workspace{grid-template-rows:1fr 140px}}.sidebar-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.sidebar-home-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-md);color:var(--text-muted);transition:all var(--t-fast)}.sidebar-home-btn:hover{background:var(--bg-hover);color:var(--primary-400)}.total-progress-pct{font-weight:600;color:var(--primary-400)}.editor-skeleton{display:flex;height:100%;background:#0f1117;overflow:hidden}.skeleton-gutter{width:48px;background:#0f1117;border-right:1px solid #1e2d3d;padding:16px 10px 16px 0;display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex-shrink:0}.skeleton-line-num{font-family:JetBrains Mono,monospace;font-size:12px;color:#3f4557;line-height:1.5}.skeleton-code{flex:1;padding:16px 20px;display:flex;flex-direction:column;gap:11px}.skeleton-line{height:14px;background:#1e2333;border-radius:3px;animation:shimmer 1.8s ease-in-out infinite}.skeleton-line:nth-child(odd){animation-delay:.15s}@keyframes shimmer{0%,to{opacity:.4}50%{opacity:.8}}.landing{min-height:100vh;overflow-y:auto;overflow-x:hidden;background:var(--bg-base);position:relative;scroll-behavior:smooth}.glow-pointer{position:fixed;width:400px;height:400px;background:radial-gradient(circle,rgba(14,165,233,.08) 0%,transparent 60%);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);z-index:9999;transition:width .2s,height .2s;mix-blend-mode:screen}.ambient-glow{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none;z-index:0}.bg-glow-1{top:-200px;left:20%;width:600px;height:600px;background:#0ea5e91a}.bg-glow-2{top:40%;right:-200px;width:700px;height:700px;background:#6366f114}.glass-panel{background:#0f111780;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.05);box-shadow:0 8px 32px #0003}.glass-nav{padding:16px 60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;background:#080b1299;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid rgba(255,255,255,.05)}.text-gradient{background:linear-gradient(135deg,var(--primary-100),var(--primary-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-light{background:linear-gradient(135deg,#f8fafc,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-primary-glow{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));color:#fff;font-size:14px;font-weight:600;border-radius:var(--radius-md);box-shadow:0 0 20px #0ea5e94d,inset 0 1px #fff3;transition:all var(--t-normal);position:relative;overflow:hidden}.btn-primary-glow:after{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:skew(-20deg);transition:left .5s ease}.btn-primary-glow:hover{transform:translateY(-2px);box-shadow:0 0 30px #0ea5e980,inset 0 1px #fff3;filter:brightness(1.1)}.btn-primary-glow:hover:after{left:200%}.btn-primary-glow.large{padding:16px 36px;font-size:16px;border-radius:var(--radius-lg)}.nav-logo-icon-wrapper{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:linear-gradient(135deg,#0ea5e933,#0ea5e90d);border:1px solid rgba(14,165,233,.2);border-radius:8px;color:var(--primary-400)}.nav-logo-text{font-size:20px;font-weight:700;letter-spacing:-.5px;color:#fff;margin-left:10px}.landing-nav-actions{display:flex;align-items:center;gap:16px}.landing-nav-link{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:500;transition:color var(--t-fast);padding:8px}.landing-nav-link:hover{color:var(--text-primary)}.landing-nav-link.profile-link{display:inline-flex;align-items:center;gap:6px;background:#0ea5e91a;border:1px solid rgba(14,165,233,.3);border-radius:var(--radius-md);padding:6px 12px;color:var(--primary-300);font-weight:500;transition:all var(--t-fast)}.landing-nav-link.profile-link:hover{background:#0ea5e933;border-color:#0ea5e980;color:var(--primary-100)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{opacity:0;animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) forwards}.animate-fade-in-up-delay-1{opacity:0;animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) .1s forwards}.animate-fade-in-up-delay-2{opacity:0;animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) .2s forwards}.animate-fade-in-up-delay-3{opacity:0;animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) .3s forwards}.animate-fade-in-up-delay-4{opacity:0;animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) .4s forwards}.tech-hero{position:relative;z-index:10;max-width:1100px;margin:0 auto;padding:100px 40px 80px;text-align:center}.tech-badge{display:inline-flex;align-items:center;padding:6px 16px;background:#0ea5e90d;border:1px solid rgba(14,165,233,.2);border-radius:100px;margin-bottom:32px;box-shadow:0 0 20px #0ea5e91a}.live-dot{width:8px;height:8px;background:var(--success-400);border-radius:50%;margin-right:8px;box-shadow:0 0 10px var(--success-400);animation:pulse 2s infinite}.badge-text{font-size:13px;font-weight:600;color:var(--primary-300);letter-spacing:.5px}.tech-hero .hero-title{font-size:clamp(2.5rem,6vw,4.2rem);font-weight:800;line-height:1.1;letter-spacing:-1.5px;margin-bottom:24px}.tech-hero .hero-subtitle{font-size:1.15rem;color:var(--text-secondary);max-width:700px;margin:0 auto 48px}.tech-stats{display:flex;justify-content:center;gap:16px;margin-top:24px}.stat-chip{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:100px;font-size:13px;color:var(--text-secondary)}.stat-chip strong{color:var(--text-primary)}.stat-chip.highlight{background:#0ea5e90d;border-color:#0ea5e933;color:var(--primary-300)}.stat-chip.highlight strong{color:var(--primary-400)}.editor-window{margin:64px auto 0;max-width:760px;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 24px 80px #00000080,0 0 0 1px #ffffff0d;text-align:left}.editor-window-header{position:relative;display:flex;align-items:center;padding:12px 16px;background:#0003;border-bottom:1px solid rgba(255,255,255,.05)}.traffic-lights{display:flex;gap:8px}.tl{width:12px;height:12px;border-radius:50%}.tl.red{background:#ff5f56}.tl.yellow{background:#ffbd2e}.tl.green{background:#27c93f}.window-title{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;font-size:12px;font-family:Inter,sans-serif;color:var(--text-muted)}.window-title .title-icon{color:var(--primary-500)}.editor-window-body{padding:32px;font-family:JetBrains Mono,monospace;font-size:14px;line-height:1.8;color:#e2e8f0;margin:0;background:transparent;overflow-x:auto}.editor-window-body .pc-kw{color:#c678dd}.editor-window-body .pc-var{color:#61afef}.editor-window-body .pc-str{color:#98c379}.editor-window-body .pc-fn{color:#56b6c2}.tech-features{position:relative;z-index:10;max-width:1100px;margin:0 auto;padding:80px 40px}.section-title{font-size:1.6rem;font-weight:700;text-align:center;margin-bottom:40px}.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}.bento-item{padding:32px;border-radius:var(--radius-xl);display:flex;flex-direction:column;transition:transform var(--t-normal),box-shadow var(--t-normal)}.bento-item:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0000004d,0 0 0 1px #0ea5e94d}.bento-item.span-2{grid-column:span 2}.bento-item.span-1{grid-column:span 1}.bento-icon-wrapper{background:linear-gradient(135deg,#ffffff0d,#ffffff03);border:1px solid rgba(255,255,255,.05);border-radius:12px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:var(--primary-400);margin-bottom:24px}.bento-item h3{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:12px}.bento-item p{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.tech-timeline-section{max-width:800px;margin:0 auto;padding:80px 40px;position:relative;z-index:10}.tech-timeline{display:flex;flex-direction:column;gap:16px;margin-top:48px}.timeline-node{display:flex;gap:24px}.timeline-connector{position:relative;width:48px;display:flex;flex-direction:column;align-items:center}.timeline-line{position:absolute;top:48px;bottom:-16px;width:2px;background:linear-gradient(to bottom,var(--primary-600),transparent);opacity:.5}.timeline-ring{width:48px;height:48px;border-radius:50%;background:#0ea5e91a;border:1px solid rgba(14,165,233,.3);display:flex;align-items:center;justify-content:center;position:relative;z-index:2;box-shadow:0 0 20px #0ea5e933}.timeline-core{color:var(--primary-400);font-size:20px}.timeline-content{flex:1;padding:24px;border-radius:var(--radius-lg);display:flex;align-items:center;transition:transform var(--t-fast)}.timeline-content:hover{transform:translate(8px);border-color:#0ea5e966}.timeline-header{display:flex;justify-content:space-between;align-items:center;width:100%}.timeline-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.timeline-badge{font-size:12px;font-weight:600;padding:4px 12px;background:#ffffff0d;border-radius:100px;color:var(--text-muted)}.tech-cta{padding:100px 40px;display:flex;justify-content:center;position:relative;z-index:10}.cta-content{text-align:center;padding:64px 80px;border-radius:var(--radius-xl);max-width:800px;position:relative;overflow:hidden}.cta-content:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--primary-500),transparent)}.cta-content h2{font-size:2rem;font-weight:800;margin-bottom:16px}.cta-content p{color:var(--text-secondary);font-size:1.1rem;margin-bottom:32px}.tech-footer{display:flex;justify-content:space-between;align-items:center;padding:32px 60px;border-top:1px solid rgba(255,255,255,.05);position:relative;z-index:10;background:#0003}.footer-left{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text-secondary)}.footer-icon{color:var(--primary-500)}.footer-right{font-size:13px;color:var(--text-muted)}@media(max-width:900px){.bento-grid{grid-template-columns:1fr}.bento-item.span-2,.bento-item.span-1{grid-column:span 1}}@media(max-width:640px){.tech-hero{padding:80px 20px 60px}.tech-hero .hero-title{font-size:2.2rem}.editor-window{display:none}.glass-nav{padding:16px 20px}.tech-features,.tech-timeline-section,.tech-cta{padding-left:20px;padding-right:20px}.cta-content{padding:40px 20px}.tech-footer{flex-direction:column;gap:16px;padding:24px 20px}}.course-complete-wrap{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg-base)}.course-complete-wrap--light{background:color-mix(in srgb,var(--bg-base) 92%,#ffffff 8%)}.completion-banner{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 56px;text-align:center;border-radius:var(--radius-xl);position:relative;overflow:hidden;animation:fadeIn var(--t-slow) ease}.completion-banner--course{background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-lg),0 0 60px #0ea5e926;max-width:520px;width:100%}.completion-banner--module{background:#22c55e0f;border:1px solid rgba(34,197,94,.2);max-width:400px}.completion-glow{position:absolute;inset:-40px;background:radial-gradient(ellipse at center,rgba(14,165,233,.12) 0%,transparent 70%);pointer-events:none}.completion-trophy{color:#f59e0b;filter:drop-shadow(0 0 16px rgba(245,158,11,.5));animation:bounce 1s ease infinite alternate}.completion-sparkle{color:var(--success-400);filter:drop-shadow(0 0 10px rgba(74,222,128,.4))}.completion-title{font-size:1.8rem;font-weight:800;background:linear-gradient(135deg,var(--primary-300),#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.completion-title--sm{font-size:1.1rem}.completion-sub{color:var(--text-secondary);font-size:1rem;line-height:1.6;max-width:380px;margin:0}.completion-sub--sm{font-size:13px}.completion-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.pricing-section{position:relative;z-index:10;max-width:1000px;margin:0 auto;padding:80px 40px}.pricing-header{text-align:center;margin-bottom:60px}.pricing-title{font-size:2.5rem;font-weight:800;margin-bottom:16px;background:linear-gradient(135deg,#fff,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.pricing-subtitle{color:var(--text-secondary);font-size:1.1rem;max-width:600px;margin:0 auto}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}@media(max-width:1024px){.pricing-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.pricing-grid{grid-template-columns:1fr}}.pricing-card{position:relative;background:#0f1117b3;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-xl);padding:40px;display:flex;flex-direction:column;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform var(--t-normal),box-shadow var(--t-normal)}.pricing-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0006,0 0 0 1px #0ea5e933}.pricing-card.featured{background:#0ea5e90d;border-color:#0ea5e94d;box-shadow:0 0 40px #0ea5e91a}.pricing-card.featured:hover{box-shadow:0 12px 40px #0006,0 0 60px #0ea5e933,0 0 0 1px #0ea5e980}.pricing-badge{position:absolute;top:-12px;right:32px;background:linear-gradient(135deg,var(--primary-400),var(--primary-600));color:#fff;font-size:12px;font-weight:700;padding:4px 16px;border-radius:20px;box-shadow:0 4px 12px #0ea5e966;text-transform:uppercase;letter-spacing:.5px}.pricing-plan{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.pricing-price{font-size:3rem;font-weight:800;color:#fff;display:flex;align-items:Baseline;gap:4px}.pricing-currency{font-size:1.5rem;color:var(--text-muted)}.pricing-period{font-size:1rem;color:var(--text-secondary);font-weight:500}.pricing-desc{color:var(--text-secondary);font-size:.95rem;margin-top:12px;margin-bottom:32px;line-height:1.5}.pricing-features{list-style:none;padding:0;margin:0 0 40px;flex:1}.pricing-feature{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;font-size:.95rem;color:var(--text-primary)}.pricing-feature-icon{color:var(--success-400);margin-top:2px;flex-shrink:0}.pricing-feature.disabled{color:var(--text-muted)}.pricing-feature.disabled .pricing-feature-icon{color:var(--text-disabled)}.pricing-cta{width:100%;padding:14px;border-radius:var(--radius-md);font-size:1rem;font-weight:600;text-align:center;transition:all var(--t-fast)}.pricing-cta.secondary{background:#ffffff0d;color:var(--text-primary);border:1px solid rgba(255,255,255,.1)}.pricing-cta.secondary:hover{background:#ffffff1a;border-color:#fff3}.pricing-cta.primary{background:var(--primary-500);color:#fff;border:1px solid var(--primary-400);box-shadow:0 0 20px #0ea5e94d}.pricing-cta.primary:hover{background:var(--primary-400);box-shadow:0 0 30px #0ea5e980}.sidebar-path-note{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:10px;border:1px solid color-mix(in srgb,var(--primary-500) 38%,var(--border));background:color-mix(in srgb,var(--primary-500) 10%,var(--bg-elevated))}.sidebar-path-note__label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--primary-300)}.sidebar-path-note__meta{font-size:11px;color:var(--text-secondary);font-weight:600}.lesson-step-pill{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 6px;border-radius:999px;font-size:10px;font-weight:700;color:var(--text-muted);border:1px solid var(--border);background:var(--bg-surface)}.lesson-item--next{background:color-mix(in srgb,var(--primary-500) 7%,transparent)}.lesson-next-pill{font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--primary-300)}.lesson-linear-card{margin-bottom:14px;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.lesson-linear-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.lesson-linear-card__title{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--primary-300)}.lesson-linear-card__meta{font-size:11px;color:var(--text-secondary);font-weight:600}.lesson-linear-card__track{height:5px;border-radius:999px;background:var(--bg-overlay);overflow:hidden}.lesson-linear-card__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary-500),var(--success-500));transition:width var(--t-slow)}.lesson-linear-card__note{margin:8px 0 0;font-size:12px;color:var(--text-secondary)}.lesson-study-list--guided{list-style:none;padding-left:0}.lesson-study-list--guided li{display:flex;align-items:center;gap:7px}.lesson-study-list--guided li svg{color:var(--success-500);flex-shrink:0}.learning-path-strip{padding:10px 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-surface) 92%,transparent)}.learning-path-strip__header{display:flex;justify-content:space-between;align-items:center;gap:10px}.learning-path-strip__label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--primary-300)}.learning-path-strip__meta{font-size:11px;color:var(--text-secondary);font-weight:600}.learning-path-strip__track{margin-top:8px;height:4px;border-radius:999px;overflow:hidden;background:var(--bg-overlay)}.learning-path-strip__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary-500),var(--success-500));transition:width var(--t-slow)}.learning-path-strip__steps{margin-top:9px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.learning-path-strip__step{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted);white-space:nowrap}.learning-path-strip__step.is-active{color:var(--primary-300);font-weight:600}.learning-path-strip__step.is-done{color:var(--success-500)}.learning-path-strip__step-icon{display:inline-flex;align-items:center}.learning-path-strip__hint{margin-top:8px;display:flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--text-secondary);line-height:1.45}.learning-path-strip__hint svg{margin-top:1px;color:var(--warning-400);flex-shrink:0}@media(max-width:1100px){.learning-path-strip__steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.lesson-linear-card__head{flex-direction:column;align-items:flex-start}.learning-path-strip__steps{grid-template-columns:1fr}}.lesson-view-mobile{display:flex;flex-direction:column;height:calc(100dvh - 64px);overflow:hidden}.mobile-pane-content{flex:1;min-height:0;overflow:hidden;position:relative}.mobile-pane-content .pane-lesson,.mobile-pane-content .pane-workspace{height:100%;overflow:hidden}.mobile-tab-bar{display:flex;height:56px;flex-shrink:0;background:var(--bg-surface);border-top:1px solid var(--border);z-index:10}.mobile-tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;border:none;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer;transition:color var(--t-fast),background var(--t-fast);letter-spacing:.02em;-webkit-tap-highlight-color:transparent}.mobile-tab-btn.active{color:var(--primary-400);background:#0ea5e90f}.mobile-tab-btn:active{background:var(--bg-hover)}@media(max-width:768px){.course-topbar{height:56px;padding:0 10px}.lesson-content{-webkit-overflow-scrolling:touch}.app-layout.course-shell{overflow:hidden;height:100dvh}.toolbar-btn{min-height:36px;padding:6px 10px}.course-topbar-meta{max-width:38vw}.course-breadcrumb{font-size:11px}}@media(max-width:400px){.course-topbar-meta{max-width:30vw}}.lesson-visual-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:999px;border:1px solid color-mix(in srgb,var(--primary-500) 45%,var(--border));background:color-mix(in srgb,var(--primary-500) 12%,transparent);color:var(--primary-300);font-size:10px;font-weight:700;line-height:1}.lesson-tag--visual{display:inline-flex;align-items:center;gap:5px;color:var(--primary-200);border-color:color-mix(in srgb,var(--primary-500) 55%,var(--border));background:color-mix(in srgb,var(--primary-500) 16%,var(--bg-elevated))}.lesson-tag-icon{color:var(--primary-300)}.didactic-visual-engine{display:flex;flex-direction:column;height:100%;background:var(--bg-base);color:var(--text-primary);font-family:inherit;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);position:relative}.didactic-visual-engine[data-profile=touch-only]{--ve-accent: var(--primary-500)}.didactic-visual-engine[data-profile=input-only]{--ve-accent: var(--warning-500)}.didactic-visual-engine[data-profile=timer-only]{--ve-accent: var(--success-500)}.didactic-visual-engine[data-profile=state-only]{--ve-accent: #a855f7}.didactic-visual-engine[data-profile=composed-project]{--ve-accent: var(--primary-400)}.dve-toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.dve-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ve-accent, var(--primary-400));font-weight:700;display:block;margin-bottom:4px}.dve-toolbar__title-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}.dve-toolbar__title{font-size:18px;margin:0;color:#fff}.dve-profile-chip{font-size:11px;padding:2px 8px;background:color-mix(in srgb,var(--ve-accent, var(--primary-500)) 15%,transparent);color:var(--ve-accent, var(--primary-500));border:1px solid color-mix(in srgb,var(--ve-accent, var(--primary-500)) 30%,transparent);border-radius:99px;font-weight:600}.dve-toolbar__summary,.dve-scenario-note{font-size:13px;color:var(--text-muted);margin:0}.dve-toolbar__actions{display:flex;gap:8px}.dve-button{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);padding:8px 16px;border-radius:var(--radius-md);font-weight:500;font-size:13px;transition:all var(--t-fast)}.dve-button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-hover)}.dve-button--primary{background:var(--primary-600);border-color:var(--primary-500);color:#fff}.dve-button--primary:hover:not(:disabled){background:var(--primary-500)}.dve-button:disabled{opacity:.5;cursor:not-allowed}.dve-layout{display:flex;flex:1;overflow:hidden}.dve-stage{flex:1;padding:24px;overflow-y:auto;background:radial-gradient(circle at center,var(--bg-surface) 0%,var(--bg-base) 100%);display:flex;flex-direction:column;gap:24px}.dve-stage__header h4{font-size:16px;margin:0;color:#fff}.dve-stage__header p{font-size:13px;color:var(--text-muted)}.dve-visual-nodes{display:flex;flex-wrap:wrap;gap:20px;padding:20px 0}.dve-node{background:var(--bg-elevated);border:2px solid var(--border);border-radius:var(--radius-lg);padding:16px;min-width:140px;text-align:center;cursor:pointer;position:relative;transition:all var(--t-normal);display:flex;flex-direction:column;align-items:center;gap:12px}.dve-node:hover{transform:translateY(-4px);border-color:var(--border-hover);box-shadow:var(--shadow-md)}.dve-node.is-selected{border-color:var(--ve-accent, var(--primary-500));box-shadow:0 0 0 1px var(--ve-accent, var(--primary-500)),var(--shadow-glow)}.dve-node.has-pulse:after{content:"";position:absolute;inset:-4px;border-radius:calc(var(--radius-lg) + 2px);border:2px solid var(--ve-accent, var(--primary-500));animation:dve-pulse 1s ease-out forwards;pointer-events:none}@keyframes dve-pulse{0%{transform:scale(1);opacity:1}to{transform:scale(1.15);opacity:0}}.dve-node-visual{width:56px;height:56px;border-radius:12px;background:var(--node-color, var(--text-muted));border:2px solid rgba(255,255,255,.1);box-shadow:inset 0 2px 4px #fff3,0 4px 8px #00000080;position:relative;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px}.dve-node-meta{display:flex;flex-direction:column;gap:4px}.dve-node-name{font-weight:600;font-size:13px;color:#fff}.dve-node-type{font-size:10px;color:var(--text-muted);text-transform:uppercase}.dve-lane-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:12px}.dve-lane-card header{display:flex;justify-content:space-between;align-items:center}.dve-lane-card h5{font-size:14px;margin:0;color:#fff}.dve-inspector{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-sm)}.dve-inspector__title{font-size:13px;font-weight:600;margin-bottom:12px;color:#fff;display:flex;align-items:center;gap:8px}.dve-inspector__title:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ve-accent, var(--primary-500))}.dve-inspector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.dve-inspector-field{display:flex;flex-direction:column;gap:4px;background:var(--bg-base);padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border)}.dve-inspector-field dt{font-size:11px;color:var(--text-muted)}.dve-inspector-field dd{font-size:12px;font-weight:600;color:var(--text-primary);font-family:JetBrains Mono,monospace;word-break:break-all}.dve-sidebar{width:300px;background:var(--bg-surface);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.dve-panel{padding:16px;border-bottom:1px solid var(--border)}.dve-panel__header{margin-bottom:12px}.dve-panel__header h4{font-size:14px;margin:0;color:#fff}.dve-milestone{padding:10px 12px;border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border);margin-bottom:8px;position:relative;overflow:hidden}.dve-milestone[data-status=observed]{border-color:color-mix(in srgb,var(--success-500) 40%,transparent);background:color-mix(in srgb,var(--success-500) 10%,var(--bg-elevated))}.dve-milestone[data-status=observed]:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--success-500)}.dve-milestone[data-status=pending]:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--text-muted)}.dve-milestone strong{display:block;font-size:12px;color:#fff;margin-bottom:2px}.dve-milestone span{font-size:10px;color:var(--text-muted)}.dve-milestone p{font-size:11px;margin-top:4px;color:var(--text-secondary);margin-bottom:0}.dve-state-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.dve-state-row:last-child{border-bottom:none}.dve-state-row div{display:flex;flex-direction:column}.dve-state-row strong{font-size:12px;color:var(--text-primary)}.dve-state-row span{font-size:10px;color:var(--text-muted)}.dve-state-row>span{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ve-accent, var(--primary-400));background:var(--bg-elevated);padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--border)}.dve-script-context{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;margin-bottom:24px}.dve-script-context h5{font-size:11px;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;margin-top:0}.dve-script-context pre{margin:0;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--primary-100);background:var(--bg-base);padding:12px;border-radius:var(--radius-sm);overflow-x:auto;border:1px solid color-mix(in srgb,var(--primary-500) 20%,var(--border))}.dve-timeline-panel{display:flex;flex-direction:column;height:200px;border-top:1px solid var(--border);background:var(--bg-surface)}.dve-timeline-panel__header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border)}.dve-timeline-panel__header h4{margin:0;font-size:13px;color:#fff}.dve-log-filters{display:flex;gap:6px}.dve-log-filter{padding:4px 10px;border-radius:99px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);font-size:10px;font-weight:600}.dve-log-filter.is-active{background:color-mix(in srgb,var(--ve-accent, var(--primary-500)) 20%,transparent);color:var(--ve-accent, var(--primary-500));border-color:color-mix(in srgb,var(--ve-accent, var(--primary-500)) 50%,transparent)}.dve-timeline-grid{display:flex;flex:1;overflow:hidden}.dve-timeline-stream,.dve-log-stream{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:4px}.dve-timeline-stream{border-right:1px solid var(--border)}.dve-timeline-stream h5,.dve-log-stream h5{font-size:10px;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;position:sticky;top:0;background:var(--bg-surface);padding-bottom:6px;z-index:10;margin-top:0}.dve-log-entry,.dve-timeline-entry{display:flex;gap:8px;font-family:JetBrains Mono,monospace;font-size:11px;padding:4px 8px;border-radius:var(--radius-sm);background:var(--bg-elevated)}.dve-log-entry span,.dve-timeline-entry span{color:var(--text-muted);width:60px;flex-shrink:0}.dve-log-entry strong,.dve-timeline-entry strong{color:var(--text-primary);font-weight:400}.dve-log-entry[data-channel=guardrails] strong{color:var(--warning-400)}.dve-log-entry[data-channel=error] strong{color:var(--accent-400)}.dve-log-entry[data-channel=script] strong{color:var(--primary-300)}.dve-log-entry[data-channel=milestones] strong{color:var(--success-400);font-weight:600}.dve-runtime-controls{display:flex;gap:12px;padding:10px 16px;background:color-mix(in srgb,var(--bg-surface) 50%,var(--bg-base));border-bottom:1px solid var(--border)}.dve-chip-button{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);font-size:11px;font-weight:500;transition:all var(--t-fast)}.dve-chip-button:hover{background:var(--bg-hover);border-color:var(--ve-accent, var(--primary-500));color:var(--ve-accent, var(--primary-500))}.dve-metric-strip{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.dve-metric-pill{background:var(--bg-elevated);border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius-md);display:flex;align-items:baseline;gap:8px}.dve-metric-pill span{font-size:10px;color:var(--text-muted);text-transform:uppercase}.dve-metric-pill strong{font-size:13px;color:var(--text-primary);font-family:JetBrains Mono,monospace}.lesson-progress-strip{height:3px;background:#ffffff14;width:100%;flex-shrink:0;overflow:hidden}.lesson-panel--light .lesson-progress-strip{background:#0000000f}.lesson-progress-strip__fill{height:100%;background:linear-gradient(90deg,#58cc02,#89e219);border-radius:0 2px 2px 0;transform-origin:left}.editor-save-indicator{font-size:11px;font-weight:500;color:#58cc02;letter-spacing:.02em;opacity:.85}.lesson-read-time{font-size:11px;font-weight:500;color:#94a3b8e6;display:flex;align-items:center;gap:3px;white-space:nowrap}.lesson-panel--light .lesson-read-time{color:#64748be6}.copy-code-block{position:relative}.copy-code-block__btn{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:4px;padding:3px 8px;background:#ffffff12;border:1px solid rgba(255,255,255,.11);border-radius:5px;cursor:pointer;font-size:11px;font-weight:500;color:#ffffff80;line-height:1;transition:background .12s,color .12s,border-color .12s,opacity .12s;opacity:0}.copy-code-block:hover .copy-code-block__btn,.copy-code-block__btn:focus-visible{opacity:1}.copy-code-block__btn:hover{background:#ffffff21;color:#ffffffd9;border-color:#ffffff38}.copy-code-block__btn--copied{opacity:1;background:#58cc0224;border-color:#58cc0259;color:#58cc02}.lesson-panel--light .copy-code-block__btn{background:#0000000d;border-color:#0000001a;color:#0006}.lesson-panel--light .copy-code-block__btn:hover{background:#0000001a;color:#000000b3}.lesson-panel--light .copy-code-block__btn--copied{background:#58cc021a;border-color:#58cc024d;color:#3a9e00}.shortcut-cheatsheet{position:fixed;bottom:72px;right:16px;z-index:200;background:var(--bg-secondary, #1a1f2e);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:14px 16px;min-width:290px;box-shadow:0 8px 32px #00000073,0 0 0 1px #ffffff0a;outline:none}.shortcut-cheatsheet__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.shortcut-cheatsheet__title{font-size:11px;font-weight:700;color:#ffffff8c;text-transform:uppercase;letter-spacing:.09em}.shortcut-cheatsheet__close{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:#ffffff59;padding:3px;border-radius:4px;transition:color .12s,background .12s}.shortcut-cheatsheet__close:hover,.shortcut-cheatsheet__close:focus-visible{color:#ffffffbf;background:#ffffff12;outline:none}.shortcut-cheatsheet__table{border-collapse:collapse;width:100%}.shortcut-cheatsheet__keys{padding-bottom:7px;padding-right:12px;white-space:nowrap}.shortcut-cheatsheet__keys{display:flex;gap:4px;flex-wrap:nowrap;padding-bottom:7px;padding-right:12px}.shortcut-cheatsheet__kbd{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:10px;font-family:monospace;color:#ffffffc7;white-space:nowrap;line-height:1.6}.shortcut-cheatsheet__desc{font-size:12px;color:#ffffff80;padding-bottom:7px;vertical-align:middle}@media(max-width:768px){.toolbar-btn,.mobile-tab-btn,.lesson-tab,.lesson-sidebar-toggle,.lesson-tts-btn,.hint-toggle,.hint-next{touch-action:manipulation}.lesson-view-mobile{display:flex;flex-direction:column;height:100%}.mobile-pane-content{flex:1;min-height:0;overflow:hidden;position:relative}.mobile-pane-content .pane-lesson{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-pane-content .pane-workspace{height:100%;overflow:hidden;display:flex;flex-direction:column}.mobile-tab-bar{height:52px;flex-shrink:0}.mobile-tab-btn{min-height:52px;flex-direction:column;gap:2px;font-size:11px;font-weight:600;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mobile-tab-btn.active{border-top:2px solid var(--primary-400);background:#0ea5e914;color:var(--primary-400)}.editor-toolbar{display:flex;flex-direction:column;gap:0;padding:0;row-gap:0;column-gap:0}.toolbar-left{display:flex;flex-wrap:wrap;gap:4px;padding:7px 10px 6px;border-bottom:1px solid var(--border);width:100%;box-sizing:border-box}.toolbar-right{display:flex;flex-wrap:wrap;gap:6px;padding:7px 10px;width:100%;box-sizing:border-box;margin-left:0}.toolbar-right .toolbar-btn--secondary,.toolbar-right .toolbar-btn--primary,.toolbar-right .toolbar-btn--success{flex:1;justify-content:center;min-width:0}.toolbar-validation,.toolbar-coach,.toolbar-btn .toolbar-shortcut,kbd.toolbar-shortcut{display:none}.toolbar-btn{min-height:40px;padding:8px 12px;font-size:13px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.editor-header{padding:6px 10px;font-size:12px}.editor-shortcuts{display:none}.workspace-editor{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.workspace-console{min-height:120px;flex-shrink:0}.lesson-panel{height:100%;overflow:hidden;display:flex;flex-direction:column}.lesson-content{padding:12px 14px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0}.lesson-markdown{font-size:.88rem;line-height:1.6}.lesson-markdown pre{font-size:.82rem;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:pre;word-break:normal}.lesson-markdown code{font-size:.82rem}.lesson-expected-output__code{font-size:.78rem;word-break:break-all;white-space:pre-wrap;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:480px){.editor-toolbar .toolbar-left .toolbar-btn{padding:6px 8px;font-size:12px;gap:4px}.editor-toolbar .toolbar-right .toolbar-btn--primary,.editor-toolbar .toolbar-right .toolbar-btn--secondary,.editor-toolbar .toolbar-right .toolbar-btn--success{padding:8px 10px;font-size:13px}.lesson-content{padding:10px 12px}.lesson-markdown{font-size:.85rem}.shortcut-cheatsheet{right:8px;left:8px;min-width:0;width:auto}}.workspace--light{--bg-surface: #F7F8FA;--bg-elevated: #EEF0F5;--bg-overlay: #E6E9F0;--bg-hover: #DDE2EC;--border: #D0D5DF;--border-hover: #B4BCCC;--text-primary: #1C2431;--text-secondary: #485770;--text-muted: #7A8599;--primary-500: #0061FE;--primary-400: #3381FF;--primary-300: #66A0FF}.workspace--light .editor-header{background:#eef0f5;border-bottom:1px solid #D0D5DF}.workspace--light .editor-filename{color:#485770;font-weight:500}.workspace--light .editor-shortcuts{color:#9ba5b5}.workspace--light .editor-toolbar{background:#eef0f5;border-top:1px solid #D0D5DF}.workspace--light .toolbar-coach{border-top-color:#d0d5df}.workspace--light .toolbar-coach-text{color:#485770}.workspace--light .toolbar-btn{background:#fff;border-color:#c8cdd8;color:#485770}.workspace--light .toolbar-btn:hover:not(:disabled){background:#f0f3f9;border-color:#b0b8cc;color:#1c2431}.workspace--light .toolbar-btn--secondary{background:#0061fe;border-color:#0052d9;color:#fff}.workspace--light .toolbar-btn--secondary:hover:not(:disabled){background:#0052d9;border-color:#0044bf}.workspace--light .toolbar-btn--primary{background:#16a34a;border-color:#14913e;color:#fff}.workspace--light .toolbar-btn--primary:hover:not(:disabled){background:#14913e;border-color:#117a35}.workspace--light .workspace-console,.workspace--light .console-panel{background:#f7f8fa}.workspace--light .console-header{background:#eef0f5;border-bottom:1px solid #D0D5DF;color:#7a8599}.workspace--light .console-body{background:#f7f8fa}.workspace--light .console-line--stdout{color:#1c2431}.workspace--light .console-line--stderr{color:#c0392b}.workspace--light .console-line--info{color:#7a8599}.workspace--light .console-line--suggestion{color:#0061fe}.workspace--light .console-prompt{color:#0061fe;font-weight:700}.workspace--light .console-empty{color:#9ba5b5}.workspace--light .console-spinner{border-color:#d0d5df;border-top-color:#0061fe}.workspace--light .workspace-feedback-backdrop{background:#f0f3f9b8}.workspace--light .pair-session-btn{background:#fff;border-color:#c8cdd8;color:#485770}.workspace--light .pair-session-btn:hover:not(:disabled){background:#f0f3f9;border-color:#b0b8cc;color:#1c2431}.workspace--light .validation-badge{background:#eef0f5;color:#485770;border-color:#d0d5df}.workspace--light .validation-badge--success{background:color-mix(in srgb,#16A34A 10%,#EEF0F5);color:#14702c;border-color:color-mix(in srgb,#16A34A 30%,#D0D5DF)}.workspace--light .validation-badge--error{background:color-mix(in srgb,#DC2626 10%,#EEF0F5);color:#b91c1c;border-color:color-mix(in srgb,#DC2626 30%,#D0D5DF)}
