/* Screen-specific details read from the supplied pen.dev handoff. */
.dialog { font-size:15px; line-height:1.5; }
.dialog__heading { align-items:center; margin-bottom:22px; }
.dialog__heading h2 { line-height:1.25; font-weight:500; }
.dialog__close { width:24px; height:24px; border:0; background:transparent; }
.dialog__body { gap:22px; }
.dialog__footer { margin-top:24px; align-items:center; }
.dialog__delete { margin-right:auto; }
.dialog .field input:not([type=checkbox]):not([type=radio]),.dialog .field select { min-height:48px; padding:11px 16px; }
.dialog .field textarea { min-height:0; }
.dialog .field__hint { font-size:12px; line-height:1.5; }
.dialog .btn { font-size:14px; }
.dialog--access-grant,.dialog--access-grant-invite { width:min(580px,calc(100% - 32px)); }
.dialog--access-extend,.dialog--homework-rework { width:min(600px,calc(100% - 32px)); }
.dialog--access-close,.dialog--course-delete,.dialog--homework-accept,.dialog--attempts-reset { width:min(520px,calc(100% - 32px)); }
.dialog--module-edit { width:min(680px,calc(100% - 32px)); }
.dialog--test-import { width:min(820px,calc(100% - 32px)); }
.dialog--access-grant-bulk { width:min(780px,calc(100% - 32px)); }
.dialog--anchored { margin:110px auto auto; max-height:calc(100dvh - 142px); }
.dialog--module-edit,.dialog--test-import { margin-top:100px; max-height:calc(100dvh - 132px); }
.dialog--homework-rework,.dialog--homework-accept { margin-top:160px; max-height:calc(100dvh - 192px); }
.dialog--attempts-reset { margin-top:220px; max-height:calc(100dvh - 252px); }
.inline-notice { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; background:var(--surface); border-radius:var(--radius-md); font-size:13px; }
.inline-notice--info { background:var(--info-soft); color:var(--info-ink); }
.modal-warning { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--warning-ink); }
.access-found { display:flex; align-items:center; gap:8px; font-size:13px; }
.access-found>.icon { color:var(--success); }
.access-facts { margin:0; border:1px solid var(--line); border-radius:var(--radius-md); }
.access-facts>div { display:flex; padding:12px 16px; gap:20px; font-size:14px; border-bottom:1px solid var(--line); }
.access-facts>div:last-child { border-bottom:0; }
.access-facts dt { width:100px; flex-shrink:0; color:var(--ink-2); }
.access-facts dd { margin:0; font-weight:500; }
.duration-picker .quick-choices { gap:8px; }
.duration-picker .quick-choices span { font-size:13px; padding:9px 10px; min-height:40px; }
.duration-picker .access-summary { margin-top:8px; font-size:13px; gap:10px; }
.bulk-access-options { display:grid; grid-template-columns:1fr 1.15fr; align-items:start; gap:20px; }
.bulk-access-options .quick-choices { gap:6px; }
.bulk-access-options .quick-choices span { padding:10px 9px; }
.bulk-email-preview th:last-child,.bulk-email-preview td:last-child { text-align:right; }
.bulk-email-preview td { height:48px; }
.bulk-email-preview .chip { font-size:11px; }
.modal-task { display:flex; flex-direction:column; gap:16px; }
.modal-task>.toggle { font-size:14px; font-weight:500; }
.modal-task .access-summary { font-size:13px; margin:0; }
.modal-task .access-summary>span { flex:1; }
.modal-task .ql-editor { min-height:96px; font-size:14px; line-height:1.5; }
.modal-task .ql-container { min-height:96px; }
.modal-task .rich-editor--compact:not(.ql-container) { min-height:96px; }
.modal-task .ql-toolbar { padding:6px 8px; }
.modal-file-actions { gap:8px; font-size:12px; }
.modal-file-actions>.text-button { margin-left:auto; font-size:12px; }
.file-badge--small { width:28px; height:28px; border-radius:4px; font-size:9px; }
.import-step { display:flex; align-items:center; gap:12px; padding:14px 16px; background:var(--surface); border-radius:var(--radius-md); font-size:13px; }
.import-step>span { color:var(--ink-3); }
.import-step>p { flex:1; }
.import-step>a { display:inline-flex; align-items:center; gap:6px; font-weight:500; white-space:nowrap; }
.import-file { display:flex; align-items:center; gap:12px; padding:16px; border:1px solid var(--line); border-radius:var(--radius-md); }
.import-file>div { flex:1; }
.import-file strong { display:block; font-size:14px; font-weight:500; }
.import-file small { color:var(--ink-2); font-size:12px; }
.import-file>.text-button { font-size:12px; }
.import-table td { height:auto; padding:12px 14px; line-height:1.4; }
.import-table th { padding:12px 14px; }
.import-table th:first-child { width:65px; }
.import-table th:nth-child(2) { width:43%; }
.import-table .chip { font-size:11px; }
@media(max-height:760px) and (min-width:1024px) { .dialog--anchored { margin-top:32px; max-height:calc(100dvh - 64px); } }
@media(max-width:1023px) { .dialog--anchored { margin:32px auto auto; max-height:calc(100dvh - 64px); }.dialog--sheet { margin:auto 0 0; max-height:calc(100dvh - 56px); }.bulk-access-options{grid-template-columns:1fr}.import-step{flex-wrap:wrap}.import-step>a{width:100%} }
.cabinet-main:has(>.empty-state),.cabinet-main:has(>.locked-module) { min-height:100dvh; }
.cabinet-main>.empty-state { flex:1; justify-content:center; padding:64px 24px 100px; }
.cabinet-main>.empty-state>.icon { color:var(--ink); }
.cabinet-main>.empty-state>h2 { font-size:28px; }
.cabinet-main>.empty-state>p { font-size:14px; line-height:1.6; max-width:480px; }
.locked-module { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; padding:64px 24px; text-align:center; }
.locked-module h1 { font-size:28px; }.locked-module>p { max-width:560px; color:var(--ink-2); font-size:15px; }
.locked-requirements { border:1px solid var(--line); border-radius:var(--radius-md); width:560px; max-width:100%; overflow:hidden; margin:4px 0; }
.locked-requirements>a { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; border-bottom:1px solid var(--line); font-size:14px; text-align:left; }
.locked-requirements>a:last-child { border:0; }
.quiz-resume-notice { display:flex; align-items:center; gap:14px; border:1px solid var(--ink); background:var(--bg); border-radius:var(--radius-md); padding:16px 18px; margin-bottom:12px; }
.quiz-resume-notice>div { flex:1; }.quiz-resume-notice strong { font-size:14px; font-weight:600; }.quiz-resume-notice p { color:var(--ink-2); font-size:12px; margin-top:4px; }.quiz-resume-notice>form { margin:0; }
.lesson-article-link { display:flex; align-items:center; gap:8px; margin-top:24px; font-size:14px; font-weight:500; }
.courses-loading { display:flex; flex-direction:column; gap:28px; }.loading-greeting { width:320px; height:16px; min-height:0; }.loading-hero { display:flex; gap:40px; padding:32px 40px; background:var(--surface); border-radius:var(--radius-md); min-height:380px; }.loading-hero__body { flex:1; display:flex; flex-direction:column; justify-content:center; gap:20px; }.loading-hero__image { width:38%; }.loading-title { width:72%; height:34px; }.loading-long { width:92%; height:18px; min-height:0; }.loading-short { width:28%; height:22px; }.loading-progress { width:100%; height:6px; min-height:0; }.loading-button { width:160px; height:48px; }.loading-count { width:80px; height:16px; }.loading-section-heading { margin-bottom:-8px; }.loading-course { background:var(--surface); border-radius:var(--radius-md); padding:8px; display:flex; flex-direction:column; gap:18px; }.loading-course__image { height:200px; }.loading-course>.skeleton:not(:first-child){margin-left:12px;max-width:calc(100% - 24px)}.loading-course>.loading-button{width:calc(100% - 24px);margin-bottom:12px;}.loading-course>.loading-title{height:40px}
@media(max-width:1023px) { .cabinet-main:has(>.empty-state),.cabinet-main:has(>.locked-module){min-height:calc(100dvh - 56px);padding-bottom:100px}.cabinet-main>.empty-state{padding:40px 0}.cabinet-main>.empty-state>h2{font-size:23px}.locked-module{padding:32px 0}.locked-module h1{font-size:24px}.locked-module>p{font-size:14px}.locked-requirements>a{font-size:12px;padding:12px;gap:8px}.locked-requirements .chip{font-size:10px}.locked-module>.btn{width:100%}.quiz-resume-notice{flex-wrap:wrap;padding:16px;gap:12px}.quiz-resume-notice>div{flex-basis:calc(100% - 42px)}.quiz-resume-notice>form{width:100%}.quiz-resume-notice>form>.btn{width:100%}.loading-greeting{width:70%}.loading-hero{flex-direction:column-reverse;padding:12px;gap:24px}.loading-hero__image{width:100%;height:200px}.loading-hero__body{padding:8px}.loading-hero__body>.loading-title{height:48px}.loading-hero__body>.loading-button{width:100%}.loading-course{display:grid;grid-template-columns:104px 1fr;gap:12px;padding:12px}.loading-course__image{height:104px;grid-column:1;grid-row:1/4}.loading-course>.skeleton:not(:first-child){margin:0;max-width:100%;width:100%}.loading-course>.loading-title{height:24px}.loading-course>.loading-progress,.loading-course>.loading-button{grid-column:1/-1}.loading-course>.loading-button{margin:0}.lesson-content [data-mark-viewed]{width:100%} }
.field__optional { color:var(--ink-3); font-size:12px; font-weight:400; margin-left:6px; }
#finish-test { width:min(520px,calc(100% - 32px)); }
#finish-test>.field__hint { margin-top:16px; }
#time-up { width:min(480px,calc(100% - 32px)); }
#time-up .dialog__footer>.btn { width:100%; }
.time-up-heading { display:flex; flex-direction:column; gap:18px; }.time-up-heading>.icon { color:var(--accent); }
.test-result__note { display:flex; align-items:flex-start; gap:7px; }
.review-expand { margin-top:16px; }
.dialog--review-all { width:min(1000px,calc(100% - 32px)); }
@media(max-width:1023px){#finish-test,#time-up{width:100%}.dialog--sheet .dialog__footer{display:flex;flex-direction:column-reverse}.dialog--sheet .dialog__footer>.btn{width:100%}.time-up-heading{gap:14px}}
.design-board { width:100%; padding:64px; display:flex; flex-direction:column; gap:32px; }
.design-board>header>h1 { font-size:32px; line-height:1.2; }.design-board>header>p { margin-top:8px; color:var(--ink-2); font-size:15px; }
.module-examples { display:flex; flex-direction:column; gap:32px; }.module-examples>section { display:grid; grid-template-columns:320px minmax(0,1fr); align-items:center; gap:48px; }.module-examples h2 { font-size:20px; }.module-examples>section>div>p { margin-top:8px; max-width:300px; font-size:14px; line-height:1.5; color:var(--ink-2); }.module-examples .module__summary { min-height:80px; }.module-examples .module__title h3 { font-size:19px; }.module-examples .module__summary>.module__number { color:var(--ink); }.module-examples .module__summary>.module__number--active { color:var(--on-dark); }.module-examples .module__number>.icon { color:var(--success); }
.video-examples,.empty-examples { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px; }.video-examples h2 { color:var(--ink-2); font-size:14px; margin-bottom:12px; }.video-status { min-height:240px; border:1px solid var(--line-strong); border-radius:var(--radius-lg); padding:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; text-align:center; }.video-status>strong{font-size:15px;font-weight:500}.video-status>p{font-size:13px;color:var(--ink-2)}.video-status>.text-button{font-weight:600;color:var(--ink)}.video-status--empty{background:var(--surface)}.video-status--uploading{align-items:stretch;text-align:left;gap:10px}.video-status--uploading>.text-button{align-self:flex-start}.video-status--error{border-color:var(--accent)}.video-status--error>.icon,.video-status--error>p{color:var(--accent-ink)}.video-status--ready{padding:0;position:relative;overflow:hidden}.video-status--ready>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.video-status--ready>.chip{position:absolute;left:12px;bottom:12px;background:var(--bg);color:var(--ink)}.empty-example{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;padding:32px 24px;border:1px solid var(--line);border-radius:var(--radius-lg);min-height:320px}.empty-example>h2{font-size:20px}.empty-example>p{font-size:14px;line-height:1.5;color:var(--ink-2)}.empty-example>.btn{margin-top:0}
.mobile-component-example{max-width:390px;min-height:56px;margin:0 auto}.mobile-component-example .mobile-header{display:flex;position:relative;top:auto}.mobile-component-example .mobile-tabbar{display:flex;position:relative;bottom:auto}.mobile-component-example .mobile-header--inner{display:flex}.mobile-component-example .mobile-header__spacer{width:36px}
@media(max-width:1279px){.video-examples,.empty-examples{grid-template-columns:repeat(2,minmax(0,1fr))}.module-examples>section{grid-template-columns:220px minmax(0,1fr);gap:24px}}
@media(max-width:1023px){.design-board{padding:24px 16px}.design-board>header>h1{font-size:28px}.video-examples,.empty-examples{grid-template-columns:1fr}.module-examples>section{grid-template-columns:1fr;gap:12px}.module-examples .module__summary{min-height:80px}}
.email-gallery-page { background:var(--surface); }.email-gallery { width:100%; padding:64px; background:var(--surface); }.email-gallery>header { margin-bottom:32px; }.email-gallery>header h1 { font-size:30px; }.email-gallery>header p { color:var(--ink-2); font-size:15px; margin-top:8px; }.email-gallery--paired>header { text-align:center; }.email-gallery__grid { display:grid; grid-template-columns:repeat(4,minmax(0,600px)); gap:40px; align-items:start; justify-content:start; margin:0; }.email-gallery--paired .email-gallery__grid { grid-template-columns:repeat(2,minmax(0,600px)); justify-content:center; }.email-gallery__grid>article { min-width:0; }.email-gallery__grid>article>table { border-collapse:separate; }.email-gallery__grid h1 { font-family:var(--font-body); }
@media(max-width:2200px){.email-gallery__grid{grid-template-columns:repeat(3,minmax(0,600px))}}
@media(max-width:1700px){.email-gallery__grid{grid-template-columns:repeat(2,minmax(0,600px))}}
@media(max-width:1023px){.email-gallery{padding:24px 16px}.email-gallery__grid,.email-gallery--paired .email-gallery__grid{grid-template-columns:minmax(0,600px);justify-content:center;gap:24px}.email-gallery>header h1{font-size:26px}.email-gallery__grid>article>table td[style*="40px"]{padding-left:24px!important;padding-right:24px!important}}
.ui-board{gap:64px}.ui-board>section{display:flex;flex-direction:column;gap:24px}.ui-board>section>header h2{font-size:24px}.ui-board>section>header p{font-size:14px;color:var(--ink-2);margin-top:8px}.ui-board h3{font-size:13px;font-weight:400;color:var(--ink-2);margin-bottom:10px}.guide-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;max-width:1320px}.toast--example{max-width:none;font-size:14px;padding:14px 18px;gap:10px}.toast--example button{margin-left:auto}.toast--error>.icon{color:var(--accent-on-dark)}.guide-overlay{display:flex;gap:32px;align-items:flex-start;padding:40px;background:var(--overlay);border-radius:var(--radius-lg)}.confirm-example{background:var(--bg);border-radius:var(--radius-lg);padding:32px;width:520px}.confirm-example>h3{font-size:24px;color:var(--ink);font-weight:500;margin:0 0 18px}.confirm-example>p{font-size:15px;line-height:1.5}.guide-two{display:grid;grid-template-columns:1fr 1fr;gap:32px}.guide-loading-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.guide-loading-cards .loading-course{gap:14px;border:1px solid var(--line)}.guide-loading-cards .loading-course__image{height:130px}.guide-loading-cards .loading-title{height:16px}.guide-loading-cards .loading-short{height:14px}.guide-loading-cards .loading-button{height:40px}.guide-loading-notifications{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.guide-loading-notifications>div{display:flex;align-items:center;gap:16px;padding:20px;border-bottom:1px solid var(--line)}.guide-loading-notifications>div>.skeleton:first-child{width:36px;height:36px}.guide-loading-notifications>div>div:nth-child(2){display:flex;flex-direction:column;gap:10px;flex:1}.guide-loading-notifications .loading-short{height:14px;min-height:0}.guide-loading-notifications .loading-long{height:10px;min-height:0}.guide-loading-notifications>div>.skeleton:last-child{width:44px;height:10px;min-height:0}.guide-loading-table__head{display:grid;grid-template-columns:1.8fr 1fr 1fr .8fr .8fr;gap:24px;padding:18px;background:var(--surface)}.guide-loading-table__head .skeleton{height:12px;min-height:0}.guide-loading-table__row{display:grid;grid-template-columns:20px 1.8fr 1fr .8fr .8fr;gap:24px;align-items:center;padding:18px;border-bottom:1px solid var(--line)}.guide-loading-table__row>.skeleton{height:18px}.guide-loading-table__row>div:nth-child(2){display:flex;flex-direction:column;gap:10px}.guide-loading-table__row .loading-short{height:14px;min-height:0}.guide-loading-table__row .loading-long{height:10px;min-height:0}.guide-five{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}.field--focus input{border-color:var(--ink)!important}.field__lock{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--ink-3)}.guide-button-matrix{display:grid;grid-template-columns:140px repeat(5,minmax(0,1fr));gap:16px 24px;align-items:center}.guide-button-matrix>h3{text-align:left;margin:0}.guide-button-matrix>strong{font-size:15px;font-weight:400}.btn--state-hover.btn--primary{background:var(--accent-ink)}.btn--state-hover.btn--outline{background:var(--surface)}.btn--state-hover.btn--dark{background:var(--dark-hover)}.btn--state-pressed.btn--primary{background:var(--accent-press)}.btn--state-pressed.btn--outline{background:var(--surface-2)}.btn--state-pressed.btn--dark{background:var(--dark-press)}.guide-sort-states{display:flex;gap:32px}.guide-cookie-example{display:flex;align-items:flex-end;justify-content:center;padding:32px;min-height:200px;background:var(--surface);border-radius:var(--radius-lg)}.guide-cookie-example .cookie-banner{position:static;transform:none;width:100%;max-width:960px;margin:0}.toast>div>strong{font-size:14px;font-weight:500}.toast>div>p{font-size:12px;color:var(--on-dark-2);margin-top:3px}
@media(max-width:1279px){.guide-five{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-three{grid-template-columns:1fr}.guide-button-matrix{overflow:auto;grid-template-columns:100px repeat(5,180px)}.guide-overlay{flex-wrap:wrap}.guide-two{grid-template-columns:1fr}}
@media(max-width:1023px){.ui-board{gap:40px}.guide-five{grid-template-columns:1fr}.guide-overlay{padding:20px}.confirm-example{padding:24px}.confirm-example>h3{font-size:22px}.guide-loading-cards .loading-course{display:flex}.guide-loading-cards .loading-course__image{width:100%}.guide-sort-states{flex-wrap:wrap}.guide-cookie-example{padding:20px}}
.attachment>span:nth-child(2){flex:1}.attachment>span>strong{display:block;font-size:11px;font-weight:500}.attachment>span>small{display:block;font-size:10px;color:var(--ink-2);margin-top:3px}.attachment{flex:1;min-width:220px;background:var(--bg);border:1px solid var(--line)}.attachment--error{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-ink)}.attachment--error>span>small{color:var(--accent-ink)}.attachment--uploading{border-bottom:3px solid var(--accent)}.attachment button{display:flex;align-items:center;justify-content:center;background:var(--bg);border-radius:4px;color:var(--ink-3)}.module-examples .module--locked .module__number>.icon{color:var(--ink-3)}.module-examples>section:first-child .chip{background:var(--bg);border:1px solid var(--line)}.dialog__heading>h2:focus{outline:none}.toggle input:disabled{opacity:.45;cursor:not-allowed}

