pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#a626a4}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#50a14f}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#986801}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--color-soft);color:var(--color-ink);line-height:var(--leading-normal)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:var(--border-width) solid transparent;border-radius:var(--radius-pill);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-medium);line-height:var(--leading-tight);cursor:pointer;background:0 0;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-ground)}.btn-primary:hover:not(:disabled){background:var(--color-ink)}.btn-secondary{background:var(--color-ground);border-color:var(--color-ink)}.btn-secondary:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.btn-ghost{color:var(--color-accent)}.btn-ghost:hover:not(:disabled){background:var(--color-ground);border-color:var(--color-line)}.btn-danger{background:var(--color-ground);border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-soft)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.btn-block{width:100%}.field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field__label{color:var(--color-ink);font-size:var(--text-sm);font-weight:var(--weight-medium)}.input{width:100%;padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-ground);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal)}.input::placeholder{color:var(--color-muted)}.input:hover{border-color:var(--color-muted)}.input:focus{border-color:var(--color-accent)}.input[aria-invalid=true]{border-color:var(--color-danger)}textarea.input{min-height:calc(var(--space-9) + var(--space-6));resize:vertical}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-small);font-size:var(--text-sm)}.notice-danger{background:var(--color-danger-soft);color:var(--color-danger)}.notice-success{background:var(--color-success-soft);color:var(--color-success-on-light)}.notice-warning{background:var(--color-warning-soft);color:var(--color-warning)}.card{padding:var(--space-6);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-card);background:var(--color-ground)}.pill{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-soft);color:var(--color-ink);font-size:var(--text-sm);font-weight:var(--weight-medium);align-items:center;display:inline-flex}.card-link{position:relative}.card-link:hover{border-color:var(--color-accent)}.card-link__target{color:inherit;text-decoration:none}.card-link__target:after{content:"";border-radius:var(--card-link-radius,var(--radius-card));position:absolute;inset:0}.card-link .btn{z-index:1;position:relative}.card-link__target:focus-visible{outline:none}.card-link__target:focus-visible:after{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.card-grid{grid-template-columns:repeat(auto-fill, minmax(min(var(--card-min-width), 100%), 1fr));gap:var(--space-4);display:grid}.page{width:100%;max-width:var(--container-width);padding:var(--space-6) var(--space-5) var(--space-8);margin:0 auto}.page--narrow{max-width:calc(var(--reading-width) + 2 * var(--space-5))}.page--form{max-width:calc(var(--form-width) + 2 * var(--space-5));padding-top:var(--space-8)}.page__back{margin-bottom:var(--space-4);margin-left:calc(-1 * var(--space-4))}.page__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:var(--border-width) solid var(--color-line);flex-wrap:wrap;display:flex}.page__title{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);overflow-wrap:anywhere;margin:0}.page__lead{margin:var(--space-2) 0 0;color:var(--color-muted)}.page-status{color:var(--color-muted)}.section+.section{margin-top:var(--space-7)}.section__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.section__title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:var(--leading-tight);margin:0}.inline-form{gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-4);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-ground);flex-wrap:wrap;display:flex}.inline-form>.input{flex:1 1 var(--card-min-width)}.inline-form>.notice{flex-basis:100%}.muted{color:var(--color-muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn:focus-visible,.input:focus-visible,.auth-card a:focus-visible,.app-header a:focus-visible,.user-badge button:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}@media (width<=40rem){.card{padding:var(--space-5)}.page{padding:var(--space-5) var(--space-4) var(--space-7)}.page--form{padding-top:var(--space-6)}.page__title{font-size:var(--text-xl)}}.user-badge{flex-shrink:0;position:relative}.user-badge__pill{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-ground);font-family:var(--font-body);cursor:pointer;display:flex}.user-badge__pill:hover{border-color:var(--color-accent)}.user-badge__avatar{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-ground);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-bold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-badge__text{line-height:var(--leading-tight);flex-direction:column;align-items:flex-start;display:flex}.user-badge__name{color:var(--color-ink);font-size:var(--text-sm);font-weight:var(--weight-medium)}.user-badge__role,.user-badge__caret{color:var(--color-muted);font-size:var(--text-sm)}.user-badge__menu{top:calc(100% + var(--space-2));z-index:var(--z-badge);min-width:calc(var(--space-9) * 2);padding:var(--space-1);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-ground);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;right:0}.user-badge__item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-small);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);text-align:left;cursor:pointer;background:0 0;border:0}.user-badge__item:hover{background:var(--color-soft)}.user-badge__item--danger{color:var(--color-danger)}.user-badge__item--danger:hover{background:var(--color-danger-soft)}@media (width<=30rem){.user-badge__text{display:none}}.unread-badge{min-width:calc(var(--space-4) + var(--space-1));height:calc(var(--space-4) + var(--space-1));padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--color-danger);color:var(--color-ground);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-bold);flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.question-chip{margin-right:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--color-soft);color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-bold);display:inline-block}.notify-bell{flex-shrink:0}.notify-bell__button{width:calc(var(--space-6) + var(--space-2));height:calc(var(--space-6) + var(--space-2));border:var(--border-width) solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-ground);color:var(--color-ink);cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.notify-bell__button:hover{border-color:var(--color-accent);color:var(--color-accent)}.notify-bell__button:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.notify-bell__icon{width:var(--space-5);height:var(--space-5);fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.notify-bell__badge{top:calc(var(--space-1) * -1);right:calc(var(--space-1) * -1);position:absolute}.notify-menu{top:calc(100% + var(--space-2));z-index:var(--z-badge);width:min(calc(var(--panel-width) - var(--space-5)), calc(100vw - 2 * var(--space-4)));max-height:min(70vh, calc(var(--space-9) * 4));padding:var(--space-2);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-ground);box-shadow:var(--shadow-md);position:absolute;right:0;overflow-y:auto}.notify-menu__title{margin:var(--space-1) var(--space-2) var(--space-2);color:var(--color-muted);font-size:var(--text-sm);font-weight:var(--weight-bold)}.notify-menu__empty{margin:var(--space-2);color:var(--color-muted);font-size:var(--text-sm)}.notify-menu__list{margin:0;padding:0;list-style:none}.notify-item{gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-small);color:var(--color-ink);flex-direction:column;text-decoration:none;display:flex}.notify-item:hover{background:var(--color-soft)}.notify-item:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-width) * -1)}.notify-item__top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.notify-item__who{min-width:0;font-size:var(--text-sm);font-weight:var(--weight-bold);overflow-wrap:anywhere}.notify-item__preview{color:var(--color-ink);font-size:var(--text-sm);overflow-wrap:anywhere}.notify-item__time{color:var(--color-muted);font-size:var(--text-sm)}.chat-fab .unread-badge{top:calc(var(--space-1) * -1);right:calc(var(--space-1) * -1);box-shadow:0 0 0 calc(var(--border-width) * 2) var(--color-ground);position:absolute}.btn .unread-badge{margin-left:var(--space-1)}.inbox-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.inbox-item{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-ground);color:var(--color-ink);text-decoration:none;display:flex}.inbox-item:hover{border-color:var(--color-accent)}.inbox-item:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.inbox-item__main{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.inbox-item__who{font-weight:var(--weight-bold);overflow-wrap:anywhere}.inbox-item__preview,.inbox-item__time{color:var(--color-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.lesson-progress__labels{justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap;display:flex}.lesson-progress__count{text-overflow:ellipsis;flex:0 1000 auto;min-width:0;overflow:hidden}.lesson-progress__emoji{flex-shrink:0}.lesson-progress__percent{text-overflow:ellipsis;flex:0 auto;min-width:0;margin-left:auto;overflow:hidden}.lesson-progress__track{height:var(--space-2);border-radius:var(--radius-pill);background:var(--color-line);overflow:hidden}.lesson-progress__fill{border-radius:var(--radius-pill);background:var(--color-accent);height:100%;transition:width .3s}.lesson-progress--complete .lesson-progress__fill{background:var(--color-success-on-light)}.lesson-progress--complete .lesson-progress__percent{color:var(--color-success-on-light);font-weight:var(--weight-bold)}.lessons-icon{width:var(--space-5);height:var(--space-5);fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.lessons-panel-open,.lessons-panel-open body{overflow:hidden}.lessons-panel-layer{z-index:calc(var(--z-badge) + 1);position:fixed;inset:0}.lessons-panel__backdrop{background:color-mix(in srgb, var(--color-ink) 50%, transparent);animation:.2s lessons-panel-fade;position:absolute;inset:0}.lessons-panel{width:min(var(--panel-width), calc(100% - var(--space-7)));overscroll-behavior:contain;border-right:var(--border-width) solid var(--color-line);background:var(--color-ground);box-shadow:var(--shadow-lg);flex-direction:column;animation:.2s lessons-panel-slide;display:flex;position:absolute;top:0;bottom:0;left:0;overflow-y:auto}@keyframes lessons-panel-slide{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes lessons-panel-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.lessons-panel,.lessons-panel__backdrop{animation:none}}.lessons-panel__head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-4) var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--color-line);display:flex}.lessons-panel__heading{min-width:0}.lessons-panel__back{margin-bottom:var(--space-2);color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;display:inline-block}.lessons-panel__back:hover{text-underline-offset:var(--space-1);text-decoration:underline}.lessons-panel__back:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.lessons-panel__title{font-family:var(--font-body);font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:var(--leading-tight);margin:0}.lessons-panel__course{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.lessons-panel__close{padding:var(--space-2);flex-shrink:0}.lessons-panel__status{padding:var(--space-5);color:var(--color-muted);font-size:var(--text-sm)}.lessons-panel__status .notice{margin:0 0 var(--space-3)}.lessons-panel__list{padding:var(--space-2) 0;margin:0;list-style:none}.lessons-panel__link{grid-template-columns:var(--space-6) 1fr auto;align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-5);color:var(--color-ink);text-decoration:none;display:grid}.lessons-panel__link:hover{color:var(--color-accent)}.lessons-panel__link:hover .lessons-panel__name{text-underline-offset:var(--space-1);text-decoration:underline}.lessons-panel__link:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-width) * -1)}.lessons-panel__link--current{background:var(--color-soft);box-shadow:inset var(--space-1) 0 0 var(--color-accent);font-weight:var(--weight-bold)}.lessons-panel__num{color:var(--color-accent);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-medium);text-align:right}.lessons-panel__name{overflow-wrap:anywhere;min-width:0}.lessons-panel__count{color:var(--color-muted);font-size:var(--text-sm);font-weight:var(--weight-regular);white-space:nowrap}.lessons-panel__count--solved{color:var(--color-success-on-light);font-weight:var(--weight-bold)}.app-header{z-index:var(--z-header);border-bottom:var(--border-width) solid var(--color-line);background:var(--color-ground);position:sticky;top:0}.app-header__inner{align-items:center;gap:var(--space-5);max-width:var(--container-width);padding:var(--space-3) var(--space-5);margin:0 auto;display:flex}.app-header__brand{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-logo);text-transform:uppercase;line-height:var(--leading-tight);color:var(--color-ink);white-space:nowrap;text-decoration:none}.app-header__nav{flex:auto;min-width:0}.app-header__link{color:var(--color-ink);font-weight:var(--weight-medium);text-decoration:none}.app-header__link:hover{color:var(--color-accent)}.app-header__inner--lesson{grid-template-columns:minmax(max-content, 1fr) minmax(0, var(--reading-width)) minmax(max-content, 1fr);max-width:none;display:grid}.app-header__inner--lesson .app-header__end{justify-self:end}.app-header__end{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex;position:relative}.app-header__lesson{align-items:center;gap:var(--space-3);min-width:0;display:flex}.app-header__lessons-btn{padding:var(--space-3);flex-shrink:0}.app-header__lesson-text{gap:var(--space-1);flex-direction:column;flex:auto;min-width:0;display:flex}.app-header__crumbs{min-width:0;line-height:var(--leading-tight);white-space:nowrap;margin:0;padding:0;list-style:none;display:flex}.app-header__crumb{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.app-header__crumb--course{max-width:45%}.app-header__crumb--lesson{color:var(--color-ink);font-weight:var(--weight-medium);display:flex;overflow:visible}.app-header__title-btn{min-width:0;color:inherit;font:inherit;text-align:start;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;padding:0;overflow:hidden}.app-header__title-btn:hover{color:var(--color-accent)}.app-header__title-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.app-header__crumb-link{color:var(--color-muted);font-weight:var(--weight-medium);text-underline-offset:var(--space-1);text-decoration:underline}.app-header__crumb-link:hover{color:var(--color-accent)}.app-header__crumb-link:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.app-header__crumb-sep{margin:0 var(--space-2);color:var(--color-muted);font-weight:var(--weight-regular);flex-shrink:0}.app-header__next{color:var(--color-success-on-light);text-decoration:none}.app-header__next:hover,.app-header__next:focus-visible{text-decoration:underline}.app-header__next:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-width) * -1)}.app-header__lesson .lesson-progress__labels{margin-bottom:var(--space-1);line-height:var(--leading-tight)}.app-header__lesson .lesson-progress__track{height:var(--space-1)}@media (width<=40rem){.app-header__inner{gap:var(--space-4);padding:var(--space-2) var(--space-4)}.app-header__brand{font-size:var(--text-base)}.app-header__crumb--course,.app-header__crumb-sep{display:none}.app-header__inner--lesson{gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto}.app-header__inner--lesson .app-header__brand{display:none}.app-header__lesson{gap:var(--space-2)}.app-header__lessons-btn{padding:var(--space-2)}}@media (width<=30rem){.app-header__lesson .lesson-progress__verb,.app-header__lesson .lesson-progress--complete .lesson-progress__count{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.lesson-block{margin-bottom:var(--space-5);padding:var(--space-6);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-card);background:var(--color-ground)}.lesson-block--solved{border-color:var(--color-success-on-light);box-shadow:inset 0 0 0 var(--border-width) var(--color-success-on-light)}.lesson-block__head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.lesson-block__badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-soft);color:var(--color-accent);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-medium);align-items:center;display:inline-flex}.lesson-block__solved{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-success-soft);color:var(--color-success-on-light);font-size:var(--text-sm);font-weight:var(--weight-bold);align-items:center;display:inline-flex}.lesson-block__prompt{margin-bottom:var(--space-4)}.lesson-block__label{margin-bottom:var(--space-2);color:var(--color-muted);font-size:var(--text-sm)}.lesson-block__actions{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);display:flex}.lesson-block__actions-start,.lesson-block__actions-end{align-items:center;gap:var(--space-3);display:flex}.lesson-block__actions-end{margin-left:auto}.lesson-block__actions .lesson-block__text-btn{margin-top:0}@media (width<=30rem){.lesson-block__actions,.lesson-block__actions-end{flex-direction:column-reverse;align-items:stretch}.lesson-block__actions-end{margin-left:0}.lesson-block__actions-start{align-self:flex-start}}.lesson-block__ask{color:var(--color-accent);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);text-underline-offset:var(--space-1);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;text-decoration:underline}.lesson-block__ask:hover{text-decoration-thickness:calc(var(--border-width) * 2)}.lesson-block__ask:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.lesson-block__discuss{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-ground);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;cursor:pointer;margin-left:auto;display:inline-flex}.lesson-block__ask~.lesson-block__discuss{margin-left:var(--space-2)}.lesson-block__discuss:hover{border-color:var(--color-accent);color:var(--color-accent)}.lesson-block__discuss--open{border-color:var(--color-accent);background:var(--color-soft);color:var(--color-accent)}.lesson-block__discuss .unread-badge{margin-left:var(--space-1)}.lesson-block__discuss:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.lesson-block__text-btn{margin-top:var(--space-4);color:var(--color-muted);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline;display:block}.lesson-block__text-btn:hover{color:var(--color-accent)}.verdict{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:var(--border-width) solid transparent;border-radius:var(--radius-small);font-weight:var(--weight-bold)}.verdict--success{border-color:var(--color-success-on-light);background:var(--color-success-soft);color:var(--color-success-on-light)}.verdict--danger{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger)}.verdict__detail{font-weight:var(--weight-regular)}.check-error{margin-top:var(--space-3);color:var(--color-danger)}.text-content{overflow-wrap:break-word}.text-content p{margin:0 0 var(--space-3)}.text-content h1,.text-content h2,.text-content h3,.text-content h4{margin:var(--space-5) 0 var(--space-2);font-family:var(--font-body);font-weight:var(--weight-bold);line-height:var(--leading-tight)}.text-content>:first-child{margin-top:0}.text-content h1{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-2xl)}.text-content h2{font-size:var(--text-xl)}.text-content h3{font-size:var(--text-lg)}.text-content h4{font-size:var(--text-base)}.text-content a{color:var(--color-accent)}.text-content ul,.text-content ol{margin:var(--space-2) 0 var(--space-3);padding-left:var(--space-5)}.text-content li,.text-content li>ul,.text-content li>ol{margin:var(--space-1) 0}.text-content blockquote{margin:var(--space-3) 0;padding:var(--space-2) var(--space-4);border-left:calc(var(--border-width) * 3) solid var(--color-accent);border-radius:0 var(--radius-small) var(--radius-small) 0;background:var(--color-soft);color:var(--color-muted)}.text-content blockquote>:last-child{margin-bottom:0}.content-figure{vertical-align:middle;max-width:100%;display:inline-block;overflow-x:auto}.content-figure--more{-webkit-mask-image:linear-gradient(to right, var(--color-ink) calc(100% - var(--space-7)), transparent);-webkit-mask-image:linear-gradient(to right, var(--color-ink) calc(100% - var(--space-7)), transparent);mask-image:linear-gradient(to right, var(--color-ink) calc(100% - var(--space-7)), transparent)}.text-content img{max-width:100%;height:auto;margin:var(--space-2) 0;border-radius:var(--radius-small)}.text-content code,.quiz-option code{border-radius:var(--space-1);background:var(--color-soft);color:var(--color-ink);font-family:var(--font-code);padding:.1em .4em;font-size:.9em}.code-sample,.text-content pre{margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);white-space:pre-wrap;overflow-wrap:normal;word-break:normal;border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-soft);color:var(--color-ink);font-family:var(--font-code);font-size:var(--text-sm);line-height:var(--leading-normal);overflow-x:auto}.code-sample code,.text-content pre code{font-size:inherit;background:0 0;padding:0}.code-sample code.hljs,.text-content .hljs{background:0 0;padding:0}.quiz-question{margin-bottom:var(--space-4);font-weight:var(--weight-bold)}.quiz-options{gap:var(--space-2);flex-direction:column;display:flex}.quiz-option{padding:var(--space-3) var(--space-4);border:calc(var(--border-width) * 2) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-ground);color:var(--color-ink);font-family:var(--font-code);font-size:var(--text-sm);text-align:left;cursor:pointer}.quiz-option:hover{border-color:var(--color-accent)}.quiz-option--selected{border-color:var(--color-accent);background:var(--color-soft);font-weight:var(--weight-bold)}.quiz-option--correct{border-color:var(--color-success-on-light);background:var(--color-success-soft);font-weight:var(--weight-bold)}.quiz-option--wrong{border-color:var(--color-danger);background:var(--color-danger-soft);font-weight:var(--weight-bold)}.quiz-options--locked .quiz-option{cursor:default}.quiz-options--locked .quiz-option:hover:not(.quiz-option--correct){border-color:var(--color-line)}.fill-template{color:var(--color-ink);font-family:var(--font-code);font-size:var(--text-sm);white-space:pre-wrap;word-break:break-word;line-height:2.2}.fill-blank{width:calc((var(--fill-chars,5) + 1) * 1ch + 2 * var(--space-3) + 4 * var(--border-width));max-width:100%;padding:var(--space-1) var(--space-3);border:calc(var(--border-width) * 2) solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-soft);color:var(--color-ink);font-family:var(--font-code);font-size:var(--text-sm);vertical-align:middle;outline:none}.fill-blank:focus{border-color:var(--color-accent);background:var(--color-ground);box-shadow:none;outline:none}.fill-blank--correct{border-color:var(--color-success-on-light);background:var(--color-success-soft)}.fill-blank--wrong{border-color:var(--color-danger);background:var(--color-danger-soft)}.fill-blank:disabled{color:var(--color-ink)}.code-editor-bar{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.code-editor-bar .lesson-block__label{margin-bottom:0}.version-select{position:relative}.version-select__btn{justify-content:space-between;align-items:center;gap:var(--space-2);min-width:calc(var(--space-9) + var(--space-6));padding:var(--space-1) var(--space-3);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-ground);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;display:inline-flex}.version-select__btn:hover{border-color:var(--color-accent)}.version-select__caret{color:var(--color-muted);font-size:var(--text-sm)}.version-select__menu{top:calc(100% + var(--space-1));z-index:10;min-width:100%;padding:var(--space-1);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-ground);box-shadow:var(--shadow-md);position:absolute;right:0}.version-select__item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-small);color:var(--color-ink);font-size:var(--text-sm);cursor:pointer}.version-select__item:hover{background:var(--color-soft)}.version-select__item--active{background:var(--color-soft);color:var(--color-accent);font-weight:var(--weight-bold)}.code-editor{margin-bottom:var(--space-4);border-radius:var(--radius-small);overflow:hidden}.code-input{min-height:calc(var(--space-8) + var(--space-2));margin-bottom:var(--space-3);font-family:var(--font-code);font-size:var(--text-sm);max-height:calc(15 * var(--text-sm) * var(--leading-normal) + 2 * var(--space-3) + 2 * var(--border-width))}.input.code-input{resize:none}.input.code-input:focus,.input.code-input:focus-visible{border-color:var(--color-accent);box-shadow:none;outline:none}.run-output{margin-bottom:var(--space-4);border-radius:var(--radius-small);background:var(--color-ink);overflow:hidden}.run-output__label{padding:var(--space-2) var(--space-4);background:var(--color-code-bar);color:var(--color-code-muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.run-output__text{padding:var(--space-3) var(--space-4);color:var(--color-code-text);font-family:var(--font-code);font-size:var(--text-sm);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.run-output--error{border:var(--border-width) solid var(--color-danger);background:var(--color-danger-soft)}.run-output--error .run-output__label{color:var(--color-danger);font-weight:var(--weight-bold);background:0 0}.run-output--error .run-output__text{color:var(--color-danger);padding-top:0}.code-actions,.verdict--block{margin:0 0 var(--space-4)}.verdict__title{font-size:var(--text-lg)}.verdict__line{margin-top:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-regular)}.test-fail{margin-bottom:var(--space-4);border:var(--border-width) solid var(--color-danger);border-radius:var(--radius-small);overflow:hidden}.test-fail__head{padding:var(--space-3) var(--space-4);background:var(--color-danger-soft);color:var(--color-danger);font-weight:var(--weight-bold)}.test-fail__count{margin-left:var(--space-2);color:var(--color-muted);font-size:var(--text-sm);font-weight:var(--weight-regular)}.test-fail__body{gap:var(--space-4);padding:var(--space-4);background:var(--color-ground);flex-wrap:wrap;display:flex}.io-box{flex:1 1 calc(var(--space-9) + var(--space-8));min-width:0}.io-box__label{margin-bottom:var(--space-1);color:var(--color-muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.io-box__pre{padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-soft);color:var(--color-ink);font-family:var(--font-code);font-size:var(--text-sm);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.io-box__pre--actual{border-color:var(--color-danger);background:var(--color-danger-soft)}.test-fail__stderr{padding:var(--space-3) var(--space-4);background:var(--color-ground);color:var(--color-danger);font-family:var(--font-code);font-size:var(--text-sm);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.tests-section{margin-bottom:var(--space-5)}.tests-toggle{align-items:center;gap:var(--space-2);margin-top:var(--space-2);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-bold);cursor:pointer;background:0 0;border:0;padding:0;display:flex}.tests-toggle:hover{color:var(--color-accent)}.tests-table-wrap{margin-top:var(--space-3);overflow-x:auto}.tests-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.tests-table th,.tests-table td{padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--color-line);text-align:left}.tests-table th{background:var(--color-soft);color:var(--color-ink);font-weight:var(--weight-bold)}.tests-table td{font-family:var(--font-code);vertical-align:top}.tests-table__io{white-space:pre-wrap;overflow-wrap:break-word}.tests-table tbody tr:nth-child(2n){background:var(--color-soft)}.tests-table__row--selected .tests-table__check{box-shadow:inset var(--space-1) 0 0 var(--color-accent)}.tests-table__check{width:var(--space-7);text-align:center}.tests-table__check input{accent-color:var(--color-accent);cursor:pointer}.lesson-block__note{margin-top:var(--space-2);color:var(--color-muted);font-size:var(--text-sm)}.quiz-option:focus-visible,.lesson-block__text-btn:focus-visible,.version-select__btn:focus-visible,.tests-toggle:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}@media (width<=40rem){.lesson-block{padding:var(--space-5) var(--space-4)}.text-content .content-figure img{max-width:none}}.question-modal-open,.question-modal-open body{overflow:hidden}.question-modal-layer{z-index:calc(var(--z-badge) + 1);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.question-modal__backdrop{background:color-mix(in srgb, var(--color-ink) 50%, transparent);position:absolute;inset:0}.question-modal{width:min(100%, var(--reading-width));max-height:calc(100dvh - 2 * var(--space-4));border-radius:var(--radius-card);background:var(--color-ground);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:relative}.question-modal__head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3);border-bottom:var(--border-width) solid var(--color-line);display:flex}.question-modal__title{font-family:var(--font-body);font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:var(--leading-tight);margin:0}.question-modal__where{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.question-modal__close{padding:var(--space-2);flex-shrink:0}.question-modal__scroll{min-height:0;padding:var(--space-4) var(--space-5);flex:auto;overflow-y:auto}.question-modal__hint{margin:0 0 var(--space-3);color:var(--color-muted);font-size:var(--text-sm)}.question-modal__form{padding:var(--space-4) var(--space-5) var(--space-5);border-top:var(--border-width) solid var(--color-line)}.question-modal__label{margin-bottom:var(--space-2);font-weight:var(--weight-bold);display:block}.question-modal__text{resize:vertical;width:100%;font-family:var(--font-body)}.question-modal__error{margin:var(--space-2) 0 0;color:var(--color-danger);font-size:var(--text-sm)}.question-modal__actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-3);display:flex}@media (width<=30rem){.question-modal-layer{padding:var(--space-2)}.question-modal__actions{flex-direction:column-reverse}}.question-context{gap:var(--space-3);flex-direction:column;display:flex}.question-context__part{min-width:0}.question-context__title,.question-context__part>summary{margin:0 0 var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-ink)}.question-context__part>summary{cursor:pointer}.question-context__part>summary:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.question-context__body{min-width:0;font-size:var(--text-sm)}.question-context__body>:last-child{margin-bottom:0}.question-context__plain{margin:0 0 var(--space-2);white-space:pre-wrap;overflow-wrap:anywhere}.question-context__label{margin:var(--space-2) 0 var(--space-1);color:var(--color-muted)}.question-context__options,.question-context__blanks{margin:var(--space-2) 0;padding-left:var(--space-5)}.question-context__template{margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-soft);font-family:var(--font-code);white-space:pre;overflow-x:auto}.question-context__choice{padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);overflow-wrap:anywhere}.question-context__blanks code{font-family:var(--font-code);overflow-wrap:anywhere}.question-context__muted{color:var(--color-muted);margin:0}.question-context__verdict{margin:0 0 var(--space-2);color:var(--color-danger);font-weight:var(--weight-bold)}.question-context__verdict--ok{color:var(--color-success-on-light)}.question-code{max-height:calc(16 * var(--text-sm) * var(--leading-normal));border-radius:var(--radius-small);font-size:var(--text-sm);overflow:auto}.question-code+.question-code{margin-top:var(--space-2)}.question-card{gap:var(--space-2);min-width:0;padding:var(--space-3);border:var(--border-width) solid var(--color-line);border-left:calc(var(--border-width) * 3) solid var(--color-accent);border-radius:var(--radius-small);background:var(--color-ground);color:var(--color-ink);text-align:left;flex-direction:column;display:flex}.question-card p{margin:0}.question-card__kicker{color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-bold)}.question-card__who{font-weight:var(--weight-bold)}.question-card__where{color:var(--color-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.question-card__text{white-space:pre-wrap;overflow-wrap:anywhere}.question-card__open{color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-bold);align-self:flex-start}.question-card__open:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.chat-icon{width:var(--space-5);height:var(--space-5);fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chat-fab{--chat-fab-size:calc(var(--space-7) + var(--space-2));right:var(--space-5);bottom:var(--space-5);z-index:var(--z-floating);width:var(--chat-fab-size);height:var(--chat-fab-size);border:var(--border-width) solid transparent;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-ground);box-shadow:var(--shadow-md);cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex;position:fixed}.chat-fab:hover{background:var(--color-ink)}.chat-fab .chat-icon{width:var(--space-6);height:var(--space-6)}.chat-panel{border:var(--border-width) solid var(--color-line);background:var(--color-ground);color:var(--color-ink);flex-direction:column;display:flex;overflow:hidden}.chat-panel--floating{--chat-bottom:calc(var(--space-5) + var(--space-7) + var(--space-2) + var(--space-3));--chat-header-clearance:calc(var(--space-8) + var(--space-3));right:var(--space-5);bottom:var(--chat-bottom);z-index:var(--z-chat);width:min(24rem, calc(100vw - 2 * var(--space-4)));height:min(32rem, calc(100vh - var(--chat-bottom) - var(--chat-header-clearance)));height:min(32rem, calc(var(--chat-viewport,100dvh) - var(--chat-bottom) - var(--chat-header-clearance)));border-radius:var(--radius-card);box-shadow:var(--shadow-lg);position:fixed}.chat-panel--inline{margin-top:var(--space-4);border-radius:var(--radius-small)}.chat-panel:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.chat-panel__header{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-line);display:flex}.chat-panel__heading{flex:auto;min-width:0}.chat-panel__title{font-family:var(--font-heading);font-size:var(--text-base);font-weight:var(--weight-medium);line-height:var(--leading-tight);overflow-wrap:anywhere;margin:0}.chat-panel__subtitle{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-tight);overflow-wrap:anywhere}.chat-panel__close{width:calc(var(--space-7) - var(--space-1));height:calc(var(--space-7) - var(--space-1));border:var(--border-width) solid transparent;border-radius:var(--radius-pill);color:var(--color-muted);cursor:pointer;background:0 0;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.chat-panel__close:hover{border-color:var(--color-line);color:var(--color-ink)}.chat-panel__log{overscroll-behavior:contain;min-height:0;padding:var(--space-4);background:var(--color-soft);flex:auto;overflow-y:auto}.chat-panel--inline .chat-panel__log{min-height:calc(var(--space-9) + var(--space-7));max-height:calc(2 * var(--space-9) + var(--space-8));flex:none}.chat-panel__messages{gap:var(--space-3);flex-direction:column;list-style:none;display:flex}.chat-message{max-width:85%;padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);border-bottom-left-radius:var(--space-1);background:var(--color-ground);color:var(--color-ink);align-self:flex-start}.chat-message--own{border-color:var(--color-accent);border-radius:var(--radius-small);border-bottom-right-radius:var(--space-1);background:var(--color-accent);color:var(--color-ground);align-self:flex-end}.chat-message__meta{gap:0 var(--space-2);margin:0 0 var(--space-1);color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-tight);flex-wrap:wrap;display:flex}.chat-message--own .chat-message__meta{color:var(--color-ground);justify-content:flex-end}.chat-message__author{font-weight:var(--weight-medium);overflow-wrap:anywhere}.chat-message__text{font-size:var(--text-base);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.chat-panel__empty{text-align:center;flex-direction:column;justify-content:center;min-height:100%;display:flex}.chat-panel__empty-title{font-weight:var(--weight-medium);margin:0}.chat-panel__empty-hint{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:var(--text-sm)}.chat-panel__status:empty{display:none}.chat-panel__status{padding:var(--space-2) var(--space-4) 0}.chat-panel__note{color:var(--color-muted);font-size:var(--text-sm);margin:0}.chat-panel__note--error{padding:var(--space-2) var(--space-3);border-radius:var(--radius-small);background:var(--color-danger-soft);color:var(--color-danger)}.chat-panel__status>.chat-panel__note+.chat-panel__note{margin-top:var(--space-2)}.chat-panel__log>.chat-panel__note--error{margin-bottom:var(--space-3)}.chat-panel__form{align-items:center;gap:var(--space-2);padding:var(--space-3);display:flex}.chat-panel__status:empty+.chat-panel__form{border-top:var(--border-width) solid var(--color-line)}.chat-panel__input{min-width:0;padding:var(--space-2) var(--space-3);flex:auto}.chat-panel__counter{color:var(--color-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex:none}.chat-panel__counter--over{color:var(--color-danger);font-weight:var(--weight-medium)}.chat-panel__send{width:calc(var(--space-7) - var(--space-1));height:calc(var(--space-7) - var(--space-1));flex:none;padding:0}.chat-fab:focus-visible,.chat-panel__close:focus-visible,.chat-panel__log:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.chat-panel__log:focus-visible{outline-offset:calc(-1 * var(--focus-ring-width))}.chat-panel--floating.chat-panel--keyboard{bottom:calc(var(--chat-keyboard) + var(--space-2));height:calc(var(--chat-viewport) - var(--chat-header-clearance) - var(--space-2))}@media (width<=40rem){.chat-panel--floating{left:var(--space-4);right:var(--space-4);width:auto}.chat-message{max-width:90%}}.discussion-panel{top:var(--discussion-top,0px);z-index:var(--z-chat);width:var(--discussion-width);border-left:var(--border-width) solid var(--color-line);background:var(--color-ground);color:var(--color-ink);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;bottom:0;right:0}.discussion-panel:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(-1 * var(--focus-ring-width))}.discussion-panel--keyboard{bottom:var(--chat-keyboard)}.discussion-panel__header{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-line);display:flex}.discussion-panel__heading{flex:auto;min-width:0}.discussion-panel__title{font-family:var(--font-heading);font-size:var(--text-base);font-weight:var(--weight-medium);line-height:var(--leading-tight);margin:0}.discussion-panel__subtitle{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-tight)}.discussion-panel__body{overscroll-behavior:contain;min-height:0;padding:var(--space-4);flex:auto;overflow-y:auto}.discussion-panel__note{margin:var(--space-4) 0;color:var(--color-muted);font-size:var(--text-sm)}.discussion-form{gap:var(--space-2);flex-direction:column;display:flex}.discussion-form__label{font-size:var(--text-sm);font-weight:var(--weight-medium)}.discussion-form__text{width:100%;font-size:var(--text-base);resize:vertical}.discussion-form__error{color:var(--color-danger);font-size:var(--text-sm);margin:0}.discussion-form__actions{justify-content:flex-end;gap:var(--space-2);display:flex}.discussion-list{margin:var(--space-5) 0 0;padding:0;list-style:none}.discussion-thread{padding:var(--space-4) 0;border-top:var(--border-width) solid var(--color-line)}.discussion-thread--pinned{margin:0 calc(-1 * var(--space-4));padding-right:var(--space-4);padding-left:var(--space-4);background:var(--color-soft)}.discussion-thread__chips{gap:var(--space-2);margin:0 0 var(--space-2);display:flex}.discussion-chip{padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--color-soft);color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-bold);align-items:center;display:inline-flex}.discussion-thread--pinned .discussion-chip{background:var(--color-ground)}.discussion-chip--resolved{background:var(--color-success-soft);color:var(--color-success-on-light)}.discussion-thread__summary{gap:var(--space-1);width:100%;color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;padding:0;display:flex}.discussion-thread__summary-text{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.discussion-thread__summary-more{color:var(--color-muted);font-size:var(--text-sm)}.discussion-thread__summary:hover .discussion-thread__summary-more{color:var(--color-accent);text-decoration:underline}.discussion-comments{margin:0;padding:0;list-style:none}.discussion-comment+.discussion-comment{margin-top:var(--space-3);padding-left:var(--space-4);border-left:calc(var(--border-width) * 2) solid var(--color-line)}.discussion-comment__meta{align-items:center;gap:var(--space-2);margin:0 0 var(--space-1);font-size:var(--text-sm);line-height:var(--leading-tight);flex-wrap:wrap;display:flex}.discussion-comment__author{font-weight:var(--weight-medium);overflow-wrap:anywhere}.discussion-comment__time{color:var(--color-muted)}.discussion-comment__text{line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.discussion-comment__deleted{color:var(--color-muted);margin:0;font-style:italic}.discussion-comment__text--deleted{margin-top:var(--space-1);color:var(--color-muted);text-decoration:line-through}.discussion-thread__actions{gap:var(--space-2) var(--space-4);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.discussion-thread .discussion-form{margin-top:var(--space-3)}.discussion-link{color:var(--color-accent);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);text-underline-offset:var(--space-1);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.discussion-link:disabled{color:var(--color-muted);cursor:default}.discussion-link--danger{color:var(--color-danger)}.discussion-comment__actions,.discussion-comment__reports{align-items:center;gap:var(--space-1) var(--space-3);margin:var(--space-1) 0 0;flex-wrap:wrap;display:flex}.discussion-comment__note{color:var(--color-muted);font-size:var(--text-sm)}.discussion-comment--reported{margin-right:calc(-1 * var(--space-2));margin-left:calc(-1 * var(--space-2));padding:var(--space-2);border-radius:var(--radius-small);box-shadow:inset 0 0 0 var(--border-width) var(--color-danger)}.discussion-comment+.discussion-comment--reported{padding-left:calc(var(--space-4) + var(--space-2))}.discussion-chip--danger{background:var(--color-danger);color:var(--color-ground)}.discussion-chip--muted{background:var(--color-line);color:var(--color-ink)}.discussion-link--quiet{color:var(--color-muted);font-weight:var(--weight-regular)}.discussion-panel__body>.notice{margin:0}.discussion-link:focus-visible,.discussion-thread__summary:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}@media (width>=64rem){.discussion-panel{box-shadow:none}}@media (width<=40rem){.discussion-panel{width:auto;height:min(80dvh, calc(100dvh - var(--discussion-top,0px)));border-top:var(--border-width) solid var(--color-line);border-radius:var(--radius-card) var(--radius-card) 0 0;border-left:0;top:auto;left:0}.discussion-panel--keyboard{height:calc(var(--chat-viewport) - var(--discussion-top,0px))}}.report-item{padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-small);background:var(--color-ground)}.report-item__where{margin:0 0 var(--space-1);color:var(--color-muted);font-size:var(--text-sm)}.report-item__text{margin:var(--space-1) 0}.report-bans__title{margin:var(--space-6) 0 var(--space-3);font-family:var(--font-heading);font-size:var(--text-base);font-weight:var(--weight-medium)}.report-bans{margin:0;padding:0;list-style:none}.report-bans__item{align-items:baseline;gap:var(--space-1) var(--space-3);padding:var(--space-2) 0;border-top:var(--border-width) solid var(--color-line);flex-wrap:wrap;display:flex}.lesson-toolbar{justify-content:flex-end;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);display:flex}.lesson-toolbar__edit{white-space:nowrap}.lesson-header{margin-bottom:var(--space-5);padding:var(--space-6);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-card);background:var(--color-ground)}.lesson-header__title{font-family:var(--font-body);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);overflow-wrap:break-word;margin:0}.lesson-header .lesson-progress{margin-top:var(--space-5)}.lesson-nav{justify-content:flex-end;gap:var(--space-2);display:flex}.lesson-nav .btn{white-space:nowrap}.lesson-anchor{scroll-margin-top:calc(var(--space-9) + var(--space-2))}.lesson-anchor--flash>.lesson-block{outline:calc(var(--focus-ring-width) * 2) solid transparent;outline-offset:var(--focus-ring-offset);animation:2s ease-out lesson-anchor-flash}@keyframes lesson-anchor-flash{0%,50%{outline-color:var(--color-accent)}to{outline-color:#0000}}@media (prefers-reduced-motion:reduce){.lesson-anchor--flash>.lesson-block{outline-color:var(--color-accent);animation:none}}.lesson-anchor__tools{margin-bottom:var(--space-2);justify-content:flex-end;display:flex}.page.lesson-page{padding-bottom:calc(var(--space-9) + var(--space-4))}.next-task-btn{bottom:var(--space-5);left:var(--space-5);z-index:var(--z-floating);box-shadow:var(--shadow-md);position:fixed}.lesson-state__link{margin-top:var(--space-4)}.lesson-viewer{--discussion-width:min(26rem, calc(100vw - var(--space-7)))}.lesson-viewer--discussion .chat-fab{right:calc(var(--discussion-width) + var(--space-5))}@media (width>=64rem){.lesson-viewer--discussion{padding-right:var(--discussion-width)}}@media (width<=40rem){.lesson-header{padding:var(--space-5) var(--space-4)}.lesson-nav .btn{white-space:normal;width:100%}.lesson-header__title{font-size:var(--text-xl)}.next-task-btn{right:var(--space-5);bottom:calc(var(--space-5) + var(--space-1));width:var(--space-7);height:var(--space-7);font-size:var(--text-lg);padding:0;left:auto}.next-task-btn--beside-chat{right:calc(var(--space-5) + var(--space-7) + var(--space-2) + var(--space-3))}.next-task-btn__text,.lesson-viewer--discussion .chat-fab,.lesson-viewer--discussion .next-task-btn{display:none}}.auth-card__title{margin:0 0 var(--space-5);font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-tight)}.auth-card__error{margin-bottom:var(--space-4)}.auth-card__footer{margin:var(--space-5) 0 0;color:var(--color-muted);text-align:center}.auth-card a{color:var(--color-accent);font-weight:var(--weight-medium)}.auth-card__links{gap:var(--space-2) var(--space-5);margin:var(--space-5) 0 0;flex-wrap:wrap;display:flex}.dash-card{gap:var(--space-2);padding:var(--space-5);flex-direction:column;display:flex}.dash-card__title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:var(--leading-tight);overflow-wrap:anywhere;margin:0}.dash-card__meta{color:var(--color-muted);font-size:var(--text-sm);margin:0}.dash-card__desc{color:var(--color-muted);font-size:var(--text-sm);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.dash-card__actions{gap:var(--space-2);padding-top:var(--space-3);flex-wrap:wrap;margin-top:auto;display:flex}.dash-form>textarea.input{flex-basis:100%}.dash-notice{margin-bottom:var(--space-5)}.editable-title{align-items:center;gap:var(--space-2);min-width:0;display:flex}.editable-title>:first-child{min-width:0}.editable-title__pencil{z-index:1;padding-inline:var(--space-2);color:var(--color-muted);flex:none;position:relative}.editable-title__pencil:hover,.editable-title__pencil:focus-visible{color:var(--color-accent)}.editable-title--editing{align-items:stretch;gap:var(--space-2);width:min(100%, var(--form-width));flex-direction:column}.editable-title--editing .notice{margin:0}@media (width>=64rem){.course-layout--with-aside{align-items:start;gap:var(--space-7);grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid}.course-layout--with-aside>.section+.section{margin-top:0}}.lesson-list{gap:var(--space-3);flex-direction:column;display:flex}.lesson-row{--card-link-radius:var(--radius-small);align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-small);flex-wrap:wrap;display:flex}.lesson-row__text{flex:1 1 var(--card-min-width);min-width:0}.lesson-row__title{font-weight:var(--weight-medium);overflow-wrap:anywhere;display:block}.lesson-row__hint{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:var(--text-sm)}.lesson-row__actions,.student-row__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.lesson-row__move{min-width:var(--space-7);padding-inline:var(--space-3)}.student-row{padding:var(--space-4) var(--space-5);border-radius:var(--radius-small)}.student-row+.student-row{margin-top:var(--space-3)}.student-row__head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.student-row__name{font-weight:var(--weight-medium);overflow-wrap:anywhere}.rte{background:#fff;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden}.rte-toolbar{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;display:flex}.rte-sep{background:#e2e8f0;align-self:stretch;width:1px;margin:2px}.rte-content .ProseMirror{color:#1e293b;outline:none;min-height:160px;padding:14px 16px;font-size:15px;line-height:1.6}.rte-content .ProseMirror p{margin:0 0 10px}.rte-content .ProseMirror h1{margin:var(--space-3) 0 var(--space-3);font-family:var(--font-body);font-weight:var(--weight-bold);font-size:var(--text-2xl);line-height:var(--leading-tight);color:var(--color-ink);overflow-wrap:break-word}.rte-content .ProseMirror h2{color:#0c4b33;margin:8px 0 10px;font-size:22px}.rte-content .ProseMirror h3{color:#0c4b33;margin:8px 0;font-size:18px}.rte-content .ProseMirror ul,.rte-content .ProseMirror ol{margin:0 0 10px;padding-left:24px}.rte-content .ProseMirror blockquote{color:#64748b;border-left:3px solid #cbd5e1;margin:0 0 10px;padding-left:12px}.rte-content .ProseMirror code{background:#f0f0f0;border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,Consolas,monospace;font-size:.9em}.rte-content .ProseMirror pre{background:#f0f0f0;border-radius:6px;margin:0 0 10px;padding:10px 16px;font-family:JetBrains Mono,Consolas,monospace;font-size:14px;line-height:1.6;overflow-x:auto}.rte-content .ProseMirror pre code{background:0 0;padding:0}.rte-content .ProseMirror img{border-radius:6px;max-width:100%;height:auto;margin:4px 0}.rte-content .ProseMirror img.ProseMirror-selectednode{outline:2px solid #0c4b33}.rte-content .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#94a3b8;pointer-events:none;height:0}
