:root{--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:15px/150% var(--sans);letter-spacing:0;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:15px}}html[data-theme=light],html[data-mui-color-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#787774;--text-h:#37352f;--bg:#fff;--border:#37352f17;--code-bg:#87837826;--accent:#37352f;--accent-bg:#37352f14;--accent-border:#37352f29;--social-bg:#f7f6f3;--nav-bg:#fff;--shadow:none;--border-subtle:var(--border);--hover:#37352f14}html[data-theme=dark],html[data-mui-color-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#9b9a97;--text-h:#ebebea;--bg:#191919;--border:#ffffff17;--code-bg:#ffffff14;--accent:#ebebea;--accent-bg:#ffffff0e;--accent-border:#ffffff29;--social-bg:#202020;--nav-bg:#191919;--shadow:none;--border-subtle:var(--border);--hover:#ffffff0e}html[data-theme=dark] #social .button-icon,html[data-mui-color-scheme=dark] #social .button-icon{filter:invert()brightness(2)}html,body,#root{height:100%;margin:0}#root{box-sizing:border-box;flex-direction:column;display:flex;overflow:hidden}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:600}h1{letter-spacing:-.02em;margin:24px 0;font-size:2rem;line-height:1.2}h2{letter-spacing:-.01em;margin:0 0 8px;font-size:1.25rem;line-height:1.3}@media (width<=1024px){h2{font-size:1.125rem}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:2px 6px;font-size:.875rem;line-height:135%}.skeleton-block{display:block}.skeleton-stack{flex-direction:column;gap:8px;display:flex}.skeleton-stack--tight{gap:4px}.skeleton-stack--loose{gap:16px}.skeleton-row{flex-direction:row;gap:8px;display:flex}.skeleton-row--center{align-items:center}.auth-loading-skeleton{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:320px;display:flex}.lesson-list-skeleton{border:1px solid var(--border);border-radius:4px;overflow:hidden}.lesson-list-skeleton__row{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:12px 16px;display:flex}.lesson-list-skeleton__row:last-child{border-bottom:none}.lesson-list-skeleton__text{flex:1;min-width:0}.saved-versions-skeleton__row{justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 0;display:flex}.saved-versions-skeleton__text{flex:1;min-width:0}.saved-versions-skeleton__preview{margin-top:4px}.code-editor-skeleton__spacer{flex-shrink:0}.code-history-select-skeleton{width:100%;margin-top:8px}.snippets-list-skeleton__card{border:1px solid var(--border);border-radius:4px;padding:16px}.snippets-list-skeleton__card-head{flex-direction:row;gap:8px;margin-bottom:8px;display:flex}.forum-posts-skeleton__post-inner{flex-direction:column;gap:6px;display:flex}@keyframes activity-tracker-skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.activity-tracker-skeleton__summary{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.activity-tracker-skeleton__summary-strong,.activity-tracker-skeleton__summary-rest,.activity-tracker-skeleton__month-bar,.activity-tracker-skeleton__weekday-bar{background:var(--border);border-radius:4px;animation:1.6s ease-in-out infinite activity-tracker-skeleton-pulse;display:inline-block}.activity-tracker-skeleton__summary-strong{width:52px;height:14px}.activity-tracker-skeleton__summary-rest{width:148px;height:14px}.activity-tracker-skeleton__month-bar{width:22px;height:10px;position:absolute;top:2px;transform:translate(0)}.activity-tracker-skeleton__weekday-bar{vertical-align:middle;width:18px;height:8px}.activity-tracker-skeleton__cell{animation:1.6s ease-in-out infinite activity-tracker-skeleton-pulse}.student-progress-skeleton__summary-line+.student-progress-skeleton__summary-line{margin-top:4px}.student-progress-skeleton__lessons-heading{margin-top:8px;margin-bottom:0;display:block}.lesson-progress-card-skeleton__title{flex:1;min-width:0}.lesson-progress-card-skeleton__badge{border-radius:999px;flex-shrink:0}.lesson-progress-card-skeleton__badge--wide{width:128px}.lesson-progress-card-skeleton__badge--narrow{width:88px}.lesson-progress-card-skeleton__bar{border-radius:3px;display:block}.lesson-page-skeleton{grid-template-rows:auto minmax(320px,1fr) minmax(200px,auto);grid-template-columns:1fr;height:100%;min-height:0;display:grid}@media (width>=900px){.lesson-page-skeleton{grid-template-rows:1fr;grid-template-columns:minmax(220px,280px) 1fr 1fr}}.lesson-page-skeleton__panel{border-bottom:1px solid var(--border);flex-direction:column;min-height:0;display:flex}@media (width>=900px){.lesson-page-skeleton__panel{border-bottom:none;border-right:1px solid var(--border)}.lesson-page-skeleton__panel:last-child{border-right:none}}.lesson-page-skeleton__panel-title{margin:16px 16px 0}.lesson-page-skeleton__panel-body{flex:1;min-height:0;padding:16px}.lesson-page-skeleton__lesson-panel{padding:16px}.lesson-page-skeleton__tabs{flex-direction:row;gap:8px;margin-bottom:16px;display:flex}.lesson-page-skeleton__lesson-title{margin-bottom:8px}.lesson-page-skeleton__editor{flex-direction:column;height:100%;display:flex}.lesson-page-skeleton__editor-toolbar{border-bottom:1px solid var(--border);flex-shrink:0;gap:8px;padding:8px 16px;display:flex}.lesson-page-skeleton__editor-area{flex:1;min-height:200px}.lesson-page-skeleton__viz{width:100%;height:100%;min-height:200px}.app-shell{flex-direction:column;height:100%;display:flex}.app-shell__main{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-shell__content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.route-loading{flex:1;justify-content:center;align-items:center;display:flex}.route-loading--auth{min-height:320px}.route-loading--app{min-height:240px}.lesson-panel{text-align:left;background-color:var(--bg);min-width:0;height:100%;min-height:0;color:var(--text-h);border-right:0;border-bottom:1px solid var(--border);border-radius:0;flex-direction:column;display:flex}@media (width>=900px){.lesson-panel{border-right:1px solid var(--border);border-bottom:0}}.lesson-panel:last-of-type{border-bottom:0;border-right:0}.lesson-panel__header{border-bottom:1px solid var(--border);background:var(--social-bg);flex-shrink:0;padding:12px 16px}.lesson-panel__title{letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:.75rem;font-weight:600;line-height:1.2}.lesson-panel__body{flex:1;min-height:0;padding:16px;overflow:auto}.lesson-panel__body--no-padding{padding:0}.lesson-panel__body--hide-overflow{overflow:hidden}.app-nav{color:var(--text-h);border-bottom:1px solid var(--border);box-shadow:none;position:relative;background-color:var(--nav-bg)!important}.app-nav .MuiToolbar-root{min-height:0;padding:0}.app-nav__toolbar{width:100%}.app-nav__inner{box-sizing:border-box;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 16px 11px;display:flex}@media (width>=900px){.app-nav__inner{gap:20px;min-height:64px;padding:10px 24px 11px}}.app-nav__brand{color:inherit;border-radius:8px;flex-shrink:0;align-items:center;gap:12px;margin:-4px -6px -4px -4px;padding:4px 6px 4px 4px;text-decoration:none;transition:background-color .15s;display:flex}.app-nav__brand:hover{background:var(--accent-bg)}.app-nav__brand:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-nav__logo{object-fit:contain;border-radius:6px;flex-shrink:0;width:auto;max-width:200px;height:40px;display:block}@media (width>=900px){.app-nav__logo{max-width:220px;height:44px}}html[data-theme=light] .app-nav__logo--dark,html[data-theme=dark] .app-nav__logo--light{display:none}.app-nav__brand-text{flex-direction:column;gap:1px;min-width:0;display:flex}.app-nav__title{font-family:var(--heading);letter-spacing:-.02em;color:var(--text-h);font-size:1.0625rem;font-weight:700;line-height:1.2}.app-nav__tagline{letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-size:.6875rem;font-weight:500;line-height:1.2}.app-nav__divider{border-color:var(--border);align-self:stretch;margin:6px 0}.app-nav__divider--brand{flex-shrink:0;display:none}@media (width>=640px){.app-nav__divider--brand{display:block}}@media (width<=420px){.app-nav__tagline{display:none}}.app-nav__links{scrollbar-width:none;-ms-overflow-style:none;flex:1;align-items:center;gap:2px;min-width:0;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8px calc(100% - 8px),#0000);mask-image:linear-gradient(90deg,#0000,#000 8px calc(100% - 8px),#0000)}.app-nav__links::-webkit-scrollbar{display:none}@media (width>=768px){.app-nav__links{gap:4px;overflow-x:visible;-webkit-mask-image:none;mask-image:none}}.app-nav__link{color:var(--text);white-space:nowrap;border-radius:6px;align-items:center;padding:8px 14px;font-size:.875rem;font-weight:500;line-height:1.25;text-decoration:none;transition:color .15s,background-color .15s;display:inline-flex;position:relative}.app-nav__link:hover{color:var(--text-h);background:var(--accent-bg)}.app-nav__link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-nav__link--active{color:var(--text-h);background:var(--accent-bg);font-weight:600}.app-nav__link--active:after{content:"";background:var(--text-h);border-radius:1px;height:2px;position:absolute;bottom:4px;left:14px;right:14px}.app-nav__actions{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}.app-nav__color-mode{color:var(--text)}.app-nav__color-mode:hover{color:var(--text-h);background:var(--accent-bg)}.app-nav__auth-group{align-items:center;gap:4px;display:flex}.app-nav__auth-btn{letter-spacing:0;font-weight:500;text-transform:none!important}.app-nav__auth-btn--primary{box-shadow:none}.app-nav__dev-role-toggle{letter-spacing:0;white-space:nowrap;flex-shrink:0;font-weight:500;text-transform:none!important}.dev-role-preview-banner{border-bottom:1px solid var(--border);border-radius:0;flex-shrink:0}.dev-role-preview-banner .MuiAlert-message{font-size:.8125rem}.app-nav__session{border:1px solid var(--border);background:var(--social-bg);border-radius:8px;align-items:center;gap:2px;padding:4px 6px 4px 4px;display:flex}.app-nav__user{align-items:center;gap:10px;min-width:0;padding:2px 4px 2px 2px;display:flex}.app-nav__avatar.MuiAvatar-root{letter-spacing:.02em;background:var(--text-h);width:34px;height:34px;color:var(--bg);border:1px solid var(--border);flex-shrink:0;font-size:.8125rem;font-weight:600}.app-nav__user-name{color:var(--text-h);max-width:120px;font-size:.875rem;font-weight:600;line-height:1.2;display:none}@media (width>=480px){.app-nav__user-name{max-width:140px;display:block}}@media (width>=768px){.app-nav__user-name{max-width:180px}}.app-nav__session-divider{border-color:var(--border);align-self:stretch;margin:6px 2px}.app-nav__session-divider.MuiDivider-root{display:none}@media (width>=380px){.app-nav__session-divider.MuiDivider-root{display:block}}.app-nav__sign-out.MuiButton-root{letter-spacing:0;min-width:0;color:var(--text);border-radius:8px;flex-shrink:0;padding:6px 10px;font-size:.8125rem;font-weight:500;text-transform:none!important}.app-nav__sign-out .MuiButton-startIcon{opacity:.85;margin-right:4px}.app-nav__sign-out .MuiButton-startIcon svg{font-size:1.05rem}.app-nav__sign-out:hover{color:var(--text-h);background:var(--accent-bg)}.app-nav__sign-out:hover .MuiButton-startIcon{opacity:1}.auth-layout{background:var(--bg);flex-direction:column;min-height:100%;display:flex}.auth-page{flex:1;justify-content:center;align-items:center;padding:24px 16px;display:flex}@media (width>=600px){.auth-page{padding:40px 16px}}.auth-page__brand{text-align:center;color:var(--accent);margin-bottom:24px;font-weight:700;text-decoration:none;display:block}.auth-page__title{text-align:center}.auth-page__subtitle{text-align:center;margin-bottom:24px}.auth-page__footer{text-align:center;margin-top:24px}.auth-page__back{text-align:center;margin-top:32px}.auth-card{border:1px solid var(--border);background:var(--social-bg);border-radius:4px;padding:20px}@media (width>=600px){.auth-card{padding:24px}}.auth-form__alert{margin-bottom:16px}.auth-form__submit{margin-top:16px}.auth-qa-banner{margin-bottom:16px}.auth-qa-banner__stack{flex-direction:column;gap:4px;display:flex}.auth-role-cards{flex-direction:column;gap:16px;display:flex}@media (width>=600px){.auth-role-cards{flex-direction:row}}.auth-role-card{flex:1;min-width:0}.auth-role-card__action{height:100%}.auth-role-card__icon{color:var(--accent);margin-bottom:8px}.auth-account-toggle{margin-bottom:16px}.auth-account-toggle__label{margin-bottom:8px}.database-list.MuiPaper-root{overflow:hidden}.database-list__head{border-bottom:1px solid var(--border);background:var(--social-bg);grid-template-columns:1fr auto;gap:16px;padding:8px 16px;display:grid}.database-list__head-label{color:var(--text);letter-spacing:.01em;font-size:.75rem;font-weight:500}.database-list__row.MuiListItem-root,.database-list__row.MuiListItemButton-root{padding:10px 16px;transition:background-color .12s}.database-list__row.MuiListItem-root:hover,.database-list__row.MuiListItemButton-root:hover{background-color:var(--accent-bg)}.database-list__row .MuiListItemText-primary{color:var(--text-h);font-size:.9375rem;font-weight:500}.database-list__row .MuiListItemText-secondary{color:var(--text);font-size:.8125rem}.database-list__row-title{align-items:center;gap:8px;min-width:0;display:flex}.database-list__row-title-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.database-list__meta{color:var(--text);margin-top:4px;font-size:.75rem;display:block}.database-list__actions{opacity:0;transition:opacity .12s}.database-list__row:hover .database-list__actions,.database-list__row:focus-within .database-list__actions{opacity:1}@media (hover:none){.database-list__actions{opacity:1}}.content-page__section-title{color:var(--text-h);margin:32px 0 16px;font-size:1rem;font-weight:600}.content-page__section-title:first-of-type{margin-top:0}.content-page{box-sizing:border-box;width:100%;max-width:720px;margin-left:auto;margin-right:auto;padding:24px}@media (width>=900px){.content-page{padding:40px}}.content-page--wide{max-width:1200px}.content-page__lede{margin-bottom:24px}.content-page__alert{margin-bottom:16px}.content-page__header-row{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.content-page__empty-desc{margin-bottom:16px}.add-student-dialog__actions{justify-content:flex-end;gap:8px;padding:8px 24px 16px;display:flex}.add-student-dialog__form{flex-direction:column;gap:16px;padding-top:8px;display:flex}.add-student-dialog__name-row{flex-direction:column;gap:16px;display:flex}@media (width>=600px){.add-student-dialog__name-row{flex-direction:row}.add-student-dialog__name-row>*{flex:1}}.add-student-dialog__alert{margin-bottom:0}.add-student-dialog__success-title{font-weight:600}.add-student-dialog__success-detail{margin-top:4px}.add-student-dialog__success-hint{margin-top:8px;display:block}.classroom-page__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.classroom-page__section-title{margin:0}.classroom-page__success-alert{margin-bottom:16px}.classroom-forum{margin-top:32px;padding:24px}.classroom-forum__subtitle,.classroom-forum__alert{margin-bottom:16px}.classroom-forum__compose{flex-shrink:0;margin-bottom:16px}.classroom-forum__submit{margin-top:12px}.classroom-forum__thread{border-top:1px solid var(--border);max-height:420px;padding-top:16px;padding-right:4px;overflow-y:auto}.classroom-forum__loading{justify-content:center;padding:24px 0;display:flex}.classroom-forum__list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.classroom-forum__post{border:1px solid var(--border);border-radius:4px;padding:16px}.classroom-forum__post-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.classroom-forum__post-meta{flex:1;min-width:0}.classroom-forum__post-author-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.classroom-forum__you-label{margin-left:4px}.classroom-forum__timestamp{display:block}.classroom-forum__body{white-space:pre-wrap;word-break:break-word;margin-top:8px}.classroom-roster{border:1px solid var(--border);border-radius:4px;overflow:auto}.classroom-roster__table{border-collapse:collapse;width:100%}.classroom-roster__head th{text-align:left;color:var(--text);border-bottom:1px solid var(--border);background:var(--social-bg);padding:8px 16px;font-size:.75rem;font-weight:500}.classroom-roster__row td{border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-h);padding:10px 16px;font-size:.9375rem;transition:background-color .12s}.classroom-roster__row:last-child td{border-bottom:none}.classroom-roster__row--clickable{cursor:pointer}.classroom-roster__row--clickable:hover td{background:var(--accent-bg)}.classroom-roster__row--you td{background:color-mix(in srgb, var(--accent-bg) 70%, transparent)}.classroom-roster__row--you.classroom-roster__row--clickable:hover td{background:var(--accent-bg)}.classroom-roster__name{font-weight:500}.classroom-roster__login-id{font-family:var(--mono);font-size:.8125rem}.classroom-roster__hint{color:var(--text);margin-top:8px;font-size:.8125rem}.code-editor{min-height:0}.code-editor--drop-active{outline:2px solid var(--accent);outline-offset:-2px;border-radius:4px}.snippets-section{padding:24px}.snippets-section--classroom{margin-top:32px}.snippets-section__lede,.snippets-section__alert{margin-bottom:16px}.snippets-section__empty{color:var(--text);font-size:.875rem}.snippets-filters{margin-bottom:16px}.snippets-filters__label{color:var(--text);margin-bottom:4px;font-size:.75rem}.snippets-form{background:var(--social-bg);border-radius:4px;margin-bottom:24px;padding:16px}.snippets-form__kind{margin-bottom:16px}.snippets-form__heading{color:var(--text-h);margin:0 0 16px;font-size:.875rem;font-weight:600}.snippets-form__fields{flex-direction:column;gap:16px;display:flex}.snippets-form__code-label{margin-bottom:8px;display:block}.snippets-form__code-editor{border:1px solid var(--border);border-radius:4px;height:220px;overflow:hidden}.snippets-form__submit{margin-top:16px}.snippet-dialog__form{flex-direction:column;gap:16px;padding-top:8px;display:flex}.snippet-dialog__code-label{color:var(--text);margin-bottom:4px;font-size:.75rem;display:block}.snippet-dialog__code-preview{border:1px solid var(--border);border-radius:4px;overflow:hidden}.snippet-dialog__code-preview--save{height:180px}.snippet-dialog__code-preview--edit{height:220px}.snippets-list{margin:0;padding:0;list-style:none}.snippets-list__item{margin:0;padding:0}.snippets-list__drag-preview{background:var(--bg);border:1px solid var(--border);width:360px;box-shadow:var(--shadow);pointer-events:none;border-radius:4px;padding:10px 12px;position:fixed;top:-10000px;left:-10000px}.snippets-list__drag-preview-head{flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;display:flex}.snippets-list__drag-preview-title{margin:0;font-size:.875rem;font-weight:700;line-height:1.3}.snippets-list__drag-preview-teaser{color:var(--text);margin:0;font-size:.75rem;line-height:1.3}.snippets-list__card{border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:4px;margin-bottom:8px;padding:10px 12px;overflow:hidden}.snippets-list__card--selected{border-color:var(--text-h);background:var(--accent-bg)}.snippets-list__card--draggable{cursor:grab}.snippets-list__card--draggable:active{cursor:grabbing}.snippets-list__card-head{align-items:center;gap:4px;min-width:0;display:flex}.snippets-list__chip.MuiChip-root{flex-shrink:0;height:22px}.snippets-list__chip .MuiChip-label{padding-left:6px;padding-right:6px;font-size:.65rem}.snippets-list__author{min-width:0;color:var(--text);font-size:.75rem}.snippets-list__review-toggle{margin-left:auto}.snippets-list__review-badge{color:#ed6c02;margin-left:auto}.snippets-list__title{margin:0;font-size:.875rem;font-weight:600;line-height:1.3}.snippets-list__title--drag{font-weight:700}.snippets-list__teaser{color:var(--text);margin:0;font-size:.75rem;line-height:1.3}.snippets-list__stack{flex-direction:column;gap:4px;display:flex}.snippets-list__expanded{flex-direction:column;gap:8px;padding-top:8px;display:flex}.snippets-list__expanded-details{color:var(--text);margin:0;font-size:.75rem}.snippets-list__code{background:var(--social-bg);font-family:var(--mono);-webkit-user-select:text;user-select:text;white-space:pre-wrap;border-radius:4px;max-height:200px;margin:0;padding:8px;font-size:.75rem;overflow:auto}.snippets-list__actions{flex-wrap:wrap;gap:8px;display:flex}.snippets-list__delete-row{padding-top:8px}.snippets-list__hint{color:var(--text);margin:8px 0 0;font-size:.75rem;display:block}.snippets-list__line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.snippets-list__line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.snippets-list__ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.invite-staff-dialog__form{flex-direction:column;gap:1rem;margin-top:.25rem;display:flex}.invite-staff-dialog__alert{margin-bottom:.5rem}.invite-staff-dialog__permissions-label{margin-top:.5rem}.invite-staff-dialog__permissions{margin-left:.25rem}.invite-staff-dialog__code{margin:.5rem 0;font-size:1.05rem}.invite-staff-dialog__success-title{margin-bottom:.25rem}.invite-staff-dialog__actions{padding-inline:1.5rem;padding-bottom:1rem}.classroom-staff-section{margin-top:2.5rem}.classroom-staff-section__lede{margin-bottom:1rem}.classroom-staff-section__list{border:1px solid var(--border);border-radius:4px}.collaboration-groups-section{margin-top:24px;padding:16px}.collaboration-groups-section__lede{margin-bottom:8px}.collaboration-groups-section__label{letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin-bottom:6px;font-size:12px;font-weight:600}.collaboration-groups-section__group-card{border:1px solid var(--border);background:var(--social-bg);border-radius:10px;padding:12px}.lesson-groups-panel__highlight{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:10px;padding:12px}.lesson-groups-panel__team-name{color:var(--text-h);margin:4px 0;font-weight:600}.lesson-groups-panel__group-card{border:1px solid var(--border);background:var(--social-bg);color:var(--text);border-radius:8px;padding:10px 12px}.lesson-groups-panel__group-card--mine{border-color:var(--accent-border);background:var(--accent-bg)}.lesson-groups-panel__group-name{color:var(--text-h);font-weight:600}.lesson-groups-panel__members{margin-top:6px}.peer-workspace-dialog__title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.peer-workspace-dialog__content{min-height:280px;padding-top:8px!important}.peer-workspace-dialog__editor{border:1px solid #e2e8f0;border-radius:4px;flex-direction:column;height:min(60vh,480px);display:flex;overflow:hidden}.peer-workspace-dialog__editor .code-editor{flex:1;min-height:0}.peer-workspace-dialog__empty{text-align:center;color:#64748b;padding:24px 12px}.lesson-page__layer-toggle{flex-shrink:0}.lesson-page__layer-toggle .MuiToggleButtonGroup-grouped{color:var(--text);text-transform:none;padding:5px 14px;font-size:13px;font-weight:600;line-height:1.2;border-color:color-mix(in srgb, var(--accent) 30%, #e2e8f0)!important}.lesson-page__layer-toggle .MuiToggleButtonGroup-grouped.Mui-selected{background:color-mix(in srgb, var(--accent) 12%, #fff);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, #e2e8f0)!important}.lesson-page__editor-nav{border-bottom:1px solid var(--border);background:var(--social-bg);flex-shrink:0;align-items:stretch;min-height:36px;display:flex}.lesson-page__editor-nav--team{align-items:center;padding:0 16px}.lesson-page__file-tabs{flex:1;min-width:0;min-height:38px}.lesson-page__file-tabs .MuiTab-root{min-width:0;min-height:38px;font-family:var(--mono);text-transform:none;letter-spacing:0;color:#64748b;padding:6px 14px;font-size:12px;font-weight:500}.lesson-page__file-tabs .MuiTab-root.Mui-selected{color:var(--accent)}.lesson-page__file-tabs .MuiTabs-indicator{border-radius:2px 2px 0 0;height:2px}.lesson-page__team-context{color:var(--text);font-size:13px;font-weight:500}.lesson-page__editor-tabpanel{flex-direction:column;flex:1;min-height:0;display:flex}.lesson-page__editor-tabpanel .code-editor{flex:1;min-height:0}.lesson-page__editor-restore-loading{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.lesson-page__editor-restore-loading-label{background:color-mix(in srgb, var(--social-bg) 92%, #fff);border:1px solid var(--border);border-radius:8px;padding:8px 12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.restore-checkpoint-dialog__loading{padding:24px 12px}.lesson-page__editor-readonly-note{border-bottom:1px solid var(--border);background:var(--social-bg);flex-shrink:0;padding:8px 12px}.activity-tracker{margin-bottom:24px}.activity-tracker__summary{color:var(--text);margin:0 0 12px;font-size:.875rem}.activity-tracker__summary strong{color:var(--text-h)}.activity-tracker__fill{width:100%}.activity-tracker__grid-wrap{flex-direction:column;gap:4px;width:100%;display:flex}.activity-tracker__months{width:calc(100% - 28px);height:14px;margin-left:28px;position:relative}.activity-tracker__month-label{color:var(--text);white-space:nowrap;font-size:.6875rem;position:absolute;top:0;transform:translate(0)}.activity-tracker__body{gap:8px;width:100%;display:flex}.activity-tracker__weekdays{color:var(--text);flex-direction:column;flex-shrink:0;gap:3px;width:20px;padding-top:2px;font-size:.6875rem;line-height:1;display:flex}.activity-tracker__weekday{height:var(--activity-cell-size,12px);line-height:var(--activity-cell-size,12px)}.activity-tracker__weeks{flex:1;gap:3px;min-width:0;display:flex}.activity-tracker__week{width:var(--activity-cell-size,12px);flex-direction:column;flex-shrink:0;gap:3px;display:flex}.activity-tracker__cell{width:var(--activity-cell-size,12px);height:var(--activity-cell-size,12px);cursor:default;background:var(--border);border:none;border-radius:2px;padding:0}.activity-tracker__cell--placeholder{visibility:hidden;pointer-events:none}.activity-tracker__tooltip{z-index:1500;background:var(--text-h,#1a1a1a);color:var(--social-bg,#fff);white-space:nowrap;pointer-events:none;border-radius:4px;padding:4px 8px;font-size:.6875rem;font-weight:500;line-height:1.3;position:fixed;box-shadow:0 2px 8px #00000040}.activity-tracker__cell--0{background:color-mix(in srgb, var(--border) 80%, transparent)}.activity-tracker__cell--1{background:color-mix(in srgb, var(--accent) 25%, var(--border))}.activity-tracker__cell--2{background:color-mix(in srgb, var(--accent) 45%, var(--border))}.activity-tracker__cell--3{background:color-mix(in srgb, var(--accent) 70%, var(--border))}.activity-tracker__cell--4{background:var(--accent)}.activity-tracker__cell:not(:disabled):hover{outline:1px solid var(--text-h);outline-offset:1px}.activity-tracker__legend{color:var(--text);justify-content:flex-end;align-items:center;gap:4px;margin-top:8px;font-size:.6875rem;display:flex}.activity-tracker__legend-cells{gap:3px;display:flex}.activity-tracker__legend .activity-tracker__cell{cursor:default;flex:none;width:12px;height:12px}.code-history-select-wrap{margin-top:8px}.code-history-select{width:100%;font:inherit;border:1px solid var(--border);background:var(--social-bg,#fff);color:inherit;cursor:pointer;border-radius:4px;padding:8px 10px;font-size:.8125rem}.code-history-select:disabled{opacity:.6;cursor:default}.code-version-modal__title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-right:8px;display:flex}.code-version-modal__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.code-version-modal__copied{color:var(--text);font-size:.75rem}.code-version-modal__content{min-height:200px;padding-top:8px!important}.code-version-modal__editor{border:1px solid var(--border);border-radius:4px;height:min(60vh,480px);overflow:hidden}.code-version-modal__loading{justify-content:center;align-items:center;min-height:200px;display:flex}.student-progress-dialog__meta{margin-bottom:16px}.student-progress-dialog__content{max-height:min(80vh,720px);overflow-y:auto}.student-progress-dialog__login-id{font-family:var(--mono);font-size:.875rem}.student-progress-dialog__loading{justify-content:center;padding:32px 0;display:flex}.student-progress-dialog__empty{margin:0}.student-progress-dialog__lesson-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.student-progress-dialog__summary{margin:16px 0}.student-progress-dialog__lessons-heading{margin-top:8px}.student-progress-dialog__lesson{border:1px solid var(--border);border-radius:4px;overflow:hidden}.student-progress-dialog__lesson-card{padding:12px 16px}.student-progress-dialog__lesson-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.lesson-progress__mastery{text-transform:uppercase;letter-spacing:.02em;border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.6875rem;font-weight:600}.lesson-progress__mastery--not-started{opacity:.7}.lesson-progress__mastery--tests-pending{border-color:var(--accent,#1976d2);color:var(--accent,#1976d2)}.lesson-progress__mastery--passed{color:#2e7d32;border-color:#2e7d32}.student-progress-dialog__step-track{margin-bottom:12px}.student-progress-dialog__step-track-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.student-progress-dialog__step-label{color:var(--text);font-size:.75rem;font-weight:600}.student-progress-dialog__step-meta{color:var(--text);font-size:.75rem}.student-progress-dialog__code-history{border-top:1px solid var(--border);margin-top:4px;padding-top:12px}.student-progress-dialog__code-history-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.student-progress-dialog__code-history-title{font-size:.8125rem;font-weight:600}.student-progress-dialog__code-history-meta{color:var(--text);font-size:.75rem}.student-progress-dialog__code-history-empty{margin:0}.student-progress-dialog__bar{background:var(--border);border-radius:3px;width:100%;min-width:0;height:6px;overflow:hidden}.student-progress-dialog__bar-fill{border-radius:3px;height:100%;transition:width .2s}.student-progress-dialog__bar-fill--steps{background:var(--accent,#1976d2)}.student-progress-dialog__lesson-title{font-weight:600;display:block}.student-progress-dialog__lesson-meta{color:var(--text);margin-top:4px;font-size:.8125rem;display:block}.student-progress-dialog__history-loading{justify-content:center;padding:12px 0;display:flex}.lesson-prose{color:inherit;font-size:inherit;line-height:inherit}.lesson-prose__paragraph{margin:0 0 .65em}.lesson-prose__paragraph:last-child{margin-bottom:0}.lesson-prose__inline{font-family:var(--mono);border:1px solid var(--border);background:color-mix(in srgb, var(--social-bg) 85%, #fff);color:var(--text-h);white-space:nowrap;border-radius:4px;padding:.1em .35em;font-size:.92em}.lesson-prose__code-block{border:1px solid var(--border);background:color-mix(in srgb, var(--social-bg) 85%, #fff);border-radius:8px;margin:.5em 0 .75em;overflow:hidden}.lesson-prose__code-block .code-editor{min-height:56px}.lesson-prose__code-block:last-child{margin-bottom:0}.lesson-prose__block{border:1px solid var(--border);background:color-mix(in srgb, var(--social-bg) 85%, #fff);font-family:var(--mono);color:var(--text-h);white-space:pre-wrap;border-radius:8px;margin:.5em 0 .75em;padding:10px 12px;font-size:.8125rem;line-height:1.45;overflow-x:auto}.lesson-prose__block:last-child{margin-bottom:0}.lesson-prose__block code{font-family:inherit;font-size:inherit}.instructions__mission-part-task.lesson-prose{margin-top:6px}.instructions__learn-more-body .lesson-prose__paragraph{color:var(--text);font-size:.75rem;line-height:1.4}.lesson-intro__prose-field{margin:0}.lesson-intro__prose-field .lesson-prose__paragraph{color:var(--text);margin:0}.lesson-intro__prose-field+.lesson-intro__prose-field{margin-top:.5rem}@media (width<=767px){.workspace-explorer{flex-basis:132px;min-width:120px}.workspace-explorer__header{padding-inline:8px}}.lesson-page{flex-direction:column;height:100%;min-height:0;display:flex}.lesson-page__mobile-panels{flex:1;grid-template-rows:auto minmax(320px,1fr) minmax(200px,auto);grid-template-columns:1fr;min-height:0;display:grid}.lesson-page__panel-group{flex:1;min-width:0;min-height:0}.lesson-page__panel-slot{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex}.lesson-page__panel-group .lesson-panel{border-right:0}.lesson-page__resize-handle{background:color-mix(in srgb, var(--social-bg) 70%, transparent);z-index:2;cursor:col-resize;flex:0 0 12px;position:relative}.lesson-page__resize-handle:before{content:"";background:var(--border);pointer-events:none;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.lesson-page__resize-handle:after{content:"";background:color-mix(in srgb, var(--text) 45%, transparent);opacity:.45;pointer-events:none;border-radius:999px;width:4px;height:36px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lesson-page__resize-handle[data-separator=active]:before,.lesson-page__resize-handle[data-separator=hover]:before,.lesson-page__resize-handle:hover:before{background:var(--accent);width:3px}.lesson-page__resize-handle[data-separator=active]:after,.lesson-page__resize-handle[data-separator=hover]:after,.lesson-page__resize-handle:hover:after{opacity:.9;background:var(--accent)}.lesson-page__editor-column{flex-direction:column;height:100%;min-height:0;display:flex}.lesson-page__editor-toolbar{border-bottom:1px solid var(--border);flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;display:flex}.lesson-page__editor-toolbar .MuiButton-root,.lesson-page__editor-toolbar .lesson-page__toolbar-icon-slot{flex-shrink:0}.lesson-page__editor-toolbar .MuiButton-root{white-space:nowrap}.lesson-page__toolbar-icon-slot{align-items:center;display:inline-flex}.lesson-page__snippet-btn.MuiIconButton-root{border:1px solid var(--border);border-radius:6px;width:30px;height:30px}.lesson-page__snippet-btn.MuiIconButton-root:not(.Mui-disabled){border-color:#0000003b}.lesson-page__toolbar-spacer{flex:1;min-width:8px}.lesson-page__save-meta{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;font-size:.75rem;overflow:hidden}.lesson-page__editor-alert{margin:8px 16px 0}.lesson-page__editor-body{flex-direction:column;flex:1;min-height:0;display:flex}.lesson-shell{height:100%;min-height:0}.lesson-saved-versions__alert{margin-top:8px}.lesson-saved-versions__item.MuiListItemButton-root{align-items:flex-start;gap:8px;padding-left:0;padding-right:0}.lesson-saved-versions__pass-icon{flex-shrink:0;margin-top:2px}.lesson-saved-versions__text{flex:1;min-width:0}.lesson-saved-versions__date{display:block}.lesson-saved-versions__preview{font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;display:block;overflow:hidden}.lesson-saved-versions__open{flex-shrink:0;margin-left:8px}.lessons-list__secondary{margin-top:4px}.lessons-list__status{flex-shrink:0}.lesson-progress__mastery--in-progress{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));color:var(--text-h)}.code-viz{flex-direction:column;height:100%;display:flex}.code-viz__preview{background:var(--social-bg);border-bottom:1px solid var(--border);flex:1;justify-content:center;align-items:center;padding:0;display:flex}.code-viz__frame{background:#fff;border:0;width:100%;height:100%}.code-viz__placeholder{text-align:center;max-width:280px;color:var(--text);font-size:.875rem}.code-viz__stats{flex-direction:row;flex-shrink:0;gap:24px;padding:16px;display:flex}.code-viz__stat-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text);font-size:.75rem}.code-viz__stat-value{font-family:var(--mono);color:var(--text-h);margin:4px 0 0;font-size:1.5rem;font-weight:500}.lesson-intro__preview-shell{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;height:260px;overflow:hidden}.lesson-intro__code{border:1px solid var(--border);background:color-mix(in srgb, var(--social-bg) 85%, #fff);font-family:var(--mono);color:var(--text-h);white-space:pre-wrap;border-radius:8px;margin:0;padding:12px 14px;font-size:.875rem;line-height:1.5;overflow-x:auto}.lesson-intro__preview-frame{border:0;width:100%;height:100%}.instructions__static-list{margin:0;padding-left:1.25rem}.instructions__static-list li{margin-bottom:8px}.instructions__day-label{letter-spacing:.02em;color:var(--accent,#1976d2);margin:0 0 4px;font-size:.75rem;font-weight:600}.mission-picker{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.mission-picker__item{text-align:left;width:100%;font:inherit;border:1px solid var(--border);color:inherit;cursor:pointer;background:0 0;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.8125rem;display:flex}.mission-picker__label{flex:1;min-width:0}.mission-picker__label--complete{color:var(--text-secondary,#64748b);text-decoration:line-through}.mission-picker__complete-icon{flex-shrink:0;font-size:1.125rem!important}.mission-picker__item--current{border-color:var(--accent,#1976d2);background:color-mix(in srgb, var(--accent,#1976d2) 10%, transparent)}.mission-picker__item--completed{border-color:color-mix(in srgb, #16a34a 35%, var(--border));background:#16a34a0f}.mission-picker__item:disabled{opacity:.45;cursor:default}.mission-picker__item:not(:disabled):hover{background:var(--social-bg)}.mission-picker__item--completed:not(:disabled):hover{background:color-mix(in srgb, #16a34a 10%, var(--social-bg))}.instructions__header{margin-bottom:12px}.instructions__header--compact{margin-bottom:10px}.instructions__header-row{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.instructions__mission-heading{margin:0!important;font-size:.875rem!important;font-weight:600!important;line-height:1.35!important}.instructions__parts-count{color:var(--text);flex-shrink:0;font-size:.75rem;font-weight:600}.instructions__step-indicator{color:var(--text);margin-bottom:8px;font-size:.75rem}.instructions__step-body{margin:0 0 16px}.instructions__step-intro{margin:0 0 12px;font-size:.95rem;line-height:1.45}.instructions__lesson-blocks{gap:8px;display:grid}.instructions__lesson-block{border:1px solid var(--border);background:color-mix(in srgb, var(--social-bg) 75%, transparent);border-radius:10px;padding:10px 12px}.instructions__lesson-block--task{border-color:color-mix(in srgb, var(--accent,#1976d2) 45%, var(--border));background:color-mix(in srgb, var(--accent,#1976d2) 10%, var(--social-bg) 90%)}.instructions__lesson-label{letter-spacing:.02em;text-transform:uppercase;color:var(--accent,#1976d2);margin:0 0 4px;font-size:.76rem;font-weight:700}.instructions__lesson-value{margin:0;font-size:.9rem;line-height:1.45}.instructions__nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.instructions__dots{flex-wrap:wrap;flex:1;justify-content:center;gap:6px;display:flex}.instructions__dot{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;width:8px;height:8px;padding:0}.instructions__dot:disabled{opacity:.45;cursor:default}.instructions__dot--current{background:var(--accent,#1976d2);border-color:var(--accent,#1976d2)}.instructions__dot--seen{background:var(--social-bg)}.instructions__nav-btn{font:inherit;border:1px solid var(--border);color:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:6px 12px;font-size:.8125rem}.instructions__nav-btn:disabled{opacity:.45;cursor:default}.instructions__nav-btn:not(:disabled):hover{background:var(--social-bg)}.instructions__progress-bar{background:var(--border);border-radius:2px;height:3px;margin-bottom:0;overflow:hidden}.instructions__progress-fill{background:var(--accent,#1976d2);height:100%;transition:width .2s}.instructions__mission-parts{gap:8px;margin-bottom:12px;display:grid}.instructions__mission-part{border:1px solid var(--border);background:color-mix(in srgb, var(--social-bg) 70%, transparent);border-radius:8px;padding:8px 10px}.instructions__mission-part--complete{border-color:color-mix(in srgb, #16a34a 45%, var(--border))}.instructions__mission-part-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.instructions__mission-part-badge{flex-shrink:0;font-size:1rem!important}.instructions__mission-part-title{margin:0!important;font-size:.8125rem!important;font-weight:600!important;line-height:1.35!important}.instructions__mission-part-task{color:var(--text-h);margin:6px 0 0;font-size:.8125rem;line-height:1.45}.instructions__learn-more{margin-top:6px}.instructions__learn-more-summary{cursor:pointer;color:var(--accent,#1976d2);font-size:.75rem;font-weight:600;list-style:none}.instructions__learn-more-summary::-webkit-details-marker{display:none}.instructions__learn-more-body{margin-top:4px;padding-left:2px}.instructions__learn-more-body p{color:var(--text);margin:0 0 4px;font-size:.75rem;line-height:1.4}.instructions__learn-more-body p:last-child{margin-bottom:0}.instructions__nav--mission{justify-content:flex-end}.instructions__nav-btn--primary{font-weight:600}.instructions__checks-list--compact{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.instructions__check-row{border:1px solid var(--border);background:color-mix(in srgb, var(--social-bg) 85%, transparent);border-radius:6px;align-items:center;gap:6px;padding:4px 6px;display:flex}.instructions__check-row--pass{border-color:color-mix(in srgb, #16a34a 55%, var(--border));background:color-mix(in srgb, #16a34a 10%, var(--social-bg) 90%)}.instructions__check-row--fail{border-color:color-mix(in srgb, #dc2626 45%, var(--border));background:color-mix(in srgb, #dc2626 8%, var(--social-bg) 92%)}.instructions__check-row--idle{border-color:var(--border);background:0 0}.instructions__check-icon--idle{color:var(--text);opacity:.45}.instructions__check-row--pending{border-color:color-mix(in srgb, #64748b 40%, var(--border))}.instructions__check-row-text{color:var(--text-h);font-size:.75rem;line-height:1.35}.instructions__check-icon--compact{flex-shrink:0;font-size:.95rem!important}.instructions__checks{margin:0 0 16px}.instructions__checks-title{margin:0 0 10px;font-size:.8125rem;font-weight:600}.instructions__checks-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.instructions__check-card{border:1px solid var(--border);background:color-mix(in srgb, var(--social-bg) 80%, transparent);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.instructions__check-card--pass{background:color-mix(in srgb, #16a34a 12%, var(--social-bg) 88%);border-color:#16a34a}.instructions__check-card--fail{background:color-mix(in srgb, #dc2626 10%, var(--social-bg) 90%);border-color:#dc2626}.instructions__check-card--pending{background:color-mix(in srgb, #64748b 10%, var(--social-bg) 90%);border-color:#64748b}.instructions__check-icon{flex-shrink:0;margin-top:1px}.instructions__check-icon--pass{color:#16a34a;font-size:1.125rem!important}.instructions__check-icon--fail{color:#dc2626;font-size:1.125rem!important}.instructions__check-card-body{min-width:0}.instructions__check-card-text{color:var(--text-h);margin:0;font-size:.8125rem;line-height:1.4}.instructions__check-card-status{letter-spacing:.01em;margin:4px 0 0;font-size:.75rem;font-weight:600}.instructions__check-card-status--pass{color:#15803d}.instructions__check-card-status--fail{color:#b91c1c}.instructions__check-card-status--pending{color:#475569}.instruction-panel{flex-direction:column;height:100%;display:flex}.instruction-panel__tabs{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;min-height:40px}.instruction-panel__tabs .MuiTab-root{min-height:40px;color:var(--text);padding:8px 16px;font-size:.75rem}.instruction-panel__tabs .MuiTab-root.Mui-selected{color:var(--accent)}.instruction-panel__tabs .MuiTabs-indicator{background-color:var(--accent)}.instruction-panel__tabpanel{background:var(--bg);flex:1;padding:12px;overflow:auto}.instruction-panel__tabpanel[hidden]{display:none!important}.instruction-panel__tabpanel--files{flex-direction:column;padding:0;display:flex;overflow:hidden}.instruction-panel__tabpanel--files .workspace-explorer{border-right:0;flex:1;width:100%;min-width:0;max-width:none;min-height:200px;max-height:none}.lesson-manage__section{padding:16px}.lesson-manage__details{padding:20px}.lesson-manage__content-shell{padding:0;overflow:hidden}.lesson-manage__workspace{align-items:stretch;min-height:420px}@media (width>=900px){.lesson-manage__workspace{max-height:calc(100dvh - 240px)}}.lesson-manage__sidebar{border-right:1px solid var(--border-subtle);background:var(--social-bg);flex-direction:column;flex:0 0 240px;gap:8px;min-width:0;min-height:0;padding:12px;display:flex;overflow:hidden}.lesson-manage__sidebar-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 4px 8px;display:flex}.lesson-manage__sidebar-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding-right:2px;overflow-y:auto}.lesson-manage__sidebar-label{letter-spacing:.08em;color:var(--text,#0000008c);line-height:1}.lesson-manage__sidebar-add{margin:-4px}.lesson-manage__sidebar-empty{padding:8px 4px}.lesson-manage__sidebar-add-mission{align-self:flex-start}.lesson-manage__nav-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.lesson-manage__nav-group-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text,#00000073);padding:0 8px 4px;font-weight:600}.lesson-manage__nav-item{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.8125rem;display:flex}.lesson-manage__nav-item:hover{background:var(--hover)}.lesson-manage__nav-item--selected{border-color:var(--border);background:var(--accent-bg)}.lesson-manage__nav-item--part{padding-left:18px;font-size:.8125rem}.lesson-manage__nav-icon{opacity:.65;flex-shrink:0;font-size:1rem!important}.lesson-manage__nav-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lesson-manage__nav-meta{opacity:.55;font-weight:400}.lesson-manage__nav-sublist{gap:2px;margin:4px 0 0;padding:0;list-style:none;display:grid}.lesson-manage__nav-add-part{text-transform:none;justify-content:flex-start;margin:4px 0 0 8px;font-size:.75rem}.lesson-manage__nav-part-group{margin-top:4px}.lesson-manage__nav-part-label{color:var(--text,#0000008c);padding:4px 8px 2px 12px;font-weight:600}.lesson-manage__nav-check-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.lesson-manage__nav-item--check{padding-left:22px;font-size:.75rem}.lesson-manage__nav-status-icon{flex-shrink:0;font-size:.875rem!important}.lesson-manage__nav-status-icon--pass{color:#16a34a}.lesson-manage__nav-status-icon--fail{color:#dc2626}.lesson-manage__nav-status-icon--idle{color:var(--text,#00000073);opacity:.55}.lesson-manage__nav-add-check{text-transform:none;justify-content:flex-start;margin:2px 0 8px 18px;font-size:.6875rem}.lesson-manage__check-panel{width:100%}.lesson-manage__workspace-main{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;padding:20px;overflow-y:auto}.lesson-manage__workspace-empty{max-width:420px}.lesson-manage__intro-panel{width:100%}.lesson-manage__intro-sections{padding-top:4px}.lesson-manage__intro-section-row{border:1px dashed var(--border-subtle,#0000001f);border-radius:8px;padding:12px}.lesson-manage__mission,.lesson-manage__step{border:1px solid var(--border-subtle,#00000014);border-radius:8px;overflow:hidden}.lesson-manage__mission-panel,.lesson-manage__part-panel{width:100%}.lesson-manage__check{border:1px dashed var(--border-subtle,#0000001f);border-radius:8px;padding:12px}.lesson-manage__checks{width:100%}.lesson-manage__checks-layout{grid-template-columns:minmax(200px,240px) minmax(0,1fr);align-items:start;gap:12px;display:grid}.lesson-manage__checks-nav{flex-direction:column;gap:6px;min-width:0;display:flex}.lesson-manage__checks-nav-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text,#00000073);padding:0 4px;font-weight:600}.lesson-manage__checks-detail{min-width:0}@media (width<=899px){.lesson-manage__workspace{max-height:none}.lesson-manage__sidebar{border-right:none;border-bottom:1px solid var(--border-subtle,#0000001f);flex:none;max-height:min(42vh,360px)}.lesson-manage__checks-layout{grid-template-columns:1fr}.lesson-manage__check-list{max-height:180px}}.lesson-manage__check-summary{display:block}.lesson-manage__check-list{gap:6px;max-height:240px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.lesson-manage__check-list-item{border:1px solid var(--border-subtle,#0000001f);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.lesson-manage__check-list-item:hover{background:var(--hover)}.lesson-manage__check-list-item--selected{border-color:var(--border);background:var(--accent-bg)}.lesson-manage__check-list-item--pass:not(.lesson-manage__check-list-item--selected){border-color:color-mix(in srgb, #16a34a 45%, var(--border-subtle,#0000001f))}.lesson-manage__check-list-item--fail:not(.lesson-manage__check-list-item--selected){border-color:color-mix(in srgb, #dc2626 40%, var(--border-subtle,#0000001f))}.lesson-manage__check-list-icon{flex-shrink:0;font-size:1rem!important}.lesson-manage__check-list-icon--pass{color:#16a34a}.lesson-manage__check-list-icon--fail{color:#dc2626}.lesson-manage__check-list-icon--idle{color:var(--text,#00000073);opacity:.55}.lesson-manage__check-list-body{flex:1;gap:2px;min-width:0;display:grid}.lesson-manage__check-list-title{color:var(--text-h,inherit);font-size:.8125rem;font-weight:600;line-height:1.35}.lesson-manage__check-list-meta{color:var(--text,#0009);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1.35;overflow:hidden}.lesson-manage__check-list-chip{flex-shrink:0;max-width:140px}.lesson-manage__check-list-chip .MuiChip-label{text-overflow:ellipsis;overflow:hidden}.lesson-manage__check-detail{border:1px solid var(--border-subtle,#0000001f);background:#00000004;border-radius:8px;padding:14px}.lesson-manage__check--readonly{background:#00000005;border-style:solid}.lesson-manage__check-fields{flex:1}.lesson-manage__check-sample{padding-top:4px}.lesson-manage__check-sample-result,.lesson-manage__check-sample-alert,.lesson-manage__check-sample-logs{margin-top:8px}.lesson-manage__code-editor{border:1px solid var(--border-subtle,#0000001f);border-radius:8px;min-height:120px;overflow:hidden}.lesson-manage__code-editor .code-editor{height:100%}.lesson-manage__actions{flex-wrap:wrap;gap:8px;display:flex}.lesson-manage__preview{border:1px solid var(--border-subtle,#0000001f);background:#00000005;border-radius:8px;margin-top:8px;padding:16px}.lesson-manage__preview-lede,.lesson-manage__preview-editor{margin-bottom:12px}.lesson-manage__preview-alert{margin-top:12px}.lesson-manage__preview-logs{border:1px solid var(--border-subtle,#0000001f);background:#fff;border-radius:8px;margin-top:12px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.lesson-manage__preview-log-line{font-family:inherit}.lesson-manage__preview-results{margin-top:12px}.lesson-manage__preview-check{justify-content:space-between}.lesson-manage__preview-status{text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.lesson-manage__preview-status--pass{color:#15803d}.lesson-manage__preview-status--fail{color:#b91c1c}.home-dashboard{max-width:1200px}.home-dashboard__hero{margin-bottom:28px}.home-dashboard__hero-title{margin-bottom:6px!important}.home-dashboard__hero-meta{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.home-dashboard__class-code{font-family:var(--mono);background:var(--accent-bg);border:1px solid var(--border);color:var(--text-h);border-radius:6px;padding:2px 8px;font-size:.8125rem}.home-dashboard__stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}@media (width>=700px){.home-dashboard__stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}.home-dashboard__stat-card{background:var(--social-bg)!important;border-radius:12px!important;padding:16px 18px!important}.home-dashboard__stat-value{font-family:var(--heading);color:var(--text-h);margin-bottom:4px;font-size:1.75rem;font-weight:700;line-height:1.1}.home-dashboard__stat-label{color:var(--text);font-size:.8125rem}.home-dashboard__layout{gap:20px;display:grid}@media (width>=960px){.home-dashboard__layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}}.home-dashboard__panel{border-radius:12px!important;padding:20px!important}.home-dashboard__panel-title{color:var(--text-h);margin-bottom:14px!important;font-weight:600!important}.home-dashboard__continue{flex-direction:column;gap:12px;margin-bottom:20px;display:flex;background:linear-gradient(135deg, var(--accent-bg) 0%, var(--social-bg) 100%)!important;border-color:var(--accent-border)!important;border-radius:12px!important;padding:20px!important}.home-dashboard__continue-title{color:var(--text-h);font-weight:600!important}.home-dashboard__continue-meta{font-size:.875rem}.home-dashboard__lesson-rows{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.home-dashboard__lesson-row{border:1px solid var(--border);background:var(--bg);color:inherit;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;transition:background-color .15s,border-color .15s;display:flex}.home-dashboard__lesson-row:hover{background:var(--accent-bg);border-color:var(--accent-border)}.home-dashboard__lesson-row-title{color:var(--text-h);min-width:0;font-weight:500}.home-dashboard__lesson-row-meta{color:var(--text);margin-top:2px;font-size:.75rem}.home-dashboard__quick-links{flex-wrap:wrap;gap:10px;display:flex}.home-dashboard__monitor-wrap{margin:0 -4px;padding:0 4px 4px;overflow-x:auto}.home-dashboard__monitor{border-collapse:separate;border-spacing:0;width:100%;font-size:.8125rem}.home-dashboard__monitor th,.home-dashboard__monitor td{border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;padding:8px 10px}.home-dashboard__monitor th:first-child,.home-dashboard__monitor td:first-child{text-align:left;z-index:1;background:var(--bg);min-width:120px;max-width:180px;position:sticky;left:0}.home-dashboard__monitor thead th{color:var(--text);background:var(--social-bg);font-size:.75rem;font-weight:600}.home-dashboard__monitor thead th:first-child{background:var(--social-bg);border-top-left-radius:8px}.home-dashboard__monitor tbody tr:last-child td{border-bottom:none}.home-dashboard__monitor-student{width:100%;font:inherit;text-align:left;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0;display:block}.home-dashboard__monitor-student:hover{color:var(--accent);text-decoration:underline}.home-dashboard__monitor-cell{width:36px;height:28px;font-size:.6875rem;font-weight:600;font-family:var(--mono);border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.home-dashboard__monitor-cell--none{background:var(--accent-bg);color:var(--text);opacity:.55}.home-dashboard__monitor-cell--active{color:#2e7d32;background:#2e7d322e}html[data-theme=dark] .home-dashboard__monitor-cell--active{color:#81c784;background:#66bb6a33}.home-dashboard__attention-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.home-dashboard__attention-item{border:1px solid var(--border);background:var(--bg);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.home-dashboard__attention-name{color:var(--text-h);font-weight:500}.home-dashboard__attention-meta{color:var(--text);font-size:.75rem}.home-dashboard__empty{color:var(--text);font-size:.875rem}.workspace-file-tabs{border-bottom:1px solid var(--border);background:var(--social-bg);flex-shrink:0;min-height:36px}.workspace-file-tabs .MuiTabs-flexContainer{gap:0}.workspace-file-tabs .MuiTabs-indicator{display:none}.workspace-file-tabs .MuiTabScrollButton-root{width:28px}.workspace-file-tabs__tab{text-transform:none;min-width:auto;min-height:36px;color:var(--text);opacity:1;padding:0 12px}.workspace-file-tabs__tab.Mui-selected{color:var(--text-h);background:var(--bg);box-shadow:inset 0 -2px 0 var(--accent)}.workspace-file-tabs__tab:hover{background:var(--hover)}.workspace-file-tabs__tab.Mui-selected:hover{background:var(--bg)}.workspace-file-tabs__label{align-items:center;gap:6px;max-width:180px;display:inline-flex}.workspace-file-tabs__icon{border:1px solid color-mix(in srgb, var(--text) 25%, transparent);background:var(--bg);border-radius:2px;flex-shrink:0;width:10px;height:10px}.workspace-file-tabs__icon--html{border-bottom:2px solid #e44d26}.workspace-file-tabs__icon--css{border-bottom:2px solid #264de4}.workspace-file-tabs__icon--js{border-bottom:2px solid #f7df1e}.workspace-file-tabs__icon--json{border-bottom:2px solid #8bc34a}.workspace-file-tabs__icon--md{border-bottom:2px solid #42a5f5}.workspace-file-tabs__name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:.75rem;line-height:1.2;overflow:hidden}.workspace-file-tabs__entry{letter-spacing:.02em;text-transform:uppercase;color:var(--text);opacity:.8;flex-shrink:0;font-size:.625rem;font-weight:500}.workspace-file-tabs__close{color:var(--text);opacity:.65;flex-shrink:0;margin-left:2px;padding:2px}.workspace-file-tabs__close:hover{opacity:1;background:color-mix(in srgb, var(--text) 10%, transparent)}.lesson-page__editor-workspace{flex:1;min-width:0;min-height:0;display:flex}.lesson-page__editor-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.lesson-page__editor-file-tab{border-bottom:1px solid var(--border);background:var(--social-bg);min-height:36px;font-family:var(--mono);color:var(--text-h);flex-shrink:0;align-items:center;gap:8px;padding:0 14px;font-size:.75rem;display:flex}.lesson-page__editor-file-tab-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workspace-explorer{border-right:1px solid var(--border);background:var(--social-bg);flex-direction:column;flex:0 0 200px;min-width:148px;max-width:42%;min-height:0;display:flex}.workspace-explorer__header{letter-spacing:.06em;text-transform:uppercase;color:var(--text);flex-shrink:0;padding:8px 12px 6px;font-size:.6875rem;font-weight:600}.workspace-explorer__action-error{background:color-mix(in srgb, #d32f2f 12%, var(--bg));color:#b71c1c;border-radius:4px;margin:0 8px 6px;padding:6px 8px;font-size:.75rem;line-height:1.35}.workspace-explorer__tree{flex:1;min-height:0;padding:0 0 8px;overflow:auto}.workspace-explorer__row{width:100%;min-height:24px;color:var(--text-h);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:2px 8px 2px 0;font-size:.8125rem;line-height:1.3;display:flex}.workspace-explorer__row:hover{background:var(--hover)}.workspace-explorer__row--active{background:var(--accent-bg);color:var(--text-h)}.workspace-explorer__row--active:hover{background:var(--accent-bg)}.workspace-explorer__row--dragging{opacity:.45}.workspace-explorer__row--drop-target,.workspace-explorer__tree--drop-target{background:color-mix(in srgb, var(--accent) 14%, var(--hover));outline:1px dashed color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:-1px}.workspace-explorer__row[draggable=true]{cursor:grab}.workspace-explorer__row[draggable=true]:active{cursor:grabbing}.workspace-explorer__chevron{width:16px;height:16px;color:var(--text);opacity:.85;flex-shrink:0}.workspace-explorer__folder-icon{background:color-mix(in srgb, var(--text) 35%, transparent);border-radius:1px;flex-shrink:0;width:14px;height:12px;position:relative}.workspace-explorer__folder-icon:before{content:"";background:color-mix(in srgb, var(--text) 35%, transparent);border-radius:1px 1px 0 0;width:7px;height:4px;position:absolute;top:-3px;left:0}.workspace-explorer__file-icon{border:1px solid color-mix(in srgb, var(--text) 25%, transparent);background:var(--bg);border-radius:2px;flex-shrink:0;width:14px;height:16px;position:relative}.workspace-explorer__file-icon:after{content:"";background:linear-gradient(135deg, transparent 50%, color-mix(in srgb, var(--text) 20%, transparent) 50%);width:5px;height:5px;position:absolute;top:0;right:0}.workspace-explorer__file-icon--html{border-bottom:2px solid #e44d26}.workspace-explorer__file-icon--css{border-bottom:2px solid #264de4}.workspace-explorer__file-icon--js{border-bottom:2px solid #f7df1e}.workspace-explorer__file-icon--json{border-bottom:2px solid #8bc34a}.workspace-explorer__file-icon--md{border-bottom:2px solid #42a5f5}.workspace-explorer__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--mono);flex:1;font-size:.75rem;overflow:hidden}.workspace-explorer__entry-badge{letter-spacing:.02em;text-transform:uppercase;color:var(--text);opacity:.8;flex-shrink:0;font-size:.625rem;font-weight:500}@media (width<=767px){.workspace-explorer{flex-basis:132px;min-width:120px}.workspace-explorer__header{padding-inline:8px}}.lesson-complete-dialog__title{align-items:center;gap:10px;display:flex}.lesson-complete-dialog__icon{color:var(--accent);font-size:1.75rem}.lesson-complete-dialog__loading{justify-content:center;padding:24px 0;display:flex}.lesson-complete-dialog__next{border:1px solid var(--border);background:var(--social-bg);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.lesson-complete-dialog__next-heading{margin:0}