.mobile-only,.guide-state-label{display:none}
@media(max-width:1023px){
 ::-webkit-scrollbar{width:0;height:0}html{scrollbar-width:none}
 .auth-card h1{font-size:30px}
 .desktop-only{display:none!important}.mobile-only{display:inline}.design-board>header>.mobile-only{display:block}
 .ui-board{padding:32px 16px;gap:40px}.ui-board>section{gap:20px}.ui-board>section>header h2{font-size:21px}.ui-board>section:nth-of-type(3),.ui-board>section:nth-of-type(6),.ui-board>section:nth-of-type(7){display:none}
 .ui-board .guide-three>div:last-child,.ui-board .confirm-example:last-child{display:none}.ui-board .guide-three{gap:20px}.ui-board .toast--example{min-height:48px;font-size:15px}.ui-board .guide-overlay{padding:64px 0 0;gap:0;border:1px solid var(--line);overflow:hidden}.ui-board .confirm-example{width:100%;padding:24px 16px 16px;border-radius:10px 10px 0 0}.ui-board .confirm-example::before{content:'';display:block;width:36px;height:4px;background:var(--line-strong);border-radius:var(--radius-pill);margin:-16px auto 20px}.ui-board .confirm-example>h3{font-size:23px}.ui-board .confirm-example .dialog__footer{flex-direction:column-reverse;margin-top:20px}.ui-board .confirm-example .dialog__footer>.btn{width:100%}.ui-board>section:nth-of-type(2)>header>p{display:none}
 .ui-board .guide-five{gap:20px}.ui-board .guide-five>div:first-child .field__hint{display:none}.ui-board .guide-button-matrix{overflow:visible;grid-template-columns:100px minmax(0,1fr);gap:10px 8px}.ui-board .guide-button-matrix>span:first-child,.ui-board .guide-button-matrix>h3{display:none}.ui-board .guide-button-matrix>strong{grid-column:1/-1;margin:20px 0 4px;font-weight:600}.ui-board .guide-button-matrix>strong:first-of-type{margin-top:0}.guide-state-label{display:block;font-size:13px;color:var(--ink-2)}.ui-board .guide-state-label--hover,.ui-board .btn--state-hover{display:none}.ui-board .btn{padding-left:12px;padding-right:12px}.ui-board .field label{line-height:1.25}.ui-board h3{margin-bottom:8px}
}
.lesson-layout{grid-template-columns:minmax(0,1fr) 400px}.lesson-content{gap:24px}.lesson-description,.lesson-materials{border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px}.lesson-description h2{font-size:22px}.plan-illustration{padding:24px;background:var(--surface);border-radius:var(--radius-md);position:relative;margin:24px 0 12px}.plan-illustration .evacuation-plan{margin:0 auto}.plan-expand{position:absolute;right:12px;top:12px;border:0}.lesson-mobile-breadcrumbs{display:none}.video-player__play{height:76px}.video-player__controls{padding-top:40px;background:linear-gradient(transparent,var(--ink))}
.homework-page{width:100%;max-width:1100px}.homework-page .chat__messages{background:var(--surface);border-radius:var(--radius-lg);padding:24px;gap:18px;margin-bottom:24px}.homework-page .chat-message--own{max-width:60%}.homework-page .chat-message--teacher{background:var(--bg);border:0;margin-left:40px}.homework-page .chat__messages:has(.empty-state){padding:0}.homework-page .chat-message--teacher .chat-message__author{position:relative}.homework-page .chat-message--teacher .chat-message__author>.avatar{position:absolute;left:-58px;top:-14px}.module-state{background:var(--info-soft)}.module-state--success{background:var(--bg);border:1px solid var(--line)}.catalog-card{background:var(--surface);border-color:var(--surface)}.catalog-card__footer{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.test-timer--danger{background:var(--accent-soft);color:var(--accent-ink)}.time-up-heading>.desktop-only{display:flex;color:var(--accent)}
@media(min-width:1024px) and (max-width:1279px){.lesson-layout{grid-template-columns:1fr}.lesson-desktop-aside{display:none}}
@media(max-width:1023px){
 .cabinet-main:has(.lesson-layout){padding-top:0;gap:0}.lesson-content>.video-player{margin-left:-16px;width:calc(100% + 32px);border-radius:0}.lesson-mobile-breadcrumbs{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-3)}.lesson-mobile-breadcrumbs>strong{color:var(--ink)}.lesson-description{border:0;padding:0}.lesson-materials{padding:16px}.lesson-description h2{font-size:20px}.plan-illustration{padding:16px;margin:20px 0 12px}.plan-expand{width:30px;height:30px;right:6px;top:6px}.lesson-content{gap:24px}.video-player__play{width:64px;height:64px;border-radius:50%;background:var(--ink);opacity:.9}.video-player__controls{padding-top:32px}.homework-page .chat__messages{padding:16px;gap:16px;margin-bottom:16px}.homework-page .chat-message--own{max-width:90%}.homework-page .chat-message--teacher{max-width:calc(100% - 32px);margin-left:32px}.homework-page .chat-message--teacher .chat-message__author>.avatar{left:-46px;top:-14px}.homework-page .chat-composer{border:1px solid var(--line);border-radius:var(--radius-md);padding:16px}.homework-page .module-state{font-size:13px}.catalog-card__footer{margin-top:14px;padding-top:14px}
 #time-up{margin:auto;width:calc(100% - 32px);max-height:calc(100dvh - 64px);padding:24px;border-radius:var(--radius-lg);text-align:center}#time-up::before{display:none}#time-up .time-up-heading{align-items:center;width:100%;gap:14px}#time-up .dialog__heading{justify-content:center;margin-bottom:14px}#time-up .time-up-heading>.desktop-only{display:none}#time-up .time-up-heading>.mobile-only{display:flex;color:var(--ink)}#time-up .time-up-heading>.mobile-only>.icon{width:32px;height:32px}#time-up h2{font-size:24px}#time-up .dialog__footer{margin-top:24px}#time-up .dialog__footer>.btn{min-height:48px}
 .test-bar>a{display:flex;width:36px;height:36px;border:1px solid var(--line);border-radius:var(--radius-md);align-items:center;justify-content:center}.test-bar>div:nth-child(2)>span>.mobile-only{display:inline}.test-bar>div:nth-child(2)>span>.desktop-only{display:none}
}
.field.field--error input:not([type=checkbox]):not([type=radio]):not([type=file]),.field.field--error textarea{border-color:var(--accent)}
.auth-header img{height:44px}.auth-header p{line-height:normal}.auth-form .field label{line-height:normal}.auth-form .field__hint{line-height:1.4}.auth-form .field__error{line-height:1.4}
.loading-table-row td{height:68px}.loading-table-row .skeleton{min-height:0;border-radius:4px}.skeleton-checkbox{display:block;width:20px;height:20px}.skeleton-name{width:150px;height:14px;margin-bottom:8px}.skeleton-email{width:110px;height:10px}.skeleton-text{width:90%;height:12px}.skeleton-progress{width:100%;height:6px}.skeleton-status{width:105px;height:24px}.skeleton-actions{width:76px;height:12px}.loading-table-row .skeleton-name,.loading-table-row .skeleton-email{max-width:100%}
.admin-homework-chat .chat-message--own{width:fit-content;max-width:560px}.admin-student-message{max-width:600px}.admin-student-message .chat-message{background:var(--bg);border:1px solid var(--line)}.catalog-price--expired>small{color:var(--accent-ink)}.question-progress .progress--complete::-webkit-progress-value{background:var(--accent)}.question-progress .progress--complete::-moz-progress-bar{background:var(--accent)}
.email-gallery-page,.email-gallery{min-height:100dvh}.email-gallery>header{margin-bottom:24px}.email-gallery>header p{line-height:normal}.review-list{display:flex;flex-direction:column;gap:12px;border:0}.review-row{border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 20px;align-items:flex-start}.review-row h3{font-size:14px;line-height:1.4}.review-row p{font-size:13px;line-height:1.5;margin-top:6px}.review-row__status{margin-left:auto;display:flex}.review-row>div{flex:1}.review-row__number{font-size:12px;min-width:24px;color:var(--ink-3)}
@media(max-width:1023px){.review-row{padding:16px 12px;gap:10px}.review-row h3{font-size:14px}.review-row p{font-size:12px}.review-row__status{display:none}}
/* Final reference pass: shared layout and explicit mobile compositions. */
.dashboard-columns{align-items:start}.dashboard-columns>.stack{gap:24px}.telegram-connection--off~div{opacity:.45}.telegram-connection--off+.field__hint{order:1}
.auth-card__bottom{width:100%;border-top:1px solid var(--line);padding-top:20px}.auth-card--message .btn--outline:disabled{background:var(--bg);color:var(--ink-3);border-color:var(--line)}.auth-card--message [x-data]>.field__hint{text-align:center;margin-top:16px}
.legal-page .document-page .rich-text{font-size:16px;line-height:28px}.legal-page .document-page .rich-text section{display:flex;flex-direction:column;gap:14px}.legal-page .document-page section+section{margin-top:32px}.legal-page .document-page .rich-text h2{line-height:normal}.legal-page .document-page ul{margin:0;padding-left:20px}
.test-start-row{display:flex;align-items:center;gap:18px}.test-start-row>small{font-size:12px;color:var(--ink-2)}.test-history .stack{position:relative;gap:8px}.test-history .stack>strong{position:absolute;right:16px;top:16px;font-size:22px}.test-history .stack>.chip{align-self:flex-end}.test-history .stack>.muted{font-size:12px}.test-intro .card h3{font-size:15px}.test-intro .card.stack{gap:14px}
.score-ring circle{stroke-width:9}.score-ring__value{stroke-linecap:butt}.test-result__note{padding:14px 16px;background:var(--surface);border-radius:var(--radius-md);text-align:left;color:var(--ink)!important}.test-result__note--success>.icon{color:var(--success)}.quiz-finish-warning{padding:14px;background:var(--surface);border-radius:var(--radius-md);display:flex;align-items:flex-start;gap:10px;font-size:13px!important}#time-up h2:focus,#finish-test h2:focus{outline:none}
.homework-files{flex-direction:column;gap:8px}.homework-files .file-row{width:100%;border:1px solid var(--line);background:var(--bg);padding:8px}.homework-files .file-row>.btn{display:flex;padding:4px;border:0;background:transparent}.homework-page .module-state>div{flex-direction:column;align-items:flex-start}.homework-page .module-state>div>.icon{color:var(--info-ink)}.homework-page .module-state--success>div>.icon{color:var(--success)}.homework-page .chat-message--own .file-row{border-radius:var(--radius-md);padding:8px;background:var(--dark-hover)}.homework-page .chat-message--own .file-row>strong{font-size:12px;font-weight:500;overflow-wrap:anywhere}.homework-page .chat-message--own .file-row>small{margin:0}.homework-page .chat-message--own>small{text-align:right}
#module-sheet{position:relative}#module-sheet>.dialog__heading{position:absolute;right:16px;top:20px;margin:0;z-index:1}#module-sheet>.dialog__heading>.icon-btn{border-radius:50%;background:var(--surface);border:0;width:36px;height:36px}#module-sheet .aside-lesson>span:last-child{display:flex;flex-wrap:wrap;gap:0 8px;align-items:center}#module-sheet .aside-lesson strong{width:100%}#module-sheet .aside-lesson small{display:inline;margin:4px 0 0}#module-sheet .aside-lesson .chip{margin-top:4px}#module-sheet .aside-lesson:first-child .chip{display:none}
@media(min-width:1024px){.legal-page>.mobile-header{display:none}}
@media(max-width:1023px){
 .auth-header{padding-top:16px;gap:8px}.auth-header img{height:36px;width:160px}.auth-header p{font-size:13px}.auth-main{padding-top:24px;padding-bottom:24px}.auth-card{padding:20px;gap:20px}.auth-form{gap:16px}.auth-card__intro p{font-size:15px;line-height:23px;margin-top:10px}.auth-card__bottom{font-size:14px}.auth-footer{gap:6px;padding-bottom:4px}.auth-footer>span{margin-top:0}.auth-card--message{gap:16px}.auth-card--message p{font-size:15px;line-height:23px}.auth-card--message .auth-state-icon .icon{width:36px;height:36px}.auth-card--message .field__hint{font-size:12px}.error-page{width:100%;max-width:480px;min-width:0;padding:32px 16px}.auth-main:has(.error-page){align-items:center}.error-page>.btn{width:100%}.error-page .error-code{font-size:120px}
 .mobile-header:not(.mobile-header--inner){border:0}.mobile-header img{width:148px;height:36px}.mobile-tabbar__item.is-active{color:var(--ink)}.mobile-tabbar__item.is-active>.icon,.mobile-tabbar__item.is-active>span>.icon{color:var(--accent)}.mobile-tabbar__item .count{border-radius:50%}.mobile-tabbar__item.is-active small{font-weight:600}
 .cabinet-main:has(>.homework-page)>.breadcrumbs,.cabinet-main:has(>.test-intro-layout)>.breadcrumbs,.cabinet-main:has(>.test-result)>.breadcrumbs{display:flex;gap:6px;font-size:11px;flex-wrap:nowrap;white-space:nowrap}.breadcrumbs>.icon-btn{display:none}.breadcrumbs>a{display:flex}.breadcrumbs .mobile-only{display:inline-flex;align-items:center;gap:6px}.breadcrumbs .mobile-only>.icon{flex-shrink:0}.cabinet-main:has(>.homework-page),.cabinet-main:has(>.test-intro-layout),.cabinet-main:has(>.test-result){padding-top:16px;gap:24px}
 .homework-page h1{font-size:22px;line-height:28px;letter-spacing:-.3px}.homework-page .section-heading{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:20px}.homework-page>p{font-size:16px;line-height:25px;margin:0 0 20px}.homework-files .file-badge{width:40px;height:40px}.homework-page .chat .empty-state{padding:28px 16px;min-height:164px;gap:10px}.homework-page .module-state{padding:16px}.homework-page .module-state>div{gap:14px}.homework-page .module-state strong{font-size:16px}.homework-page .module-state p{font-size:14px;line-height:21px}.homework-page .chat-message--own{font-size:14px}.homework-page .chat-message--own .file-row{gap:8px;flex-wrap:wrap}.homework-page .chat-message--own .file-row>strong{flex:1}.homework-page .chat-message--own .file-row>small{margin-left:48px}
 .continue-hero{padding:0}.continue-hero__image{height:184px;border-radius:0}.continue-hero__body{padding:16px;gap:0}.continue-hero__body>.chip{margin:0 0 10px}.continue-hero h2{font-size:22px;line-height:26px;margin:0 0 10px}.continue-hero__body>p{font-size:14px;line-height:20px}.continue-hero__progress{margin:16px 0 14px}.continue-hero__progress .split-row{margin-bottom:8px}.continue-hero .button-row{gap:14px}.continue-hero .course-access{font-size:13px}.mobile-course-greeting{font-size:15px}.course-card h3{font-size:16px;line-height:20px}.course-card__cover img{height:96px}.course-card{grid-template-columns:96px minmax(0,1fr)}.course-card__cover>.chip{left:120px}.course-card__body>.course-card__meta{grid-column:2;grid-row:1;align-self:end;margin:0 0 6px}.course-card:has(.course-card__cover>.chip) h3{padding-top:28px}.course-card>.btn{min-height:44px}
 .catalog-course-header__cover{border:0;height:232px}.catalog-course-header__info>h1{font-size:26px;font-weight:500;line-height:32px}.catalog-course-header__info>p{font-size:16px;line-height:25px}.catalog-course-header__info>.chip{top:12px;left:12px}.catalog-price{padding:16px}.catalog-price>strong{margin:0;font-size:30px}.catalog-course-meta span{font-size:14px}.catalog-price>p{font-size:14px;line-height:21px}
 .test-intro{gap:16px}.test-intro h1{font-size:26px;line-height:32px}.test-intro>p{font-size:15px;line-height:23px}.test-intro .test-stats{margin:8px 0}.test-intro .test-stats>div{padding:16px;gap:8px}.test-intro .test-stats strong{line-height:1.2}.test-intro .test-stats small{font-size:12px}.test-intro .card h3{font-size:18px}.test-instructions{list-style:none;padding:0;font-size:14px;line-height:20px}.test-instructions li{position:relative;padding-left:28px}.test-instructions li::before{content:'✓';position:absolute;left:0;top:0}.test-instructions li+li{margin-top:12px}.test-start-row{flex-direction:column;gap:12px;width:100%}.test-start-row>small{font-size:13px;text-align:center}.test-intro .card form{margin-top:10px}.quiz-resume-notice{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.quiz-resume-notice>div{flex-basis:auto}.quiz-resume-notice strong{font-size:15px}.quiz-resume-notice p{font-size:13px;line-height:19px}.test-history h2{font-size:18px}.test-history .stack>strong{position:static;font-size:15px;display:inline}.test-history .stack{gap:8px}.test-history .stack>.chip{margin-top:-30px}
 .test-result{padding:0;background:transparent;gap:16px}.test-result h1{font-size:24px}.score-ring{width:184px;height:184px}.score-ring strong{font-size:36px}.test-result>div:last-child>p{font-size:14px;line-height:21px;margin-bottom:16px}.test-result>div:last-child>.chip{margin-bottom:12px}.test-result>div:last-child>.btn,.test-result>div:last-child>a.text-link{min-height:48px;margin-top:0}.test-result>div:last-child>a.text-link{margin-top:8px}.cabinet-main:has(>.test-result)>section:last-child{margin-top:8px}.review-row__status{display:flex}.review-row:last-child{border:1px solid var(--line)}.review-row h3{margin-bottom:6px}.review-row p{font-size:13px}.review-list .review-row{padding:14px;gap:10px}.review-row__number{min-width:18px}.test-result+.section{gap:16px}
 .question-progress .split-row>small{display:block;font-size:12px;font-weight:400;color:var(--ink-2)}.question-progress strong{font-size:14px}.question-legend{font-size:12px;gap:12px}.question-number{width:36px;height:36px}.answer-option{font-size:15px;padding:14px;line-height:21px}.answer-option:has(input:checked){background:var(--surface);font-weight:500}.question-prompt:has(.question-plan){gap:16px}.question-prompt .question-plan{padding:16px;background:var(--surface);border:0;border-radius:var(--radius-md)}
 .legal-header{display:none}.legal-page .document-page{margin:24px auto;padding:0 16px}.legal-page .document-page h1{font-size:28px;line-height:34px}.legal-page .document-page .rich-text{font-size:16px;line-height:24px;margin-top:28px}.legal-page .document-page .rich-text h2{font-size:20px;line-height:26px}.legal-page .document-page .rich-text section{gap:12px}.legal-page .document-page section+section{margin-top:26px}
 .locked-module>.icon{padding:16px;width:64px;height:64px;border:1px solid var(--line);border-radius:var(--radius-lg)}.locked-module h1{font-size:24px}.locked-requirements{background:var(--surface);border:0;padding:4px 16px}.locked-requirements>a{padding:14px 0;font-size:13px}.locked-requirements .chip{font-size:11px}.locked-module>p{font-size:15px;line-height:23px}.course-completion{gap:20px;min-height:calc(100dvh - 180px);padding:32px 0}.completion-metrics{gap:8px;margin:4px 0 0}.completion-metrics>div{padding:16px 12px}.completion-metrics strong{font-size:23px}.completion-metrics span{margin-top:4px}.course-completion>.button-row{gap:8px}
 .notification-heading .notification-toolbar{width:100%}.notification-toolbar>.segments{width:100%}.notification-toolbar>.segments>button{flex:1 1 auto;min-height:44px;padding:8px 12px;white-space:nowrap}.notification{gap:10px;padding:16px 12px;position:relative;flex-wrap:nowrap;align-items:center;padding-bottom:32px}.notification__status{align-self:center;padding:0}.notification__content{flex-basis:0}.notification__content strong{font-size:15px;line-height:20px}.notification__content>span{font-size:14px;line-height:20px}.notification time{position:absolute;left:76px;bottom:14px;margin:0}.notification__icon{align-self:center}.notification-section>h3{font-size:14px}
 .cabinet-main>.empty-state>h2{font-size:23px;font-weight:500}.cabinet-main>.empty-state>p{font-size:15px;line-height:23px}.cabinet-main>.empty-state>.btn{width:100%}.cabinet-main:has(>.empty-state){min-height:calc(100dvh - 56px);padding-bottom:100px}.cabinet-main>.empty-state{padding:0 0 24px}.cabinet-main:has(>.empty-state){height:calc(100dvh - 56px)}
 .loading-hero{padding:0}.loading-hero__image{height:184px}.loading-hero__body{padding:16px;gap:12px}.loading-hero__body>.loading-title{height:20px;width:100%}.loading-hero__body>.loading-long{height:14px}.loading-hero__body>.loading-button{height:48px}.loading-course{background:var(--bg);border:1px solid var(--line)}.module-examples>section>div>h2{font-size:16px}.module-examples>section>div>p{font-size:13px;margin-top:4px;line-height:18px}.module-examples>section{gap:10px}.module-examples .module__summary{min-height:100px}.module-examples .module__title h3{font-size:17px}.module-examples{gap:24px}
}
#module-sheet{position:fixed}#module-sheet>.dialog__heading h2:focus{outline:none}.profile-avatar-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.profile-avatar-controls>.field__hint{width:100%}
@media(max-width:1023px){
 .toast-region{top:16px}.toast{min-height:48px;padding:12px 16px}.toast>button{margin-left:auto}
 .profile-form .card{padding:16px;gap:16px}.profile-form .grid-two{gap:16px}.profile-form .card h2{font-size:22px}.profile-form .card>.button-row{flex-wrap:nowrap;gap:16px}.profile-avatar-controls{gap:10px;flex:1}.profile-avatar-controls>.field__hint{margin:0;font-size:12px}.profile-avatar-controls>.btn{min-height:40px;padding:8px 12px;font-size:13px}.profile-avatar-controls>.text-button{font-size:13px}.profile-form .card>.button-row>.avatar{width:64px;height:64px;flex-shrink:0}
 .catalog-course-header__cover{height:200px}.catalog-course-header__info{gap:16px}.catalog-course-header__info>h1{font-size:26px;line-height:32px}.catalog-course-header__info>p{font-size:15px;line-height:23px}.catalog-course-meta span{font-size:13px}.catalog-price{gap:12px}.catalog-price>p{font-size:13px;line-height:20px}
 #module-sheet{padding:20px 16px 16px}#module-sheet::before{margin:-12px auto 16px}#module-sheet .lesson-aside{gap:10px}#module-sheet .lesson-aside>h3{margin-bottom:4px}#module-sheet .aside-lesson{padding:12px 10px}#module-sheet .aside-lesson:last-child{margin-top:14px;border-top:1px solid var(--line);border-radius:0;padding-top:16px}#module-sheet .aside-lesson>.icon{align-self:center}#module-sheet .aside-lesson:last-child::after{content:'›';margin-left:auto;color:var(--ink-3)}
}

.sidebar-account{border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px;display:flex;flex-direction:column;gap:12px}.sidebar-account>.btn{min-height:36px;background:var(--surface);border-color:var(--surface);font-size:12px}.sidebar nav{margin-top:24px}.sidebar-promo{position:relative;overflow:hidden;padding:20px}.sidebar-promo>*{position:relative;z-index:1}.sidebar-promo::before{content:'';position:absolute;right:-90px;top:-30px;width:200px;height:240px;border:1px solid var(--line-strong);border-radius:50%;opacity:.18;transform:rotate(-25deg)}.sidebar-promo__mark{width:40px;height:40px;align-items:center;justify-content:center;margin-bottom:18px}.sidebar-promo p{margin:6px 0 18px}.lesson-desktop-aside{border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px}.lesson-desktop-aside .aside-lesson:last-child{border-top:1px solid var(--line);border-radius:0;margin-top:12px}.review-list>.review-row:last-child{border:1px solid var(--line)}
@media(min-width:1024px){
 .notification{min-height:0;padding:18px 24px}.notification__icon{width:40px;height:40px;flex-basis:40px}.notification__content strong{font-weight:600;line-height:normal}.notification__content>span{line-height:normal;margin-top:3px}.notification time{font-size:13px}.notification-section>h3{color:var(--ink-2);font-weight:600}
 .homework-files{flex-direction:row;gap:12px}.homework-files .file-row{width:auto;padding:8px;gap:10px}.homework-files .file-row__name strong{font-size:13px}.homework-files .file-row .desktop-label{display:none}.homework-page .chat-composer{border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:14px;gap:12px}.homework-page .chat-composer textarea{border:0;padding:6px 4px;min-height:48px;height:48px;resize:vertical}.homework-page .chat-composer{margin-bottom:28px}
 .test-result{padding:40px;gap:48px}.test-result .score-ring{width:180px;height:180px}.test-result__note{padding:0;background:transparent;margin:18px 0 24px!important}.test-result>div:last-child>h1{font-size:40px;margin-bottom:18px}.test-result p{font-size:16px}.test-result .score-ring strong{font-size:40px}
}
.catalog-module__tags{display:flex;align-items:center;gap:8px}.catalog-module__tags>.chip:first-of-type{margin:0}.catalog-module summary>.icon:last-child{transition:transform .15s}.catalog-module[open] summary>.icon:last-child{transform:rotate(180deg)}
#homework{border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px}#homework>p{font-size:15px;line-height:24px;margin-bottom:20px}#homework>.file-row{padding:8px;border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:16px}#homework>.file-row>.btn{border:0;background:transparent}#homework .chat{border:0;margin-top:16px}#homework .chat__messages{background:var(--surface);border-radius:var(--radius-md);padding:20px;gap:18px;margin-bottom:16px}#homework .chat-message--own{max-width:620px}#homework .chat-message--teacher{margin-left:40px;background:var(--bg);border:0;position:relative}#homework .chat-message--teacher .chat-message__author>.avatar{position:absolute;left:-40px;top:0}#homework .chat-composer{border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:14px;gap:12px}#homework .chat-composer textarea{border:0;min-height:64px;padding:6px 4px;resize:vertical}#homework .chat__date{display:flex;align-items:center;gap:14px}#homework .chat__date::before,#homework .chat__date::after{content:'';height:1px;flex:1;background:var(--line-strong)}.lesson-materials .file-row+.file-row{border-top:1px solid var(--line)}.attachment--uploading{border-bottom:1px solid var(--line)}.attachment--uploading::after{content:'';position:absolute;left:58px;bottom:12px;width:100px;height:4px;border-radius:var(--radius-pill);background:linear-gradient(to right,var(--accent) 58%,var(--surface-2) 58%)}.attachment--uploading{position:relative}.attachment--uploading>span:nth-child(2)>small{padding-left:112px;font-size:10px}
@media(max-width:1023px){
 /* Mobile catalogue modules: keep labels aligned with the text column. */
 .catalog-program{gap:8px}
 .catalog-module{padding:0;overflow:hidden}
 .catalog-module summary{display:grid;grid-template-columns:32px minmax(0,1fr) 20px;gap:6px 12px;align-items:start;padding:14px}
 .catalog-module summary>div{grid-column:2;grid-row:1}
 .catalog-module summary>div>small{display:block;font-size:12px;font-weight:500;line-height:16px}
 .catalog-module summary h3{font-size:16px;font-weight:500;line-height:21px;margin-top:6px}
 .catalog-module__number{grid-column:1;grid-row:1;width:32px;height:32px;font-size:14px;font-weight:600;background:var(--ink);color:var(--on-dark);border-radius:6px}
 .catalog-module__tags{grid-column:2;grid-row:2;gap:6px}
 .catalog-module summary>.icon:last-child{grid-column:3;grid-row:1;align-self:start}
 .catalog-module[open]>summary{background:var(--surface)}
 .catalog-module__lessons{margin:0;padding:4px 14px 6px}
 .catalog-module__lessons .lesson-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:6px 12px;align-items:start;min-height:0;padding:12px 0;border-bottom:1px solid var(--line)}
 .catalog-module__lessons .lesson-row__title{min-width:0;grid-column:2;grid-row:1;font-size:14px;font-weight:500;line-height:20px}
 .catalog-module__lessons .lesson-row:first-child .lesson-row__title{font-weight:600}
 .catalog-module__lessons .lesson-row__number{grid-column:1;grid-row:1;font-size:13px;font-weight:500;line-height:20px;color:var(--ink-3)}
 .catalog-module__lessons .lesson-row__duration{grid-column:3;grid-row:1;margin:0;font-size:13px;line-height:20px}
 .catalog-module__lessons .lesson-row>.chip{grid-column:2;grid-row:2;justify-self:start;margin:0}
 .catalog-module__lessons .lesson-row:last-child{border:0}
 .catalog-module__lessons .lesson-row--assignment{grid-template-columns:20px minmax(0,1fr);align-items:center;margin-top:0;border-top:0}
 .catalog-module__lessons .lesson-row--assignment strong{font-weight:600}
 .catalog-module__lessons .lesson-row--assignment small{margin-top:2px;font-size:13px;line-height:18px}

 .catalog-steps>div{gap:8px;margin-top:16px}.catalog-steps article,.catalog-steps article.catalog-steps__last{flex-direction:row;justify-content:flex-start;align-items:flex-start;min-height:0;padding:16px;gap:14px;background:var(--surface);color:var(--ink)}.catalog-steps article>span{font-size:20px;line-height:24px;color:var(--ink-3)}.catalog-steps article>div{flex:1}.catalog-steps h3{font-size:16px;line-height:22px}.catalog-steps p,.catalog-steps .catalog-steps__last p{font-size:15px;line-height:23px;color:var(--ink-2);margin-top:6px}.catalog-access{padding:24px;gap:16px}.catalog-access h2{font-size:24px;font-weight:500;line-height:30px}.catalog-access>strong{border-top:1px solid var(--dark-hover);padding-top:16px;font-size:28px}
 .lesson-test{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px 8px;padding:16px}.lesson-test>div:first-child{grid-row:1;grid-column:1}.lesson-test>div:first-child>.icon{width:18px;height:18px}.lesson-test>div:nth-child(2){display:contents}.lesson-test small{grid-column:2;grid-row:1;color:var(--ink);font-size:14px;font-weight:500}.lesson-test h3{grid-column:1/-1;grid-row:2;font-size:20px;line-height:26px;font-weight:500;margin:0}.lesson-test p{grid-column:1/-1;grid-row:3;font-size:13px;line-height:20px}.lesson-test>.chip{grid-column:3;grid-row:1;margin:0;font-size:12px}.lesson-test>.btn{grid-column:1/-1;grid-row:4;width:100%;min-height:48px;margin-top:4px}
 #homework{padding:16px}#homework .section-heading{flex-direction:column;align-items:flex-start;gap:10px}#homework .section-heading h2{font-size:22px}#homework>.file-row>.btn .desktop-label{display:none}#homework .chat__messages{padding:16px}#homework .chat-message--own{max-width:92%;font-size:15px}#homework .chat-message--teacher{max-width:calc(100% - 36px);margin-left:36px;font-size:15px}#homework .chat-message--teacher .chat-message__author>.avatar{left:-36px;top:-4px;width:28px;height:28px}#homework .chat-message--teacher .chip{font-size:11px}#homework .chat-composer{padding:14px}#homework .chat-composer textarea{min-height:64px;height:64px}#homework .file-row__name strong{font-size:14px}#homework .chat-message .file-row{border-radius:var(--radius-md);padding:8px;background:var(--dark-hover)}#homework .chat-message .file-row>strong{font-size:12px;overflow-wrap:anywhere;font-weight:500}#homework .chat-message>small{text-align:right}.lesson-navigation{border:0;padding:0;gap:8px}.lesson-navigation>a{border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;gap:12px}.lesson-navigation>a:last-child{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}.lesson-navigation>a:last-child>small{color:var(--on-dark-2)}.lesson-navigation span{font-size:14px;font-weight:600;line-height:21px}.lesson-navigation small{font-size:12px}.attachment--uploading>span:nth-child(2)>small{padding-left:0}.attachment--uploading::after{bottom:9px;width:95px}.attachment--uploading>span:nth-child(2){padding-bottom:10px}.attachment--uploading>span:nth-child(2)>small{position:absolute;left:165px;bottom:5px;white-space:nowrap}.cookie-banner .btn:first-child{font-size:13px}
}
@media(max-width:1023px){
 .module__summary{display:grid;grid-template-columns:36px minmax(0,1fr) 18px;gap:8px 12px;align-items:start;padding:16px 14px}.module__summary>.module__number{grid-column:1;grid-row:1;width:36px;height:36px}.module__summary>.module__title{grid-column:2;grid-row:1}.module__summary>.chip{grid-column:2;grid-row:2;margin-left:0;justify-self:start}.module__summary>.icon:last-child{grid-column:3;grid-row:1;margin:0}.module__summary .module__title h3{font-size:18px;line-height:23px;font-weight:500}.module__title small{font-size:12px;line-height:16px}.module--locked .module__title h3{color:var(--ink-2)}.module__summary .module__title p{font-size:12px;line-height:18px}.module__number:has(.icon[data-lucide=check]){color:var(--success)}
 .module__lessons{padding:0 14px 0}.module__lessons>.lesson-row{display:grid;grid-template-columns:20px minmax(0,1fr) 16px;gap:5px 12px;padding:12px 0;border-top:1px solid var(--line);border-radius:0;align-items:start}.module__lessons>.lesson-row>span:first-child{grid-column:1;grid-row:1/4;align-self:start;margin-top:2px}.module__lessons>.lesson-row>.icon:first-child{grid-column:1;grid-row:1/4;margin-top:2px}.module__lessons>.lesson-row .lesson-row__number{grid-column:2;grid-row:1;font-size:12px;color:var(--ink-3);margin:0}.module__lessons>.lesson-row .lesson-row__title{grid-column:2;grid-row:2;min-width:0;font-size:15px;line-height:22px}.module__lessons>.lesson-row>.chip{grid-column:2;grid-row:3;margin-left:0;justify-self:start;font-size:12px}.module__lessons>.lesson-row .lesson-row__duration{display:none}.module__lessons>.lesson-row.is-current{background:transparent}.module__lessons>.lesson-row--assignment .lesson-row__title{grid-row:1/3;font-size:15px}.module__lessons>.lesson-row--assignment .lesson-row__title small{font-size:13px;line-height:20px}.module__lessons>.lesson-row--assignment>.icon:last-child{grid-column:3;grid-row:1/3;align-self:center}.module__number>.icon{color:var(--success)}.module--locked .module__number>.icon{color:var(--ink-3)}
 .lesson-content .lesson-description h2{font-size:18px}.lesson-content .lesson-description>p{margin-top:14px}.lesson-description li{font-size:15px;line-height:23px}
}
.catalog-final{background:var(--surface);color:var(--ink)}.catalog-final p{color:var(--ink-2)}.catalog-final>.module__number{border:0;background:var(--bg);color:var(--ink)}.catalog-final .module__number>.icon{color:var(--ink)}.module__summary:has(.chip--success)>.module__number>.icon{color:var(--success)}
@media(max-width:1023px){.catalog-module:not([open]) .catalog-module__number{background:var(--surface);color:var(--ink)}.catalog-access h2{font-size:22px;line-height:28px}.catalog-final{padding:16px;gap:14px}.catalog-final h3{font-size:17px}.catalog-final p{font-size:14px;line-height:20px}#homework .chat-message--teacher>small{text-align:left}#homework .chat-message--teacher .chat-message__author{background:var(--surface);margin:-14px -16px 12px;padding-bottom:12px}#homework .chat-message--teacher .chat-message__author>.avatar{top:-4px}#homework .chat-message--teacher{border-radius:10px}}

/* Chat composer (customer change 28.10.2026): framed text field, no outer frame or file hint, compact attachments. */
/* :is(#homework,body) lifts every composer to id specificity so the older #homework rules above lose. */
:is(#homework,.homework-page) .chat-composer{border:0;border-radius:0;padding:0;gap:12px}
:is(#homework,body) .chat-composer textarea{display:block;flex:1;min-width:0;width:auto;min-height:44px;height:auto;max-height:160px;padding:11px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--bg);font-size:15px;line-height:20px;resize:none;field-sizing:content;overflow-y:auto;transition:border-color .15s}
:is(#homework,body) .chat-composer textarea::placeholder{color:var(--ink-3);opacity:1}
:is(#homework,body) .chat-composer textarea:hover{border-color:var(--ink-3)}
:is(#homework,body) .chat-composer textarea:focus{border-color:var(--ink);outline:1px solid var(--ink);outline-offset:0}
.chat-composer>.field__error:empty{display:none}
.chat-composer__attachments{gap:8px;align-items:flex-start}
.chat-composer .attachment{flex:0 1 auto;min-width:0;max-width:320px;gap:10px;padding:8px 8px 8px 10px}
.chat-composer .attachment>.file-badge,.chat-composer .attachment>button{flex-shrink:0}
.chat-composer .attachment>span:nth-child(2){flex:1 1 auto;min-width:0;padding:0}
.chat-composer .attachment>span>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-composer .attachment--uploading{border-bottom:1px solid var(--line)}
.chat-composer .attachment--uploading::after{content:none}
.chat-composer .attachment--uploading>span>small{position:static;display:flex;align-items:center;gap:8px;padding:0;white-space:nowrap}
.chat-composer .attachment--uploading>span>small::before{content:'';flex:0 0 64px;height:4px;border-radius:var(--radius-pill);background:linear-gradient(to right,var(--accent) 58%,var(--surface-2) 58%)}
@media(max-width:1023px){.chat-composer .attachment{flex:1 1 100%;max-width:none}}

/* Chat fits the viewport (customer change 28.10.2026): the message list scrolls inside, the composer stays visible. */
:is(#homework,.homework-page) .chat,.admin-homework-thread{display:flex;flex-direction:column;max-height:calc(100dvh - 56px)}
:is(#homework,.homework-page) .chat>*,.admin-homework-thread>*{flex-shrink:0}
:is(#homework,.homework-page) .chat>.chat__messages,.admin-homework-thread>.admin-homework-chat{flex:1 1 auto;min-height:240px}
.chat__messages>*{flex-shrink:0}
:is(#homework,.homework-page,.admin-homework-chat) .chat__messages{overflow-y:auto;overscroll-behavior:auto;scrollbar-gutter:stable}
.admin-homework-thread{gap:24px;max-height:calc(100dvh - 72px - 48px)}
.admin-homework-chat{display:flex;flex-direction:column}
.admin-homework-chat>.chat__messages{flex:1 1 auto;min-height:0}
@media(max-width:1023px){:is(#homework,.homework-page) .chat{max-height:calc(100dvh - 56px - 69px - 32px - env(safe-area-inset-bottom))}:is(#homework,.homework-page) .chat>.chat__messages{min-height:200px}}

/* Read receipt (customer change 28.10.2026): the double check turns red once the message is read. */
.chat-receipt{display:contents}
.chat-receipt--read{color:var(--accent)}

/* Lesson tweaks (customer change 28.10.2026): larger chat on desktop, compact task file, framed lesson test. */
@media(min-width:1024px){
 :is(#homework,.homework-page) .chat__messages{padding:24px;gap:20px}
 :is(#homework,.homework-page) .chat-message{padding:18px 22px;font-size:16px;line-height:24px}
 #homework .chat-message--own{max-width:680px}
 :is(#homework,.homework-page) .chat-message p{font-size:16px;line-height:24px}
 :is(#homework,.homework-page) .chat-message>small{font-size:13px;margin-top:12px}
 :is(#homework,.homework-page) .chat-message__author{font-size:14px;margin-bottom:14px}
 :is(#homework,.homework-page) .chat-message--teacher .chip{font-size:13px}
 :is(#homework,.homework-page) .chat-message .chat-attachment{margin-top:14px;padding:10px 14px 10px 10px;gap:12px}
 :is(#homework,.homework-page) .chat-message .file-badge{width:44px;height:44px;font-size:12px}
 :is(#homework,.homework-page) .chat-message .chat-attachment__name{font-size:15px}
 :is(#homework,.homework-page) .chat-message .chat-attachment__size{font-size:13px}
 :is(#homework,.homework-page) .chat__date{font-size:13px}
 :is(#homework,.homework-page) .chat__event small{font-size:12px}
 #homework .chat-message--teacher{margin-left:46px}
 #homework .chat-message--teacher .chat-message__author>.avatar{left:-46px;width:32px;height:32px}
 .lesson-test{border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px}
}
#homework>.file-row{width:min(100%,480px)}

/* Lesson navigation on desktop (customer change 28.10.2026): framed cards with the arrow in its own square. */
@media(min-width:1024px){
 .lesson-navigation{border-top:0;padding-top:0;gap:16px}
 .lesson-navigation>a{position:relative;justify-content:center;gap:4px;min-height:72px;padding:14px 16px 14px 64px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg);transition:border-color .15s}
 .lesson-navigation>a:last-child{padding:14px 64px 14px 16px}
 .lesson-navigation>a:hover{border-color:var(--line-strong)}
 .lesson-navigation>a>small{font-size:12px}
 .lesson-navigation>a>span{font-size:14px;font-weight:600;line-height:20px}
 .lesson-navigation>a>span>.icon{position:absolute;left:16px;top:50%;margin-top:-16px;box-sizing:border-box;width:32px;height:32px;padding:8px;border-radius:var(--radius-md);background:var(--surface)}
 .lesson-navigation>a:last-child>span>.icon{left:auto;right:16px;background:var(--ink);color:var(--on-dark)}
}

/* Lesson page UX pass (customer change 28.10.2026). Backup of the previous state: backups/before-lesson-ux-2026-10-28.tar.gz */
/* Heading: duration instead of the repeated module/lesson numbers; homework status right under it. */
.lesson-heading{display:flex;flex-direction:column;gap:8px}
.lesson-heading__meta{display:flex;align-items:center;gap:6px;color:var(--ink-2);font-size:14px}
.lesson-heading+.lesson-status{margin-top:-12px}
.lesson-status{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--radius-lg);color:var(--ink)}
.lesson-status--warning{background:var(--warning-soft)}
.lesson-status--info{background:var(--info-soft)}
.lesson-status--success{background:var(--success-soft)}
.lesson-status__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--bg)}
.lesson-status--warning .lesson-status__icon{color:var(--warning-ink)}
.lesson-status--info .lesson-status__icon{color:var(--info-ink)}
.lesson-status--success .lesson-status__icon{color:var(--success-ink)}
.lesson-status__text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}
.lesson-status__text>strong{font-size:15px;font-weight:600;line-height:22px}
.lesson-status__text>small{font-size:13px;line-height:19px;color:var(--ink-2)}
.lesson-status__action{display:flex;flex-shrink:0;align-items:center;gap:6px;font-size:14px;font-weight:600}
.lesson-status:hover .lesson-status__action-label{text-decoration:underline}
#homework{scroll-margin-top:28px}
/* Materials: whole row downloads, one "download all" link. */
.lesson-materials__all{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500}
.lesson-materials__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.lesson-materials .lesson-materials__list>.file-row{position:relative;container-type:inline-size;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:0;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);transition:border-color .15s}
/* A narrow tile stacks: badge and download icon on top, the name below in up to two lines. */
@container (max-width:239px){
 .lesson-materials__list>.file-row>.file-badge{grid-area:1/1}
 .lesson-materials__list>.file-row>.btn{grid-area:1/3;align-self:start}
 .lesson-materials__list>.file-row>.file-row__name{grid-area:2/1/3/4}
 .lesson-materials__list>.file-row>.file-row__name>strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px}
}
.lesson-materials .lesson-materials__list>.file-row+.file-row{border-top:1px solid var(--line)}
.lesson-materials .lesson-materials__list>.file-row:hover{border-color:var(--line-strong)}
.lesson-materials .file-row:hover{background:var(--surface)}
.lesson-materials .file-row>.btn{justify-content:center;width:32px;min-height:32px;padding:0;border:0;background:transparent;color:var(--ink-2)}
.lesson-materials .file-row>.btn .desktop-label{display:none}
.lesson-materials .file-row>.btn::after{content:'';position:absolute;inset:0;border-radius:var(--radius-md)}
.lesson-materials .file-row:hover>.btn{color:var(--ink)}
.lesson-materials .file-row>.btn:focus-visible{outline:none}
.lesson-materials .file-row:has(>.btn:focus-visible){outline:2px solid var(--ink);outline-offset:0}
/* Test: meta parts never break inside. */
.lesson-test__meta{display:flex;flex-wrap:wrap;gap:2px 14px}
.lesson-test__meta>span{white-space:nowrap}
/* Chat: jump back to the latest message. */
.chat{--chat-gap-below:16px}
.homework-page .chat{--chat-gap-below:24px}
.chat__jump{position:relative;z-index:1;align-self:stretch;height:0}
.chat__jump-btn{position:absolute;right:24px;bottom:calc(var(--chat-gap-below) + 12px);display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--bg);color:var(--ink);font-size:13px;font-weight:500}
.chat__jump-btn:hover{border-color:var(--ink-3)}
.chat__jump-btn[hidden]{display:none}
/* Sidebar promo stays quiet while the learner studies. */
.sidebar-promo--quiet{background:var(--surface);color:var(--ink)}
.sidebar-promo--quiet p{color:var(--ink-2)}
.sidebar-promo--quiet .sidebar-promo__mark{background:var(--bg);color:var(--ink)}
.sidebar-promo--quiet .btn{background:var(--bg)}
@media(max-width:1023px){
 #homework{scroll-margin-top:72px}
 .lesson-mobile-breadcrumbs{display:none}
 .homework-page .chat{--chat-gap-below:16px}
 .chat__jump-btn{right:16px}
 .lesson-content>.video-player.is-playing{position:sticky;top:56px;z-index:var(--z-sticky)}
}

/* Compact composer (customer change 28.10.2026): attach, text and send in one row so the chat and the composer share one screen. */
:is(#homework,.homework-page) .chat-composer{gap:8px}
.chat-composer__row{display:flex;align-items:flex-end;gap:8px}
.chat-composer__attach,.chat-composer__send{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:8px;min-width:44px;height:44px;border-radius:var(--radius-md);cursor:pointer}
.chat-composer__attach{color:var(--ink-2)}
.chat-composer__attach:hover{background:var(--surface);color:var(--ink)}
.chat-composer__row:has(#message-files:focus-visible) .chat-composer__attach{outline:2px solid var(--ink);outline-offset:2px}
.chat-composer__send{padding:0 12px;border:0;background:var(--accent);color:var(--on-dark);font-size:14px;font-weight:600}
.chat-composer__send:hover{background:var(--accent-ink)}
.chat-composer__send:active{background:var(--accent-press)}
#homework .chat{max-height:calc(100dvh - 56px - var(--homework-head,0px))}
#homework .chat>.chat__messages{min-height:200px}
/* On phones the task text is too tall to share the screen: the chat alone (messages and composer) fills the space between header and tab bar. */
@media(max-width:1023px){#homework .chat{max-height:calc(100dvh - 56px - 69px - 32px - env(safe-area-inset-bottom))}#homework .chat>.chat__messages{min-height:240px}}

.chat-composer textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1023px){.lesson-materials__list{grid-template-columns:1fr;gap:8px}}

/* Lesson test highlighted (customer change 28.10.2026): dark card, tighter vertical padding, light button. */
.lesson-test{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}
.lesson-test small,.lesson-test p{color:var(--on-dark-2)}
.lesson-test>.btn{border-color:var(--bg);background:var(--bg);color:var(--ink)}
.lesson-test>.btn:hover{border-color:var(--surface);background:var(--surface)}
.lesson-test>.btn:focus-visible{outline-color:var(--on-dark)}
@media(min-width:1024px){.lesson-test{padding:16px 24px}}
@media(max-width:1023px){.lesson-test small{color:var(--on-dark)}}

/* Sidebar promo refresh (customer change 28.10.2026): compact type, dismiss button; dismissal is kept for 30 days in a cookie. */
.sidebar-promo{padding:16px}
.sidebar-promo__top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}
.sidebar-promo .sidebar-promo__mark{width:36px;height:36px;margin:0;padding:0}
.sidebar-promo h2{font-size:17px;font-weight:600;line-height:22px;letter-spacing:-.1px}
.sidebar-promo p{margin:6px 0 16px;font-size:13px;line-height:19px}
.sidebar-promo .btn{min-height:40px;font-size:14px;font-weight:600}
.sidebar-promo__close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:-4px -4px 0 0;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--on-dark-2);cursor:pointer;transition:background-color .15s,color .15s}
.sidebar-promo__close:hover{background:var(--dark-hover);color:var(--on-dark)}
.sidebar-promo__close:focus-visible{outline-color:var(--on-dark)}
.sidebar-promo--quiet::before{content:none}
.sidebar-promo--quiet .btn{border:1px solid var(--line)}
.sidebar-promo--quiet .btn:hover{border-color:var(--line-strong);background:var(--bg)}
.sidebar-promo--quiet .sidebar-promo__close{color:var(--ink-3)}
.sidebar-promo--quiet .sidebar-promo__close:hover{background:var(--surface-2);color:var(--ink)}
.sidebar-promo--quiet .sidebar-promo__close:focus-visible{outline-color:var(--ink)}
@media(max-width:1023px){.chat__jump-btn{width:40px;height:40px;padding:0;justify-content:center}.chat__jump-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
/* Mobile lesson navigation: previous and next lessons stacked, one card per row (customer change 28.10.2026). */
@media(max-width:1023px){.lesson-navigation{grid-template-columns:1fr}}
/* Lesson description collapsible, closed by default (customer change 28.10.2026). */
.lesson-description>.lesson-description__summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none}
.lesson-description>.lesson-description__summary::-webkit-details-marker{display:none}
.lesson-description>.lesson-description__summary>h2{margin:0}
.lesson-description>.lesson-description__summary>.icon{flex-shrink:0;color:var(--ink-2);transition:transform .15s}
.lesson-description[open]>.lesson-description__summary>.icon{transform:rotate(180deg)}
.lesson-description>.lesson-description__summary:hover>.icon{color:var(--ink)}
.lesson-content .lesson-description__body{margin-top:20px}
.lesson-content .lesson-description__body>p:first-child{margin-top:0}
@media(prefers-reduced-motion:reduce){.lesson-description>.lesson-description__summary>.icon{transition:none}}

@media(max-width:1023px){.lesson-description>.lesson-description__summary{min-height:44px}.lesson-content .lesson-description__body{margin-top:10px}}

/* Lesson test decluttered (customer change 28.10.2026): no side icon or "not started" chip; the label line also says what the test unlocks. */
.lesson-test>.lesson-test__body{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.lesson-test .lesson-test__body>small{color:var(--on-dark-2);font-size:13px;font-weight:400;line-height:18px}
.lesson-test .lesson-test__body>h3{margin:0;font-size:18px;font-weight:600;line-height:24px}
.lesson-test .lesson-test__body>.lesson-test__meta{margin-top:2px;color:var(--on-dark-2);font-size:13px;line-height:18px}
@media(min-width:1024px){.lesson-test{gap:24px;padding:18px 24px}}
@media(max-width:1023px){
 .lesson-test{display:flex;flex-direction:column;align-items:stretch;gap:16px;padding:20px}
 .lesson-test .lesson-test__body>h3{font-size:20px;line-height:26px}
 .lesson-test>.btn{width:100%;margin:0}
}

/* Test parameters as small pills on the dark card (customer change 28.10.2026). */
.lesson-test .lesson-test__body>.lesson-test__meta{gap:6px;margin-top:8px}
.lesson-test .lesson-test__meta>span{padding:3px 8px;border-radius:var(--radius-sm);background:var(--dark-hover);color:var(--on-dark);font-size:12px;line-height:16px}
/* Mobile (customer change 28.10.2026): homework banner stays one row with an arrow only; lesson navigation arrows sit next to the small labels so titles get the full width. */
@media(max-width:1023px){
 .lesson-status{gap:12px;padding:12px}
 .lesson-status__action-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .lesson-status__action{justify-content:center;width:32px;height:32px}
 .lesson-navigation>a{position:relative}
 .lesson-navigation>a>small{display:block;padding-left:22px}
 .lesson-navigation>a:last-child>small{padding:0 22px 0 0}
 .lesson-navigation>a>span>.icon{position:absolute;top:16px;left:16px}
 .lesson-navigation>a:last-child>span>.icon{left:auto;right:16px}
}

/* Attach button sits on its own tile, matching the send button size (customer change 28.10.2026). */
.chat-composer__attach{width:44px;background:var(--surface);color:var(--ink)}
.chat-composer__attach:hover{background:var(--surface-2)}
/* Module homework page (customer change 28.10.2026): on desktop the task, chat and composer share one screen like the lesson; the empty state disappears once a message exists. */
/* :is(... #homework) matches the specificity of the shared chat rule above. */
@media(min-width:1024px){:is(.homework-page,#homework) .chat:not(#homework .chat){max-height:calc(100dvh - var(--homework-head,0px) - 40px)}.homework-page .chat>.chat__messages{min-height:240px}}
.chat__messages:has(.chat-message) .empty-state{display:none}

.homework-page .chat__messages:has(.empty-state):has(.chat-message){padding:24px}
@media(max-width:1023px){.homework-page .chat__messages:has(.empty-state):has(.chat-message){padding:16px}}
/* Module homework status card: icon beside the text on desktop as in the reference; stacked only on phones. */
@media(min-width:1024px){.homework-page .module-state>div{flex-direction:row;align-items:center}}

/* Attachments inside the message field (customer change 28.10.2026): one framed field holds the file chips on top and the text below. */
.chat-composer__field{display:flex;flex:1;flex-direction:column;min-width:0;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--bg);transition:border-color .15s}
.chat-composer__field:hover{border-color:var(--ink-3)}
.chat-composer__field:focus-within{border-color:var(--ink);outline:1px solid var(--ink);outline-offset:0}
.chat-composer__field>.chat-composer__attachments{gap:6px;padding:8px 8px 0}
.chat-composer__field>.chat-composer__attachments:empty{display:none}
.chat-composer__field .attachment{max-width:280px;padding:6px 6px 6px 8px}
:is(#homework,body) .chat-composer .chat-composer__field textarea,:is(#homework,body) .chat-composer .chat-composer__field textarea:hover,:is(#homework,body) .chat-composer .chat-composer__field textarea:focus{width:100%;min-height:42px;border:0;outline:none;background:transparent}
@media(max-width:1023px){.chat-composer__field .attachment{max-width:none}}

/* ДЗ по модулю: статус в стиле плашки урока, отделён от чата; кнопка «К последнему сообщению» по центру */
.homework-page .chat>.module-state{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;padding:14px 16px;border:0;border-radius:var(--radius-lg);background:var(--info-soft);font-size:14px}
.homework-page .chat>.module-state--success{background:var(--success-soft)}
.homework-page .chat>.module-state>div{display:flex;flex-direction:row;align-items:center;gap:14px;min-width:0}
.homework-page .module-state__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--bg);color:var(--info-ink)}
.homework-page .module-state--success .module-state__icon{color:var(--success-ink)}
.homework-page .chat>.module-state strong{display:block;font-size:15px;font-weight:600;line-height:22px}
.homework-page .chat>.module-state p{margin:2px 0 0;font-size:13px;line-height:19px;color:var(--ink-2)}
.homework-page .chat>.module-state .btn{flex-shrink:0;width:auto}
.chat__jump-btn{right:auto;left:50%;transform:translateX(-50%)}
@media(max-width:1023px){.homework-page .chat>.module-state{flex-direction:column;align-items:stretch;gap:12px}.homework-page .chat>.module-state>div{align-items:flex-start}.homework-page .chat>.module-state .btn{width:100%}.chat__jump-btn{right:16px;left:auto;transform:none}}
/* Вложения: подпись в одну строку, чтобы плашка с ошибкой была той же высоты, что и обычная; полный текст — в title */
.attachment>span:nth-child(2)>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attachment>span:nth-child(2)>small>:is(.desktop-only,.mobile-only){white-space:nowrap}
/* ── Живой чат ДЗ (29.10.2026): шапка преподавателя, светлые свои сообщения, статусы отправки ── */
.chat-head{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.chat-head__avatar{width:40px;height:40px}
.chat-head__who{display:flex;flex-direction:column;min-width:0}
.chat-head__who>strong{font-size:15px;font-weight:600;line-height:20px}
.chat-head__who>small{font-size:13px;line-height:18px;color:var(--ink-2)}
.chat-head__eta{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:13px;color:var(--ink-2)}
.chat-head__eta>.icon{flex-shrink:0;color:var(--ink-3)}
:is(#homework,.homework-page) .chat-head+.chat__messages{border-top-left-radius:0;border-top-right-radius:0}
@media(max-width:767px){.chat-head{padding:12px 16px}.chat-head__eta{flex-basis:100%;margin-left:52px;font-size:12px}}

:is(#homework,.homework-page) .chat-message--own{background:var(--surface-2);border-color:var(--surface-2);color:var(--ink)}
:is(#homework,.homework-page) .chat-message--own>small{color:var(--ink-2)}
:is(#homework,.homework-page) .chat-message--own .chat-attachment{background:var(--bg)}
:is(#homework,.homework-page) .chat-message--own .chat-attachment .file-badge{background:var(--ink);color:var(--on-dark)}
:is(#homework,.homework-page) .chat-message--own .chat-attachment__size{color:var(--ink-2)}
:is(#homework,.homework-page) .chat-message--own .chat-attachment__download{color:var(--ink-2)}
:is(#homework,.homework-page) .chat-message--own .chat-attachment__download:hover{color:var(--ink)}
:is(#homework,.homework-page) .chat-message--teacher{background:var(--bg);border-color:var(--bg)}
:is(#homework,.homework-page) .chat-message--own+.chat-message--own{margin-top:-10px}
:is(#homework,.homework-page) .chat__date{margin:4px 0}
.chat-message--new{animation:chat-message-in .24s ease-out}
@keyframes chat-message-in{from{opacity:0;transform:translateY(8px)}}
.chat-message.is-sending .chat-receipt>.icon{opacity:.35}
@media(prefers-reduced-motion:reduce){.chat-message--new{animation:none}}

/* ── ДЗ по модулю: правая колонка «Чтобы открыть модуль» ── */
.homework-aside{display:none}
@media(min-width:1280px){
  .homework-page{display:grid;grid-template-columns:minmax(0,1fr) 300px;column-gap:32px;align-items:start;max-width:1480px}
  .homework-page>:not(.homework-aside){grid-column:1}
  .homework-aside{display:flex;flex-direction:column;gap:16px;grid-column:2;grid-row:1/span 4;position:sticky;top:24px}
}
.unlock-card,.check-card{padding:20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg)}
.unlock-card__module{display:block;font-size:12px;line-height:16px;color:var(--ink-3)}
.unlock-card h2{margin:4px 0 16px;font-size:18px;line-height:24px;font-weight:600}
.unlock-card__progress{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.unlock-card__label{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-2)}
.unlock-card__label>strong{color:var(--ink);font-weight:600}
.unlock-card__bar{display:block;height:6px;border-radius:var(--radius-pill);background:var(--surface-2);overflow:hidden}
.unlock-card__fill{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.unlock-card__fill--0{width:0}.unlock-card__fill--50{width:50%}.unlock-card__fill--100{width:100%}
.unlock-steps{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.unlock-steps__item{position:relative;display:flex;gap:12px;padding-bottom:18px}
.unlock-steps__item:last-child{padding-bottom:0}
.unlock-steps__item:not(:last-child)::before{content:'';position:absolute;left:11px;top:26px;bottom:2px;width:2px;border-radius:var(--radius-pill);background:var(--line)}
.unlock-steps__item--done:not(:last-child)::before{background:var(--accent)}
.unlock-steps__mark{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:24px;height:24px;border:2px solid var(--line-strong);border-radius:50%;background:var(--bg)}
.unlock-steps__item--done .unlock-steps__mark{border-color:var(--accent);background:var(--accent);color:var(--on-dark)}
.unlock-steps__item--current .unlock-steps__mark{border-color:var(--accent)}
.unlock-steps__dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.unlock-steps__body{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:1px;color:var(--ink);text-decoration:none}
.unlock-steps__body>strong{font-size:14px;line-height:20px;font-weight:500}
.unlock-steps__body>small{font-size:13px;line-height:18px;color:var(--ink-2)}
.unlock-steps__item--current .unlock-steps__body>strong{font-weight:600}
.unlock-steps__body:hover>strong{text-decoration:underline}
.unlock-steps__body:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:var(--radius-sm)}
.check-card h2{margin:0 0 12px;font-size:15px;line-height:20px;font-weight:600}
.check-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.check-list>li{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:20px}
.check-list>li>.icon{flex-shrink:0;margin-top:2px;color:var(--ink-3)}
/* Тест: шапка показывала мобильные и десктопные элементы сразу (.test-bar span{display:block}) */
.test-bar .mobile-only{display:none}
@media(max-width:1023px){.test-bar .desktop-only{display:none}.test-bar span.mobile-only{display:block}.test-bar a>.mobile-only{display:flex}}
/* Тест: вопрос со схемой и вариантами помещается в высоту экрана на десктопе */
@media(min-width:1024px){
  .test-bar{height:64px;min-height:64px}
  .test-main{padding-top:24px;padding-bottom:24px}
  .question-progress{padding:16px 24px}
  .question-content{padding:20px 24px;gap:16px}
  .question-prompt{padding:20px 24px;gap:16px}
  .question-prompt .question-plan{width:auto;max-width:min(640px,100%);max-height:clamp(160px,calc(100dvh - 700px),420px);object-fit:contain}
  .question-options{gap:8px}
  .answer-option{min-height:46px;padding:11px 16px}
}
/* Невысокие экраны (ноутбуки 768–860 px): варианты ответа в две колонки, схема получает больше места */
@media(min-width:1024px) and (max-height:860px){.question-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.question-prompt .question-plan{max-height:clamp(160px,calc(100dvh - 590px),420px)}}
/* ── Тест (29.10.2026): серый фон на всю высоту, свои чекбоксы и радиокнопки, выбранный ответ ── */
html:has(>body.focus-page){background:var(--surface)}
body.focus-page{min-height:100dvh}
.answer-option{background:var(--bg);border:1px solid var(--line);transition:border-color .12s,background-color .12s}
.answer-option:hover{border-color:var(--ink-3)}
.answer-option:has(input:checked){border:1px solid var(--ink);background:var(--surface-subtle);font-weight:500}
.answer-option:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}
.answer-option>input{flex-shrink:0;width:20px;height:20px;margin:0;appearance:none;-webkit-appearance:none;border:1.5px solid var(--line-strong);background:var(--bg) center/14px 14px no-repeat;cursor:pointer;transition:border-color .12s,background-color .12s}
.answer-option>input[type=checkbox]{border-radius:6px}
.answer-option>input[type=radio]{border-radius:50%}
.answer-option:hover>input{border-color:var(--ink-3)}
.answer-option>input[type=checkbox]:checked{border-color:var(--ink);background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
.answer-option>input[type=radio]:checked{border:2px solid var(--ink);background-image:radial-gradient(circle,var(--ink) 0 4px,transparent 4.5px);background-size:100% 100%}
.answer-option>input:focus-visible{outline:none}
@media(prefers-reduced-motion:reduce){.answer-option,.answer-option>input{transition:none}}
/* «Время закончилось»: иконка в красной подложке */
.time-up-heading .icon{color:var(--accent)}
.time-up-heading>.desktop-only,.time-up-heading>.mobile-only{align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-lg);background:var(--accent-soft)}
@media(min-width:1024px){.time-up-heading>.desktop-only{display:flex}}
@media(max-width:1023px){.time-up-heading>.mobile-only{display:flex;align-self:center}}
/* ── Результат теста (29.10.2026): запрос попытки вместо Telegram, разбор всех 20 вопросов ── */
.attempt-request{display:contents}
.attempt-request>form{display:inline-flex}
.attempt-request__state{display:inline-flex;align-items:center;min-height:48px}
.review-expand>.icon{transition:transform .15s}
.review-expand.is-expanded>.icon{transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.review-expand>.icon{transition:none}}
.attempt-request-card{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding:16px 20px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius-lg);background:var(--bg)}
.attempt-request-card--approved{border-left-color:var(--success)}
.attempt-request-card--declined{border-left-color:var(--line-strong)}
.attempt-request-card>.avatar{width:40px;height:40px;flex-shrink:0}
.attempt-request-card__body{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}
.attempt-request-card__body>strong{font-size:15px;font-weight:600}
.attempt-request-card__body>p{margin:0;font-size:13px;color:var(--ink-2)}
.attempt-request-card>.button-row{display:flex;flex-shrink:0;gap:8px}
.attempt-review:not(.is-expanded)>article:nth-of-type(n+6){display:none}
/* Тест: «Завершить тест» той же высоты, что «Назад» и «Далее» */
.question-navigator .btn--block{height:44px;min-height:44px}
/* Фильтры-селекты: своя стрелка с отступом 14px от правого края вместо системной, прижатой к рамке */
.filter-select{position:relative;display:inline-flex}
.filter-select>select{appearance:none;-webkit-appearance:none;padding-right:42px;background-image:none;cursor:pointer}
.filter-select::after{content:'';position:absolute;top:50%;right:14px;width:16px;height:16px;margin-top:-8px;background:var(--ink-2);pointer-events:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat}
.filter-select:hover::after{background:var(--ink)}
/* Админка, ДЗ: переписка и поле ввода помещаются в один экран под заголовком и текстом задания */
.admin-homework-thread{height:var(--thread-height,auto);max-height:none}
.panel-main:has(>.admin-homework-thread){padding-bottom:24px}
.admin-homework-thread>.admin-homework-chat{min-height:0}
.panel-main:has(>.admin-homework-thread)>.page-heading>div:first-child{flex:1;min-width:0}
.panel-main:has(>.admin-homework-thread)>.page-heading>.button-row{flex-wrap:nowrap;flex-shrink:0}
/* Админка, ДЗ: серый фон переписки, как в чатах слушателя; сообщения слушателя — белые карточки без рамки */
.admin-homework-chat{background:var(--surface);border-color:var(--surface)}
.admin-student-message .chat-message{border-color:var(--bg)}
.admin-student-message .chat-message .chat-attachment{background:var(--surface)}
.admin-student-message .avatar--initials{background:var(--bg)}

/* Required backend progress increments for the existing homework checklist. */
.unlock-card__fill--10{width:10%}
.unlock-card__fill--20{width:20%}
.unlock-card__fill--30{width:30%}
.unlock-card__fill--40{width:40%}
.unlock-card__fill--50{width:50%}
.unlock-card__fill--60{width:60%}
.unlock-card__fill--70{width:70%}
.unlock-card__fill--80{width:80%}
.unlock-card__fill--90{width:90%}
