@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap";body .rich-text-editor{display:grid;gap:0;min-width:0;width:100%;border:1px solid var(--line);border-radius:9px;background:var(--surface);overflow:hidden;font-weight:400}body .rich-text-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:5px 7px;border-bottom:1px solid var(--line);background:var(--background)}body .rich-text-editor.rich-text-editor .rich-text-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:28px;min-width:28px;height:28px;min-height:28px;padding:5px;border:0;border-radius:5px;background:transparent;color:var(--muted);box-shadow:none;font:inherit;font-size:11px;cursor:pointer}body .rich-text-editor .rich-text-toolbar button:hover:not(:disabled){background:var(--primary-soft);color:var(--primary)}body .rich-text-editor .rich-text-toolbar button:disabled{opacity:.4;cursor:default}body .rich-text-editor.rich-text-editor .rich-text-toolbar .rich-text-preview-toggle{width:auto;margin-left:auto}body .rich-text-editor.rich-text-editor>textarea{border:0!important;border-radius:0!important;margin:0;width:100%;box-shadow:none!important;padding:12px;font-family:inherit;font-weight:400}body .rich-text-editor:focus-within{border-color:var(--primary)}body .rich-text-editor button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}body .rich-text-editor .rich-text-preview{display:block;min-height:100px;padding:12px;color:var(--text);font-size:14px;line-height:1.7}body .formatted-text{white-space:normal;overflow-wrap:anywhere}body .formatted-text strong{font-weight:700;font-size:inherit;color:inherit}body .formatted-text em{font-style:italic}body .formatted-text u{text-underline-offset:3px}body .formatted-text code{font-family:JetBrains Mono,monospace;font-size:.9em;padding:1px 4px;border-radius:4px;background:var(--primary-soft)}body .project-milestone-form>.rich-text-editor{grid-column:1 / -1}@media(pointer:coarse){body .rich-text-editor.rich-text-editor .rich-text-toolbar button{min-width:36px;width:36px;height:36px}}.algorithm-lesson-page.algorithm-lesson--reading{gap:24px;min-width:0}.algorithm-lesson--reading .algorithm-lesson-toolbar{padding:0 2px}.algorithm-lesson--reading .algorithm-back-button{font-size:16px;font-weight:600}.algorithm-lesson-page.algorithm-lesson--reading .algorithm-lesson-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);align-items:flex-start;padding:clamp(24px,3vw,40px);gap:32px;min-height:0;border-radius:18px;background:radial-gradient(ellipse at 100% 0,var(--primary-soft),transparent 65%),var(--surface)}.lesson-hero-intro{display:flex;align-items:flex-start;gap:12px;min-width:0}.lesson-hero-copy{min-width:0;flex:1}.algorithm-lesson-page.algorithm-lesson--reading .section-kicker{font-size:14px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.algorithm-lesson-page.algorithm-lesson--reading .algorithm-lesson-hero p{max-width:75ch;margin-top:9px;font-size:16px;line-height:1.7}.lesson-hero-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px;margin-top:24px}.lesson-hero-bottom>span{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.lesson-hero-bottom .button{min-height:42px;padding:10px 16px;font-size:14px;box-shadow:none}.lesson-related{min-width:0;border-left:1px solid var(--line);padding-left:24px}.lesson-related h2{margin:7px 0 12px;color:var(--text);font-size:24px;line-height:1.3;font-weight:650;letter-spacing:-.025em}.lesson-related ul{display:grid;gap:4px;margin:0;padding:4px;list-style:none}.lesson-related button{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:9px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);text-align:left;font:inherit;font-size:13px;line-height:1.4;cursor:pointer}.lesson-related button span{flex:1;min-width:0}.lesson-related button svg{flex-shrink:0}.lesson-related button:hover:not(:disabled),.lesson-related button[aria-current=page]{color:var(--primary);background:var(--primary-soft)}.lesson-related button[aria-current=page]{border-color:var(--line);font-weight:700}.lesson-related button:disabled{opacity:.55;cursor:default}.lesson-related button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.algorithm-lesson-page.algorithm-lesson--reading .lesson-related .lesson-related-hint{margin-bottom:10px;font-size:12px}.lesson-study-layout{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,2fr);align-items:start;gap:22px;min-width:0}.algorithm-lesson--reading .algorithm-learning-grid{min-width:0}.algorithm-lesson-page.algorithm-lesson--reading :is(.algorithm-content-card,.algorithm-demo-card){padding:24px;border-radius:16px;min-width:0;gap:24px}.algorithm-lesson-page.algorithm-lesson--reading .algorithm-content-card{background:var(--surface-strong)}.algorithm-lesson-page.algorithm-lesson--reading .algorithm-section-heading{gap:12px}.algorithm-lesson-page.algorithm-lesson--reading :is(.algorithm-lesson-icon,.algorithm-heading-icon){width:36px;height:36px;flex-shrink:0;border-radius:10px}.algorithm-lesson-page.algorithm-lesson--reading :is(.algorithm-lesson-icon,.algorithm-heading-icon) svg{width:18px;height:18px}.algorithm-lesson-page.algorithm-lesson--reading :is(.algorithm-lesson-hero h1,.algorithm-section-heading h2){margin:5px 0 0;font-size:24px;font-weight:650;line-height:1.3;letter-spacing:-.025em}.algorithm-lesson-page.algorithm-lesson--reading .algorithm-section-heading p{margin-top:9px;font-size:16px;line-height:1.65}.algorithm-lesson-page.algorithm-lesson--reading .algorithm-principles{list-style:none;padding:0;gap:0;margin:22px 0 0}.algorithm-lesson-page.algorithm-lesson--reading .algorithm-principles li{display:flex;align-items:baseline;gap:12px;padding:16px 0;border-top:1px solid var(--line);font-size:17px;line-height:1.7}.lesson-principle-number{flex-shrink:0;color:var(--primary);font:500 14px/1.7 JetBrains Mono,monospace}.algorithm-lesson--reading .algorithm-demo-card{scroll-margin-top:24px}.algorithm-lesson--reading .algorithm-demo-card:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.algorithm-lesson--reading .algorithm-demo-layout{grid-template-columns:minmax(190px,.65fr) minmax(0,1.35fr);gap:18px;margin-top:24px}.algorithm-lesson--reading .algorithm-demo-layout>div{min-width:0}.algorithm-lesson--reading .algorithm-demo-layout>div:first-child{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);gap:16px}.algorithm-lesson--reading .algorithm-demo-input span{font-size:15px;font-weight:650}.algorithm-lesson--reading .algorithm-demo-input :is(input,select,textarea){background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px;font-size:17px}.algorithm-lesson--reading .algorithm-demo-input :is(input,select,textarea):focus-visible{outline:2px solid var(--primary);outline-offset:2px}.algorithm-lesson--reading .algorithm-demo-controls{gap:8px}.algorithm-lesson--reading .algorithm-demo-controls .button{display:inline-flex;justify-content:center;flex:1 1 auto;min-height:42px;white-space:normal;margin:0;padding:10px;font-size:15px;box-shadow:none}.algorithm-lesson--reading .algorithm-demo-controls .button--primary{flex-basis:100%}.algorithm-lesson--reading .sorting-code{overflow:hidden;border-radius:12px;border:1px solid var(--line);background:var(--surface-strong)}.algorithm-lesson--reading .sorting-code-heading{flex-wrap:wrap;gap:10px;padding:14px 16px;background:var(--surface)}.algorithm-lesson--reading .lesson-code-label{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.algorithm-lesson--reading .sorting-code pre{padding:20px 0;font-size:15px;line-height:1.9}.algorithm-lesson--reading .algorithm-execution-code{grid-template-rows:auto minmax(0,1fr) auto auto}.algorithm-code-language-switch button[aria-pressed=true]{background:var(--primary-soft);color:var(--primary)}.algorithm-lesson--reading .algorithm-code-language-switch{border:1px solid var(--line);border-radius:8px}.algorithm-lesson--reading .algorithm-code-language-switch button{min-height:32px;border-radius:5px;padding:5px 9px;font-size:14px}.lesson-execution-progress{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:14px 16px;border-top:1px solid var(--line);background:var(--surface);font-size:14px;color:var(--muted)}.lesson-execution-progress strong{font-weight:600;font-variant-numeric:tabular-nums}.lesson-execution-progress progress{display:block;width:100%;height:5px;border:0;border-radius:8px;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--line);accent-color:var(--primary)}.lesson-execution-progress progress::-webkit-progress-bar{background:var(--line)}.lesson-execution-progress progress::-webkit-progress-value{background:var(--primary);border-radius:8px}.lesson-execution-progress progress::-moz-progress-bar{background:var(--primary);border-radius:8px}.algorithm-lesson--reading .algorithm-execution-status{gap:7px;padding:18px;border-left:0;background:var(--primary-soft)}.algorithm-lesson--reading .algorithm-execution-status strong{font-size:16px}.algorithm-lesson--reading .algorithm-execution-status small{overflow-wrap:anywhere;font-size:15px;line-height:1.7}.algorithm-lesson--reading .algorithm-execution-status.is-finished{background:color-mix(in srgb,var(--success) 12%,var(--surface))}.algorithm-lesson--reading .algorithm-execution-status.is-finished strong{color:var(--success)}@media(max-width:1200px){.lesson-study-layout{grid-template-columns:minmax(0,1fr)}.algorithm-lesson--reading .algorithm-demo-layout{grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr)}}@media(max-width:760px){.algorithm-lesson--reading .algorithm-demo-layout{grid-template-columns:minmax(0,1fr)}.algorithm-lesson-page.algorithm-lesson--reading .algorithm-lesson-hero{grid-template-columns:minmax(0,1fr);padding:22px;gap:22px}.lesson-hero-intro{flex-direction:column;gap:16px}.lesson-related{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}.algorithm-lesson-page.algorithm-lesson--reading :is(.algorithm-content-card,.algorithm-demo-card){padding:18px}.algorithm-lesson--reading .algorithm-lesson-toolbar{flex-wrap:wrap}.algorithm-lesson--reading .sorting-code pre{font-size:15px}.lesson-hero-bottom{align-items:flex-start;flex-direction:column}}.code-library-page .code-library-hero--overview{position:relative;overflow:hidden;align-items:center;padding:clamp(24px,3vw,44px);border:1px solid var(--line);border-radius:20px;background:radial-gradient(ellipse at 100% 0%,var(--primary-soft),transparent 65%),var(--surface)}.code-library-page .code-library-hero--overview h1{margin:12px 0 14px;font-size:clamp(30px,3.2vw,44px)}.code-library-page .code-library-hero--overview p{max-width:630px;font-size:16px;line-height:1.7}.code-library-hero-meta{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px;color:var(--muted);font-size:12px;font-weight:600}.code-library-hero-meta span{display:inline-flex;align-items:center;gap:8px}.code-library-page .code-library-hero-actions{flex-shrink:0}.code-library-directory{display:grid;gap:30px;min-width:0}.code-library-directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.code-library-directory-toolbar h2{margin:6px 0 0;font-size:clamp(20px,2vw,25px);letter-spacing:-.03em}.code-library-topic-search{display:flex;align-items:center;gap:10px;width:min(100%,350px);padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--muted)}.code-library-topic-search input{width:100%;min-width:0;height:46px;border:0;outline:none;background:transparent;color:var(--text);font:inherit;font-size:14px}.code-library-topic-search:focus-within{outline:2px solid var(--primary);outline-offset:3px}.code-library-topic-group{--topic-accent: var(--primary);min-width:0}.code-library-topic-group--technology{--topic-accent: var(--success)}.code-library-topic-group--practice{--topic-accent: var(--warning)}.code-library-group-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin-bottom:14px}.code-library-group-heading h3{margin:0;font-size:15px;font-weight:700}.code-library-group-heading p{margin:0;color:var(--muted);font-size:13px}.code-library-page .code-library-section-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.code-library-page .code-library-section-card{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;min-width:0;min-height:232px;padding:22px;text-align:left;font:inherit;color:var(--text);border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 3px 12px color-mix(in srgb,var(--text) 3%,transparent);cursor:pointer;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.code-library-card-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:20px}.code-library-page .code-library-section-icon{width:40px;height:40px;border-radius:12px;color:var(--topic-accent);background:color-mix(in srgb,var(--topic-accent) 10%,var(--surface))}.code-library-card-count{padding:5px 8px;border-radius:6px;background:var(--surface-high);color:var(--muted);font-size:11px;font-weight:600}.has-content .code-library-card-count{color:var(--primary);background:var(--primary-soft)}.code-library-card-title{font-size:17px;font-weight:750;line-height:1.35;letter-spacing:-.025em}.code-library-card-description{margin:9px 0 20px;color:var(--muted);font-size:13px;line-height:1.65}.code-library-page .code-library-section-card-footer{width:100%;margin-top:auto;padding-top:14px;border-top:1px solid var(--line);justify-content:space-between;color:var(--primary);font-size:12px;font-weight:600}.code-library-section-card-footer svg{transition:transform .18s ease}.code-library-page .code-library-section-card:hover{border-color:var(--topic-accent);transform:translateY(-3px);box-shadow:var(--shadow-card)}.code-library-page .code-library-section-card:hover .code-library-section-card-footer svg{transform:translate(3px)}.code-library-page .code-library-section-card:focus-visible,.code-library-page .code-library-tabs button:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.code-library-page .code-library-tabs{display:flex;flex-wrap:wrap;overflow:visible;padding:5px 4px 12px;gap:10px}.code-library-page .code-library-tabs button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;padding:0;flex-shrink:0;border-radius:14px}.code-library-page .code-library-tabs button.is-active{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.code-library-nav-tooltip{position:absolute;z-index:10;top:calc(100% + 8px);left:0;width:max-content;max-width:180px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-card);font-size:12px;font-weight:600;line-height:1.4;text-align:left;visibility:hidden;opacity:0;pointer-events:none}.code-library-tabs button:hover .code-library-nav-tooltip,.code-library-tabs button:focus-visible .code-library-nav-tooltip{visibility:visible;opacity:1}.code-library-tabs button:last-child .code-library-nav-tooltip{left:auto;right:0}.code-library-page .code-library-browser{border-top:1px solid var(--line);padding-top:28px}@media(max-width:1200px){.code-library-page .code-library-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.code-library-page .code-library-tabs{gap:8px}.code-library-page .code-library-tabs button{width:52px;height:52px;border-radius:12px}.code-library-nav-tooltip{max-width:140px}.code-library-page .code-library-hero--overview{padding:24px 20px;border-radius:14px}.code-library-directory-toolbar{align-items:stretch;flex-direction:column}.code-library-topic-search{width:100%}.code-library-page .code-library-section-grid{grid-template-columns:minmax(0,1fr);gap:10px}.code-library-page .code-library-section-card{padding:20px;min-height:0}.code-library-card-top{margin-bottom:14px}.code-library-directory{gap:26px}}@media(prefers-reduced-motion:reduce){.code-library-page .code-library-section-card,.code-library-section-card-footer svg{transition:none}.code-library-page .code-library-section-card:hover,.code-library-page .code-library-section-card:hover .code-library-section-card-footer svg{transform:none}}body .journey-student-detail.journey-student-detail--dialog{width:min(100%,1160px);padding:28px;border-radius:16px;border:1px solid var(--line);box-shadow:0 24px 80px #0000002e;gap:22px}body .journey-student-detail .journey-student-detail-close{top:16px;right:16px;width:34px;height:34px;min-height:34px;border-radius:8px;background:var(--background)}body .journey-student-detail .journey-student-detail-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:24px;padding:6px 44px 22px 0;border-bottom:1px solid var(--line)}body .journey-student-detail .journey-student-detail-title h2{font-size:24px;font-weight:650;letter-spacing:-.03em;line-height:1.25;overflow-wrap:anywhere}body .journey-student-detail .journey-student-detail-title p{font-size:12px;line-height:1.6}body .journey-student-detail .section-kicker{font-size:11px;font-weight:500;color:var(--muted)}body .journey-student-detail .journey-progress{gap:9px}body .journey-student-detail .journey-progress>div:first-child{font-size:12px;flex-wrap:wrap;gap:5px}body .journey-student-detail .journey-progress small{font-size:11px}body .journey-student-detail .journey-progress-track{height:7px;border-radius:8px}body .journey-student-detail .journey-detail-xp{min-width:72px;min-height:72px;padding:12px;border-radius:12px;background:var(--primary-soft);color:var(--primary);box-shadow:none}body .journey-student-detail .journey-detail-xp strong{font-size:27px;line-height:1.1;font-weight:650}body .journey-student-detail .journey-detail-xp span{font-size:11px}body .journey-student-detail .journey-student-detail-body{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:20px}body .journey-student-detail .journey-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}body .journey-student-detail .journey-stat-card{display:grid;grid-template-columns:1fr auto;align-content:start;gap:12px 6px;min-height:104px;padding:14px;border:1px solid var(--line);border-radius:10px;box-shadow:none;background:var(--surface)}body .journey-student-detail .journey-stat-card svg{grid-row:1;grid-column:2;width:17px;height:17px;color:var(--primary)}body .journey-student-detail .journey-stat-card strong{grid-row:1;grid-column:1;font-size:24px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}body .journey-student-detail .journey-stat-card>span{grid-column:1 / -1;font-size:11px;font-weight:500;line-height:1.5;color:var(--muted)}body .journey-student-detail .journey-student-detail-history>.journey-card{min-height:0;height:auto;padding:18px;border:1px solid var(--line);border-radius:12px;box-shadow:none;gap:18px}body .journey-student-detail .journey-section-heading{gap:12px;align-items:center}body .journey-student-detail .journey-section-heading h2{font-size:15px;font-weight:600;margin-top:5px}body .journey-student-detail .journey-section-heading>svg{width:18px;color:var(--muted)}body .journey-student-detail .journey-empty{padding:24px 16px;border:0;border-radius:8px;background:var(--background);font-size:12px;line-height:1.7}body .journey-student-detail .journey-event-row{padding:12px 0;gap:10px}body .journey-student-detail .journey-event-row strong{font-size:12px;font-weight:500}body .journey-student-detail .journey-event-row small{font-size:11px}body .journey-student-detail .journey-event-row>span{font-size:11px;padding:5px 7px}body .journey-student-detail .journey-detail-actions{gap:14px}body .journey-student-detail :is(.journey-mentor-control,.journey-manual-xp){padding:18px;gap:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}body .journey-student-detail :is(.journey-mentor-control,.journey-manual-xp) h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:14px;font-weight:600}body .journey-student-detail h3 svg{color:var(--primary);flex-shrink:0}body .journey-student-detail label>span{font-size:11px;font-weight:500;text-transform:none;letter-spacing:0}body .journey-student-detail :is(input,textarea){padding:10px 12px;font-size:13px;font-weight:400;border-radius:8px;min-height:40px;line-height:1.5}body .journey-student-detail textarea{min-height:94px}body .journey-student-detail .journey-input-with-suffix strong{font-size:11px;font-weight:500}body .journey-student-detail .button{min-height:38px;font-size:12px;font-weight:500;border-radius:8px;padding:9px 12px;box-shadow:none}body .journey-student-detail .journey-mentor-control>div:last-child{display:flex;flex-wrap:wrap;gap:8px}@media(max-width:900px){body .journey-student-detail .journey-student-detail-body{grid-template-columns:minmax(0,1fr)}body .journey-student-detail .journey-student-detail-hero{grid-template-columns:minmax(0,1fr) auto;gap:16px}body .journey-student-detail .journey-student-detail-hero .journey-progress{grid-row:2;grid-column:1 / -1}body .journey-student-detail .journey-detail-xp{grid-column:2;grid-row:1}}@media(max-width:600px){body .journey-student-detail.journey-student-detail--dialog{padding:20px 16px;border-radius:12px}body .journey-student-detail .journey-student-detail-title h2{font-size:20px}body .journey-student-detail .journey-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body .journey-student-detail .journey-detail-actions{grid-template-columns:minmax(0,1fr)}body .journey-student-detail :is(input,textarea){font-size:16px}}body .programmer-journey-page.journey-teacher-overview{gap:22px}body .journey-teacher-overview .journey-page-heading{padding:0;align-items:center;gap:20px}.journey-teacher-overview .journey-eyebrow{color:var(--primary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}body .journey-teacher-overview .journey-page-heading h1{margin:8px 0;font-size:clamp(25px,3vw,32px);font-weight:650;letter-spacing:-.035em;line-height:1.2}body .journey-teacher-overview .journey-page-heading p{margin:0;font-size:14px;line-height:1.6;color:var(--muted)}body .journey-teacher-overview .journey-class-picker{gap:14px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;box-shadow:none;background:var(--surface)}.journey-teacher-overview .journey-picker-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.journey-teacher-overview .journey-picker-heading>span{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:600}.journey-teacher-overview .journey-picker-heading small{font-size:12px;color:var(--muted)}body .journey-teacher-overview .journey-class-tabs{flex-wrap:wrap;gap:8px;overflow:visible;padding:0}body .journey-teacher-overview .journey-class-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:9px;flex:0 1 auto;min-height:40px;padding:9px 14px;border-radius:8px;border-color:var(--line);background:var(--surface);box-shadow:none;transform:none}body .journey-teacher-overview .journey-class-tabs button>span{font-size:13px;font-weight:500;color:inherit}body .journey-teacher-overview .journey-class-tabs button.is-active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}body .journey-teacher-overview .journey-class-tabs button.is-active>span{font-weight:650}body .journey-teacher-overview .journey-class-tabs button:hover{background:var(--primary-soft);border-color:var(--primary)}body .journey-teacher-overview .journey-class-metrics{gap:0;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}body .journey-teacher-overview .journey-metric-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:20px 24px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}body .journey-teacher-overview .journey-metric-card:last-child{border-right:0}body .journey-teacher-overview .journey-metric-card svg{grid-column:2;grid-row:1;width:17px;height:17px;color:var(--muted)}body .journey-teacher-overview .journey-metric-card>span{grid-column:1;grid-row:1;color:var(--muted);font-size:12px;font-weight:500}body .journey-teacher-overview .journey-metric-card>strong{grid-column:1 / -1;font-size:28px;line-height:1.1;letter-spacing:-.035em;font-weight:650;font-variant-numeric:tabular-nums}body .journey-teacher-overview .journey-metric-card--attention{background:color-mix(in srgb,var(--warning) 7%,var(--surface))}body .journey-teacher-overview .journey-metric-card--attention svg{color:var(--warning)}body .journey-teacher-overview>.journey-card,body .journey-teacher-overview>.journey-two-column>.journey-card{padding:22px;border:1px solid var(--line);border-radius:12px;box-shadow:none}body .journey-teacher-overview .journey-section-heading h2{display:flex;align-items:center;gap:9px;font-size:18px;font-weight:650;letter-spacing:-.02em}body .journey-teacher-overview .section-kicker{font-size:11px;font-weight:500;color:var(--muted)}.journey-teacher-overview .journey-student-count{display:inline-grid;place-items:center;min-width:25px;height:23px;padding:0 6px;border-radius:6px;color:var(--primary);background:var(--primary-soft);font-size:11px;font-weight:600}body .journey-teacher-overview .button{min-height:38px;padding:9px 12px;border-radius:8px;font-size:12px;font-weight:600;box-shadow:none}body .journey-teacher-overview .journey-certificate-schedule label>span{font-size:14px;font-weight:500;text-transform:none}body .journey-teacher-overview .journey-certificate-schedule input{min-height:42px;padding:8px 10px;font-size:16px}body .journey-teacher-overview .journey-certificate-schedule .button{min-height:42px;font-size:16px}body .journey-teacher-overview .journey-table th{padding:14px 12px;font-size:16px;line-height:1.5;font-weight:600;text-transform:none;color:var(--muted);background:var(--background)}body .journey-teacher-overview .journey-table td{padding:16px 12px;font-size:16px;line-height:1.5}body .journey-teacher-overview .journey-table td button{font-size:16px;line-height:1.5;font-weight:500}body .journey-teacher-overview .journey-student-identity{display:flex;align-items:center;gap:12px;text-align:left}body .journey-teacher-overview .journey-student-identity-text{display:grid;gap:2px}body .journey-teacher-overview .journey-student-identity-text strong{color:var(--text);font-size:16px;font-weight:700}body .journey-teacher-overview .journey-student-identity-text small{color:var(--muted);font-size:14px;font-weight:400;overflow-wrap:anywhere}body .journey-teacher-overview .journey-table-progress{height:6px;border-radius:8px}body .journey-teacher-overview :is(button,input):focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media(max-width:800px){body .journey-teacher-overview .journey-class-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}body .journey-teacher-overview .journey-metric-card:nth-child(2){border-right:0}body .journey-teacher-overview .journey-metric-card:nth-child(-n+2){border-bottom:1px solid var(--line)}body .journey-teacher-overview .journey-section-heading{flex-wrap:wrap;gap:16px}}@media(max-width:520px){body .journey-teacher-overview .journey-page-heading{align-items:flex-start;flex-direction:column}body .journey-teacher-overview .journey-metric-card,body .journey-teacher-overview .journey-class-picker{padding:16px}body .journey-teacher-overview>.journey-card{padding:16px}}body .management-page.management-page--modern{gap:22px}.management-page--modern .management-service-actions{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:12px 16px}.management-page--modern .management-service-actions summary{cursor:pointer;font-size:12px;color:var(--muted)}.management-page--modern .management-service-actions summary>span{display:inline-flex;gap:8px;align-items:center;color:var(--text);font-weight:500;vertical-align:middle}.management-page--modern .management-service-actions summary small{margin-left:14px;font-size:11px}body .management-page--modern .management-page-actions{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line);justify-content:flex-start;gap:10px}body .management-page--modern .management-backup-panel{padding:22px;border:1px solid var(--line);border-radius:14px;box-shadow:none;gap:20px}body .management-page--modern .management-backup-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:24px}.management-page--modern .management-backup-block{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}.management-page--modern .management-backup-block+.management-backup-block{border-left:1px solid var(--line);padding-left:24px}.management-page--modern .management-backup-block h3{margin:0 0 5px;font-size:13px;font-weight:600}.management-page--modern .management-backup-block p{margin:0;font-size:12px;line-height:1.6;color:var(--muted)}body .management-page--modern .backup-restore-actions{justify-content:flex-start;flex-wrap:wrap;gap:8px;min-width:0;max-width:100%}body .management-page--modern .backup-file-control{max-width:100%}.management-page--modern .backup-file-control>span{max-width:240px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.management-page--modern .backup-file-control:focus-within{outline:2px solid var(--primary);outline-offset:3px}body .management-page--modern .button{min-height:38px;padding:9px 12px;border-radius:8px;font-size:12px;font-weight:600;box-shadow:none}body .management-page--modern .section-heading{margin-bottom:0}body .management-page--modern .section-heading h2{font-size:17px;font-weight:650;letter-spacing:-.015em;gap:10px}.management-page--modern .section-heading h2 svg{color:var(--primary);width:19px;height:19px}body .management-page--modern .attention-count{font-size:11px;font-weight:500;border-radius:6px;padding:4px 8px;background:var(--primary-soft);color:var(--primary)}body .management-page--modern>.metrics-row{gap:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}body .management-page--modern>.metrics-row>.metric-card{min-height:0;gap:8px;padding:18px 22px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}body .management-page--modern>.metrics-row>.metric-card:last-child{border-right:0}body .management-page--modern>.metrics-row>.metric-card>span{color:var(--muted);font-size:12px;font-weight:500;letter-spacing:0}body .management-page--modern>.metrics-row>.metric-card strong{font-size:28px;line-height:1.1;font-weight:650;letter-spacing:-.03em;font-variant-numeric:tabular-nums}body .management-page--modern>.metrics-row>.metric-card small{font-size:11px;color:var(--muted);font-weight:400}body .management-page--modern .management-grid{gap:20px}body .management-page--modern .management-create-form{padding:22px;gap:18px;border:1px solid var(--line);border-radius:14px;box-shadow:none}body .management-page--modern .management-form label{min-width:0;font-size:12px;font-weight:600;gap:7px}body .management-page--modern .management-form :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=file]){min-width:0;min-height:42px;padding:10px 12px;font-size:14px;line-height:1.5;font-weight:400;border-radius:8px;box-shadow:none}body .management-page--modern .management-form .settings-hint{font-size:12px;line-height:1.6;font-weight:400}.teacher-permission-editor{grid-column:1 / -1;width:100%;padding:20px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary-soft) 68%,var(--surface)),var(--surface))}.teacher-management-identity{display:grid;gap:11px;width:100%;min-width:0;padding:11px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.teacher-management-identity:hover{border-color:color-mix(in srgb,var(--primary) 28%,var(--line));background:var(--primary-soft)}.teacher-management-identity:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.teacher-management-identity--static{cursor:default}.teacher-management-identity--static:hover{border-color:transparent;background:transparent}.teacher-management-identity-copy{display:grid;gap:4px;min-width:0}.teacher-management-identity-copy strong,.teacher-management-identity-copy small{overflow-wrap:anywhere}.teacher-management-open-hint{display:flex;align-items:center;gap:7px;color:var(--primary);font-size:11px;font-weight:750}.teacher-management-open-hint svg:last-child{margin-left:auto;transition:transform .18s ease}.teacher-management-open-hint svg:last-child.is-open{transform:rotate(180deg)}.teacher-delete-row--expanded{border-color:color-mix(in srgb,var(--primary) 38%,var(--line));box-shadow:0 10px 28px #1c487014}.teacher-permission-editor-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.teacher-permission-editor-heading h3{margin:3px 0 5px;font-size:18px}.teacher-permission-editor-heading p{margin:0;color:var(--muted);font-size:12px}.teacher-email-notification-toggle{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;margin:0 0 14px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.teacher-email-notification-toggle:hover{border-color:color-mix(in srgb,var(--primary) 34%,var(--line))}.teacher-email-notification-toggle.is-enabled{border-color:color-mix(in srgb,var(--primary) 42%,var(--line));background:color-mix(in srgb,var(--primary-soft) 56%,var(--surface));box-shadow:0 5px 16px #1c48700f}.teacher-email-notification-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:var(--background);color:var(--muted)}.teacher-email-notification-toggle.is-enabled .teacher-email-notification-icon{background:var(--primary);color:#fff}.teacher-email-notification-toggle>span:nth-child(2){display:grid;gap:3px}.teacher-email-notification-toggle strong{font-size:12px}.teacher-email-notification-toggle small{color:var(--muted);font-size:11px;font-weight:400;line-height:1.45}.teacher-email-notification-state{padding:5px 8px;border-radius:999px;background:var(--background);color:var(--muted);font-size:10px;font-weight:750}.teacher-email-notification-toggle.is-enabled .teacher-email-notification-state{background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary)}.teacher-permission-bulk-actions{display:flex;flex-wrap:wrap;gap:6px}.teacher-permission-bulk-actions button{min-height:32px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--primary);font:inherit;font-size:11px;font-weight:700;cursor:pointer}.teacher-permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.teacher-permission-group{padding:14px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--surface) 92%,transparent)}.teacher-permission-group h4{margin:0 0 10px;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.055em;text-transform:uppercase}.teacher-permission-group>div{display:grid;gap:7px}body .management-page--modern .teacher-permission-group label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:9px;padding:10px;border:1px solid transparent;border-radius:9px;background:var(--background);cursor:pointer}body .management-page--modern .teacher-permission-group label.is-selected{border-color:color-mix(in srgb,var(--primary) 38%,var(--line));background:var(--surface);box-shadow:0 2px 8px #1c48700f}.teacher-permission-group input{width:17px;height:17px;margin:2px 0 0;accent-color:var(--primary)}.teacher-permission-group label span{display:grid;gap:3px}.teacher-permission-group label strong{color:var(--text);font-size:12px}.teacher-permission-group label small{color:var(--muted);font-size:11px;font-weight:400;line-height:1.45}.teacher-permission-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.teacher-permission-editor-footer strong{color:var(--text);font-size:16px}.email-notification-panel{gap:18px;padding:22px;overflow:hidden}.email-notification-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px}.email-notification-heading h2{margin:2px 0 4px;font-size:17px}.email-notification-heading p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.email-notification-hero-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:var(--primary-soft);color:var(--primary)}.email-notification-hero-icon.is-active{background:var(--primary);color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--primary) 25%,transparent)}.email-notification-status{padding:6px 10px;border-radius:999px;background:var(--background);color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.email-notification-status.is-active{background:color-mix(in srgb,#15966f 13%,var(--surface));color:#087857}.email-notification-overview{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:12px}.email-notification-provider,.email-notification-control-card{display:flex;align-items:center;gap:12px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--background)}.email-notification-provider-icon{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:9px;background:var(--surface);color:var(--primary)}.email-notification-provider>div,.email-notification-control-card>div{display:grid;flex:1;gap:3px;min-width:0}.email-notification-provider strong,.email-notification-control-card strong{overflow-wrap:anywhere;font-size:12px}.email-notification-provider span,.email-notification-control-card span{color:var(--muted);font-size:11px;line-height:1.45}.email-notification-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;border-top:1px solid var(--line)}.email-notification-queue,.email-notification-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.email-notification-queue span{padding:6px 9px;border-radius:7px;background:var(--background);color:var(--muted);font-size:10px}.email-notification-queue strong{color:var(--text);font-variant-numeric:tabular-nums}body .management-page--modern :is(input,select,textarea,button,summary):focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media(max-width:760px){body .management-page--modern .management-backup-actions{grid-template-columns:minmax(0,1fr);gap:20px}.management-page--modern .management-backup-block+.management-backup-block{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:20px}body .management-page--modern .management-grid{grid-template-columns:minmax(0,1fr)}body .management-page--modern>.metrics-row{grid-template-columns:repeat(2,minmax(0,1fr))}body .management-page--modern>.metrics-row>.metric-card:nth-child(2){border-right:0}body .management-page--modern>.metrics-row>.metric-card:nth-child(-n+2){border-bottom:1px solid var(--line)}.teacher-permission-groups{grid-template-columns:minmax(0,1fr)}.teacher-permission-editor-heading,.teacher-permission-editor-footer{align-items:stretch;flex-direction:column}.email-notification-overview{grid-template-columns:minmax(0,1fr)}.email-notification-footer{align-items:stretch;flex-direction:column}}@media(max-width:500px){.management-page--modern .management-service-actions summary small{display:block;margin:8px 0 0 18px}body .management-page--modern .management-create-form,body .management-page--modern .management-backup-panel{padding:16px}body .management-page--modern .management-form :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=file]){font-size:16px}.email-notification-heading{grid-template-columns:auto minmax(0,1fr)}.email-notification-status{grid-column:1 / -1;justify-self:start}.email-notification-provider,.email-notification-control-card{align-items:flex-start;flex-wrap:wrap}.email-notification-provider .button,.email-notification-control-card .button{width:100%}.teacher-email-notification-toggle{grid-template-columns:auto minmax(0,1fr)}.teacher-email-notification-state{grid-column:2;justify-self:start}}body .subject-page{max-width:1120px;width:100%;margin-inline:auto;gap:24px}body .subject-page .subject-page-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:4px 0;border:0;background:transparent;box-shadow:none}body .subject-page .subject-page-hero h1{margin:8px 0;font-size:clamp(26px,3vw,34px);font-weight:650;letter-spacing:-.035em;line-height:1.2}body .subject-page .subject-page-hero p{margin:0;font-size:14px;line-height:1.6;color:var(--muted)}body .subject-page .section-kicker{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}body .subject-page .attention-count{padding:5px 9px;border-radius:6px;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:500;white-space:nowrap}body .subject-page .subject-management-panel{border:0;background:transparent;padding:0;gap:24px;box-shadow:none}body .subject-page .subject-create-form{padding:24px;gap:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:none}body .subject-page .subject-create-heading h2{margin:0 0 6px;font-size:18px;font-weight:650;letter-spacing:-.02em}body .subject-page .subject-create-heading p{margin:0;font-size:12px;line-height:1.6;color:var(--muted)}body .subject-page .subject-create-grid{grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);gap:24px;align-items:end}body .subject-page .subject-name-field>span,body .subject-page .subject-option-label{font-size:12px;font-weight:600}body .subject-page .subject-option-label small{font-size:11px;font-weight:400}body .subject-page .subject-name-field input{min-width:0;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--surface);font:inherit;font-size:14px;box-shadow:none}body .subject-page .subject-grade-options{gap:6px}body .subject-page .subject-grade-options label{flex:1;min-height:42px;padding:8px 10px;justify-content:center;gap:4px;border-radius:8px;box-shadow:none}body .subject-page .subject-grade-options label span{font-size:14px;font-weight:600}body .subject-page .subject-grade-options label small{font-size:10px;font-weight:400}body .subject-page .subject-teacher-options label{min-height:40px;padding:7px 10px;border-radius:8px;box-shadow:none}body .subject-page .subject-teacher-options label strong{font-size:12px;font-weight:500}body .subject-page .subject-teacher-avatar{width:26px;height:26px;border-radius:7px;font-size:11px}body .subject-page .subject-create-actions{padding-top:16px;margin-top:0}body .subject-page .button{min-height:38px;padding:9px 13px;border-radius:8px;font-size:12px;font-weight:600;box-shadow:none}body .subject-page .subject-list-heading{align-items:center;gap:16px;padding:4px 0 0;border:0}body .subject-page .subject-list-heading h2{margin:0;font-size:17px;font-weight:600}body .subject-page .subject-list-heading p{margin:0;max-width:440px;color:var(--muted);font-size:12px;line-height:1.6}body .subject-page .subject-card-list{gap:16px}body .subject-page .subject-card{padding:22px;gap:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:none}body .subject-page .subject-card:hover{box-shadow:none;border-color:var(--line)}body .subject-page .subject-card-icon{width:36px;height:36px;border-radius:9px;background:var(--primary-soft)}body .subject-page .subject-card-title>strong{font-size:15px;font-weight:600}body .subject-page .subject-card-title>span{font-size:9px;font-weight:500;border-radius:5px;padding:4px 7px}body .subject-page .subject-card-content>small{font-size:11px;font-weight:400}body .subject-page .subject-card-assignment{gap:16px;padding-top:16px}body .subject-page .subject-card-assignment>div{padding:12px;border-radius:8px;background:var(--background)}body .subject-page .subject-all-teachers{font-size:12px;font-weight:500}body .subject-page .subject-editor-settings{gap:14px}body .subject-page .subject-editor-settings-heading small{font-size:11px;font-weight:400}body .subject-page .subject-editor-grade-tabs button{min-height:34px;font-size:11px;padding:7px 10px;font-weight:500;border-radius:7px;box-shadow:none}body .subject-page .subject-editor-options label{min-height:36px;padding:8px 10px;border-radius:7px;font-size:12px;font-weight:500;box-shadow:none}body .subject-page :is(input,button):focus-visible,body .subject-page label:focus-within{outline:2px solid var(--primary);outline-offset:3px}@media(max-width:700px){body .subject-page .subject-create-grid{grid-template-columns:minmax(0,1fr);gap:18px}body .subject-page .subject-card-assignment{grid-template-columns:minmax(0,1fr)}body .subject-page .subject-list-heading{flex-direction:column;align-items:flex-start;gap:6px}body .subject-page .subject-create-form,body .subject-page .subject-card{padding:18px}body .subject-page .subject-name-field input{font-size:16px}}.code-feedback{min-width:0}.code-feedback-toolbar,.code-feedback-legend{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border-bottom:1px solid var(--line);font-size:13px}.code-feedback-toolbar button{border:1px solid var(--line);border-radius:8px;padding:9px 12px;background:var(--surface);color:var(--primary);cursor:pointer;font:inherit;font-weight:700}.code-feedback-toolbar button[aria-pressed=true]{background:var(--primary-soft);border-color:var(--primary)}.code-feedback-added{color:#186448}.code-feedback-removed{color:#9a303b}.code-feedback .code-feedback-hint{margin:0;padding:12px;color:var(--muted);font-size:13px;line-height:1.6}.code-feedback-editor{height:350px;min-width:0}.code-feedback-diff{overflow-x:auto;padding:12px 0;font:14px/1.7 JetBrains Mono,Consolas,monospace}.code-feedback-line{display:grid;grid-template-columns:38px 22px 1fr;min-width:max-content;padding:2px 12px 2px 0}.code-feedback-line code{white-space:pre;font:inherit;-moz-tab-size:4;tab-size:4}.code-feedback-number{text-align:right;padding-right:10px;color:var(--muted);-webkit-user-select:none;user-select:none}.code-feedback-line--added{color:#186448;background:#e5f4eb}.code-feedback-line--removed{color:#9a303b;background:#fcebed}.monaco-editor .teacher-code-addition{background:#269c652b}.monaco-editor .teacher-code-marker{border-left:3px solid #269c65}.student-code-review{display:grid;gap:18px;padding:20px;min-width:0}.student-code-review article{min-width:0;border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--surface)}.student-code-review pre{overflow:auto;padding:16px;white-space:pre;font-size:14px}.student-code-review .code-feedback{border:1px solid var(--line);border-radius:10px;overflow:hidden}[data-theme=dark] .code-feedback-line--added{background:#183d31;color:#a3e8be}[data-theme=dark] .code-feedback-line--removed{background:#49252e;color:#ffc0c5}[data-theme=dark] .code-feedback-added{color:#a3e8be}[data-theme=dark] .code-feedback-removed{color:#ffc0c5}body .exam-start-page{width:100%;max-width:1080px;margin-inline:auto;gap:20px}body .exam-start-page .exam-start-hero{padding:8px 0 22px;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;background:transparent;grid-template-columns:42px minmax(0,1fr);gap:16px;align-items:start}body .exam-start-page .exam-start-hero__icon{width:42px;height:42px;border-radius:11px;margin-top:4px}body .exam-start-page .exam-start-hero__icon svg{width:22px;height:22px}body .exam-start-page .exam-start-hero__copy{gap:10px}body .exam-start-page .section-kicker{color:var(--muted);font-size:12px;font-weight:500;letter-spacing:0}body .exam-start-page .exam-start-hero h1{font-size:clamp(24px,3vw,30px);font-weight:650;line-height:1.3;letter-spacing:-.025em}body .exam-start-page .exam-start-hero p{max-width:900px;color:var(--text);font-size:14px;font-weight:400;line-height:1.7}body .exam-start-page .exam-start-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}body .exam-start-page .exam-start-info-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:10px;padding:18px 20px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}body .exam-start-page .exam-start-info-card:last-child{border-right:0}body .exam-start-page .exam-start-info-card>svg{grid-column:2;grid-row:1;width:17px;height:17px;color:var(--muted)}body .exam-start-page .exam-start-info-card>span{grid-column:1;grid-row:1;font-size:13px;font-weight:400;color:var(--muted)}body .exam-start-page .exam-start-info-card>strong{grid-column:1 / -1;font-size:23px;font-weight:600;line-height:1.3;font-variant-numeric:tabular-nums;letter-spacing:-.02em}body .exam-start-page .exam-start-info-card:last-child>strong{font-size:17px;line-height:1.65}body .exam-start-page .exam-start-panel{padding:22px;gap:16px;border:1px solid var(--line);border-radius:12px;box-shadow:none}body .exam-start-page .exam-start-panel h2{margin-top:5px;font-size:18px;font-weight:600;letter-spacing:-.015em;line-height:1.4}body .exam-start-page .exam-start-grading{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}body .exam-start-page .exam-start-grade-chip{display:flex;align-items:center;gap:10px;padding:12px;border:0;border-radius:8px;background:var(--background)}body .exam-start-page .exam-start-grade-chip>strong{width:30px;height:30px;min-width:30px;font-size:16px;font-weight:600;border-radius:7px;background:var(--surface);color:var(--text)}body .exam-start-page .exam-start-grade-chip>span{display:grid;gap:4px;min-width:0}body .exam-start-page .exam-start-grade-chip>span>span{font-size:13px;font-weight:500;color:var(--text)}body .exam-start-page .exam-start-grade-chip small{font-size:12px;font-weight:400;color:var(--muted)}body .exam-start-page .exam-start-panel--rules{grid-template-columns:20px minmax(0,1fr);align-items:start;gap:12px;padding:18px 20px;background:color-mix(in srgb,var(--warning) 5%,var(--surface));border-color:color-mix(in srgb,var(--warning) 20%,var(--line))}body .exam-start-page .exam-start-panel--rules>svg{width:19px;height:19px;margin-top:2px}body .exam-start-page .exam-start-panel--rules h2{font-size:16px;margin:4px 0 6px}body .exam-start-page .exam-start-panel--rules p{font-size:14px;font-weight:400;line-height:1.65}body .exam-start-page .exam-start-actions{justify-content:space-between;gap:12px;padding-top:4px}body .exam-start-page .exam-start-actions .button{min-height:44px;padding:11px 18px;font-size:14px;font-weight:500;border-radius:8px;box-shadow:none}body .exam-start-page .exam-start-button{min-width:180px;letter-spacing:0;text-transform:none}body .exam-start-page button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media(max-width:800px){body .exam-start-page .exam-start-grading{grid-template-columns:repeat(3,minmax(0,1fr))}body .exam-start-page .exam-start-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body .exam-start-page .exam-start-info-card:nth-child(2){border-right:0}body .exam-start-page .exam-start-info-card:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media(max-width:500px){body .exam-start-page .exam-start-grading{grid-template-columns:repeat(2,minmax(0,1fr))}body .exam-start-page .exam-start-panel{padding:16px}body .exam-start-page .exam-start-hero{grid-template-columns:minmax(0,1fr);gap:12px}body .exam-start-page .exam-start-actions{flex-direction:column-reverse}body .exam-start-page .exam-start-actions .button{width:100%}}body .exam-test-page{gap:20px}body .exam-test-page .exam-test-header{gap:24px;align-items:start;padding:4px 0 18px;border-bottom:1px solid var(--line)}body .exam-test-page .exam-test-header h1{font-size:clamp(23px,2.5vw,30px);font-weight:650;line-height:1.3;letter-spacing:-.025em}body .exam-test-page .exam-test-header-copy p{font-size:14px;line-height:1.65;font-weight:400}body .exam-test-page .exam-test-header-copy .roadmap-status{display:inline-flex;margin:8px 0;padding:4px 8px;border-radius:5px;font-size:11px;font-weight:500;text-transform:none}body .exam-test-page .exam-test-header-stats{gap:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}body .exam-test-page .exam-test-mini-stat{min-width:90px;padding:12px 14px;gap:5px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}body .exam-test-page .exam-test-mini-stat:last-child{border-right:0}body .exam-test-page .exam-test-mini-stat svg{display:none}body .exam-test-page .exam-test-mini-stat strong{font-size:20px;font-weight:600;line-height:1.3}body .exam-test-page .exam-test-mini-stat small{font-size:11px;font-weight:400}body .exam-test-page .exam-test-timer-panel{gap:18px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:none}body .exam-test-page .exam-test-timer-heading{gap:16px}body .exam-test-page .exam-test-timer-heading>span{font-size:13px;font-weight:500}body .exam-test-page .exam-test-timer-heading>strong{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}body .exam-test-page .exam-test-timer-track{height:5px;border-radius:6px}body .exam-test-page .exam-test-timer-panel>small{font-size:12px;font-weight:400}body .exam-test-page .exam-test-timer-panel.is-urgent{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 6%,var(--surface))}body .exam-test-page .exam-test-timer-panel.is-urgent .exam-test-timer-heading>strong{color:var(--danger)}body .exam-test-page .exam-test-workspace{grid-template-columns:minmax(0,1fr) 240px;gap:20px;align-items:start}body .exam-test-page .exam-test-question{padding:24px;gap:18px;border:1px solid var(--line);border-radius:12px;box-shadow:none}body .exam-test-page .exam-test-question__heading .language-chip{padding:5px 8px;border-radius:5px;font-size:11px;font-weight:500;text-transform:none}body .exam-test-page .exam-test-question__heading>strong{font-size:13px;font-weight:500;color:var(--muted)}body .exam-test-page .exam-test-question h2{font-size:21px;font-weight:600;letter-spacing:-.02em}body .exam-test-page .exam-test-question>p{font-size:16px;line-height:1.7;color:var(--text)}body .exam-test-page .exam-answer-options{gap:10px}body .exam-test-page .exam-answer-option{padding:13px 15px;min-height:48px;gap:12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:none;cursor:pointer}body .exam-test-page .exam-answer-option>span{font-size:15px;font-weight:400;line-height:1.6}body .exam-test-page .exam-answer-option input{width:17px;height:17px;flex:0 0 17px;accent-color:var(--primary)}body .exam-test-page .exam-answer-option:hover{background:var(--background)}body .exam-test-page .exam-answer-option.is-selected{border-color:var(--primary);background:var(--primary-soft)}body .exam-test-page .exam-answer-option:focus-within{outline:2px solid var(--primary);outline-offset:2px}body .exam-test-page .exam-question-navigator{padding:16px;gap:14px;border:1px solid var(--line);border-radius:12px;box-shadow:none}body .exam-test-page .exam-question-navigator>strong{font-size:14px;font-weight:600}body .exam-test-page .exam-question-navigator__list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;max-height:360px;overflow-y:auto;padding:3px}body .exam-test-page .exam-navigation-summary{display:grid;gap:5px}body .exam-test-page .exam-navigation-summary strong{font-size:14px;font-weight:600}body .exam-test-page .exam-navigation-summary small{font-size:12px;color:var(--muted)}body .exam-test-page .exam-navigation-legend{display:flex;flex-wrap:wrap;gap:8px 12px;border-top:1px solid var(--line);padding-top:10px}body .exam-test-page .exam-navigation-legend>span{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}.exam-navigation-legend i{width:7px;height:7px;border-radius:50%}.exam-navigation-legend .is-current{background:var(--primary)}.exam-navigation-legend .is-complete{background:var(--success)}body .exam-test-page .exam-question-number{width:100%;height:34px;min-height:34px;padding:4px;border-radius:7px;font-size:13px;font-weight:500;box-shadow:none}body .exam-test-page .exam-question-number.is-answered:not(.is-active){border-color:color-mix(in srgb,var(--success) 35%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface));color:var(--success)}body .exam-test-page .exam-test-footer{padding:14px 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:none;gap:16px}body .exam-test-page .exam-test-footer strong{font-size:14px;font-weight:500}body .exam-test-page .exam-test-footer small{font-size:12px;font-weight:400}body .exam-test-page .exam-test-footer .button{min-height:42px;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;box-shadow:none}body .exam-test-page button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media(max-width:900px){body .exam-test-page .exam-test-header{flex-wrap:wrap}body .exam-test-page .exam-test-workspace{grid-template-columns:minmax(0,1fr)}body .exam-test-page .exam-test-sidebar{position:static;grid-column:1;grid-row:auto}body .exam-test-page .exam-question-navigator__list{grid-template-columns:repeat(auto-fill,minmax(34px,1fr))}body .exam-test-page .exam-test-main{grid-column:1}}@media(max-width:600px){body .exam-test-page .exam-test-question{padding:16px}body .exam-test-page .exam-test-header-stats{width:100%}body .exam-test-page .exam-test-mini-stat{min-width:0;flex:1}body .exam-test-page .exam-test-timer-panel{flex-wrap:wrap;gap:10px}body .exam-test-page .exam-test-footer{flex-wrap:wrap}}body .settings-page.settings-page--modern{width:100%;max-width:1120px;gap:22px}.settings-page--modern .settings-page-heading{padding:4px 0}body .settings-page--modern .settings-page-heading h1{margin:8px 0;font-size:clamp(26px,3vw,34px);line-height:1.2;font-weight:650;letter-spacing:-.04em}body .settings-page--modern .settings-page-heading p{margin:0;font-size:14px;line-height:1.6;color:var(--muted)}body .settings-page--modern .section-kicker{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.settings-page--modern .settings-identity{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.settings-page--modern .settings-identity-main{display:grid;gap:5px;min-width:0}.settings-page--modern .settings-identity-main strong{font-size:17px;font-weight:600;overflow-wrap:anywhere}.settings-page--modern .settings-identity-main a,.settings-page--modern .settings-identity-main>span{font-size:13px;color:var(--muted);text-decoration:none;overflow-wrap:anywhere}.settings-page--modern .settings-identity-meta{display:grid;justify-items:end;gap:8px;margin-left:auto}.settings-page--modern .settings-role-badge{padding:5px 10px;border-radius:6px;color:var(--primary);background:var(--primary-soft);font-size:11px;font-weight:600}.settings-page--modern .settings-identity-meta small{font-size:11px;color:var(--muted)}.settings-page--modern .settings-section-nav{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line);padding-bottom:14px}.settings-page--modern .settings-section-nav a{display:inline-flex;gap:8px;align-items:center;padding:9px 12px;border-radius:8px;color:var(--muted);font-size:13px;font-weight:500;text-decoration:none}.settings-page--modern .settings-section-nav a:hover{color:var(--primary);background:var(--primary-soft)}body .settings-page--modern .settings-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px}body .settings-page--modern .settings-panel{min-width:0;gap:18px;padding:24px;border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 4px #00000005;scroll-margin-top:90px}body .settings-page--modern .section-heading{margin:0 0 2px}body .settings-page--modern .section-heading h2{gap:10px;font-size:16px;font-weight:650;letter-spacing:-.015em}.settings-page--modern .section-heading h2 svg{width:19px;height:19px;color:var(--primary)}body .settings-page--modern .settings-panel label{min-width:0;gap:7px;font-size:12px;font-weight:600}body .settings-page--modern .settings-panel :is(input,select,textarea):not([type=checkbox]):not([type=file]){min-width:0;min-height:42px;padding:10px 12px;border-radius:8px;font-size:14px;line-height:1.5;font-weight:400;box-shadow:none}body .settings-page--modern .settings-panel input[readonly]{color:var(--muted);background:var(--background)}body .settings-page--modern :is(input,select,textarea,a,button):focus-visible{outline:2px solid var(--primary);outline-offset:3px}body .settings-page--modern .settings-panel p,body .settings-page--modern .settings-hint{margin:0;font-size:12px;line-height:1.7;color:var(--muted)}body .settings-page--modern .photo-upload-card{padding:16px;border:1px dashed var(--line);border-radius:10px;background:var(--background);box-shadow:none;gap:14px}body .settings-page--modern .photo-upload-body{gap:6px}body .settings-page--modern .photo-upload-body>strong{font-size:13px;font-weight:600}body .settings-page--modern .photo-upload-body>span{font-size:12px;line-height:1.5}body .settings-page--modern .button{min-height:38px;padding:9px 13px;border-radius:8px;font-size:12px;font-weight:600}body .settings-page--modern .settings-link-preview{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:500;justify-self:start}body .settings-page--modern .settings-theme-row{padding:14px;border-radius:10px;background:var(--background);box-shadow:none}body .settings-page--modern .settings-theme-row strong{font-size:13px;font-weight:600}body .settings-page--modern .settings-theme-row small{font-size:12px;line-height:1.5}.settings-page--modern .settings-subheading{padding-top:18px;border-top:1px solid var(--line)}.settings-page--modern .settings-subheading h3{margin:0 0 6px;font-size:14px;font-weight:600}body .settings-page--modern .settings-actions{position:sticky;bottom:12px;z-index:3;display:flex;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 4px 20px #00000012}.settings-page--modern .settings-actions>button:last-child{margin-left:auto}@media(max-width:800px){body .settings-page--modern .settings-layout{grid-template-columns:minmax(0,1fr)}.settings-page--modern .settings-identity{flex-wrap:wrap;padding:18px}.settings-page--modern .settings-identity-meta{width:100%;margin-left:0;justify-items:start}body .settings-page--modern .settings-panel{padding:18px}}@media(max-width:600px){body .settings-page--modern .settings-panel :is(input,select,textarea):not([type=checkbox]):not([type=file]){font-size:16px}.settings-page--modern .settings-section-nav{gap:4px}.settings-page--modern .settings-section-nav a{padding:8px;font-size:12px}}.review-code-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}.review-answer-code{min-width:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}.review-answer-code h4,.review-code-title{margin:0;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--surface-high);color:var(--text);font-size:14px;font-weight:700}.review-answer-code--reference h4,.review-reference-panel .review-code-title{background:color-mix(in srgb,var(--success) 10%,var(--surface))}.review-exam-answer .review-answer-code pre{margin:0;border:0;border-radius:0;padding:16px;max-height:none;min-height:180px;overflow-x:auto;white-space:pre;font:14px/1.7 JetBrains Mono,monospace}.review-exam-answer .review-reference-empty,.review-reference-empty{margin:0;padding:20px;color:var(--muted);font-size:14px;line-height:1.7}.review-workspace>.review-task-comparison{grid-column:1 / -1}.review-workspace>.review-task-comparison+:not(.review-form){grid-column:1 / -1}.review-task-comparison .review-code-panel{display:grid;grid-template-rows:auto auto minmax(300px,1fr);min-width:0}.review-task-comparison .monaco-shell{min-height:400px}.review-task-comparison .editor-toolbar{flex-wrap:wrap;gap:8px}.task-example-review-row>.question-review-status{grid-column:1 / -1}@media(max-width:800px){.review-code-comparison{grid-template-columns:minmax(0,1fr)}.review-task-comparison .monaco-shell{min-height:300px}}.review-example-navigator{display:grid;gap:14px;padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-soft)}.review-example-navigator>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.review-example-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.review-example-tabs button{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-high);color:var(--text);padding:12px;text-align:left;cursor:pointer}.review-example-tabs button:hover,.review-example-tabs button.is-active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface))}.review-example-tabs button>span:first-child{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--surface);color:var(--primary);font-weight:800}.review-example-tabs button>span:last-child{display:grid;gap:3px;min-width:0}.review-example-tabs small{color:var(--text-soft)}.task-example-review-title{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer}.task-example-review-row.is-active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 6%,var(--surface))}body .teacher-overview-modern{gap:24px}body .teacher-overview-modern .account-welcome-panel{padding:4px 0 18px;border-bottom:1px solid var(--line);gap:20px;align-items:center}body .teacher-overview-modern .student-main-info-identity{gap:14px}body .teacher-overview-modern .student-main-info-identity .user-photo--hero{width:58px;height:58px;min-width:58px;flex-basis:58px;border-radius:50%;box-shadow:none}body .teacher-overview-modern .account-welcome-panel h1{font-size:clamp(23px,2.6vw,32px);font-weight:650;line-height:1.25;letter-spacing:-.035em}body .teacher-overview-modern .student-activity-summary{gap:18px;width:auto}body .teacher-overview-modern .student-activity-summary>span{min-width:0;padding:0;border:0;background:transparent;border-radius:0;font-size:14px;font-weight:400;line-height:1.5;gap:5px}body .teacher-overview-modern .student-activity-summary strong{font-size:14px;font-weight:400;line-height:1.5;letter-spacing:0;color:var(--muted);text-transform:none}.teacher-overview-modern .overview-summary{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(250px,1fr);gap:20px}body .teacher-overview-modern .overview-summary .metrics-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}body .teacher-overview-modern .overview-summary .metrics-row .metric-card{min-height:0;padding:18px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;gap:8px}body .teacher-overview-modern .overview-summary .metrics-row .metric-card:last-child{border-right:0}body .teacher-overview-modern .overview-summary .metric-card>span{color:var(--muted);font-size:11px;font-weight:500;letter-spacing:0}body .teacher-overview-modern .overview-summary .metric-card>strong{font-size:28px;line-height:1.1;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.025em}body .teacher-overview-modern .overview-summary .metric-card>small{font-size:11px;font-weight:400;color:var(--muted)}.teacher-overview-modern .overview-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body .teacher-overview-modern .overview-quick-actions .metric-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-height:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:none;text-align:left}body .teacher-overview-modern .overview-quick-actions .metric-card>span{color:var(--text);font-size:13px;font-weight:600}body .teacher-overview-modern .overview-quick-actions .metric-card svg{width:20px;height:20px;color:var(--primary)}body .teacher-overview-modern .overview-quick-actions .metric-card:hover{background:var(--primary-soft);border-color:var(--primary);transform:none}body .teacher-overview-modern .teacher-overview-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start}body .teacher-overview-modern :is(.data-foundation-panel,.project-calendar-panel,.attention-panel){padding:22px;border:1px solid var(--line);border-radius:14px;box-shadow:none;min-height:0}body .teacher-overview-modern .data-foundation-view-tabs{gap:4px;padding:4px;border-radius:9px;background:var(--background)}body .teacher-overview-modern .data-foundation-view-tabs button{padding:10px;min-height:44px;border:1px solid transparent;border-radius:7px;background:transparent;box-shadow:none;gap:8px}body .teacher-overview-modern .data-foundation-view-tabs button.is-active{border-color:var(--line);background:var(--surface);box-shadow:0 1px 3px #00000008}body .teacher-overview-modern .data-foundation-view-tabs strong{font-size:13px;font-weight:600}body .teacher-overview-modern .data-foundation-view-tabs small{font-size:10px;font-weight:400;color:var(--muted)}body .teacher-overview-modern .data-foundation-view-tabs svg{width:17px;height:17px}body .teacher-overview-modern .data-foundation-grid{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;align-content:start;gap:0}body .teacher-overview-modern .data-foundation-item{display:grid;grid-template-columns:20px 110px minmax(0,1fr);align-items:start;gap:10px;min-height:0;height:auto;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}body .teacher-overview-modern .data-foundation-item:last-child{border-bottom:0;padding-bottom:0}body .teacher-overview-modern .data-foundation-item svg{width:17px;height:17px}body .teacher-overview-modern .data-foundation-item>span{font-size:14px;font-weight:400;line-height:1.5;letter-spacing:0;color:var(--muted)}body .teacher-overview-modern .data-foundation-item>strong{font-size:14px;font-weight:400;line-height:1.5;overflow-wrap:anywhere}body .teacher-overview-modern .online-students-panel{font-size:14px;line-height:1.5}body .teacher-overview-modern .online-students-panel>p{margin:0;font-size:inherit;font-weight:400}body .teacher-overview-modern .section-heading h2{font-size:17px;font-weight:650;letter-spacing:-.02em;gap:8px}body .teacher-overview-modern .section-heading h2 svg{width:18px;color:var(--primary)}body .teacher-overview-modern .project-calendar-panel{gap:14px}body .teacher-overview-modern .project-calendar-controls{gap:4px}body .teacher-overview-modern .project-calendar-controls strong{min-width:120px;font-size:16px;font-weight:600}body .teacher-overview-modern .project-calendar-controls .icon-button{width:28px;height:28px;min-height:28px}body .teacher-overview-modern .project-calendar-grid{gap:3px;border:0}body .teacher-overview-modern .project-calendar-day{min-height:48px;padding:5px 2px;border:0;border-radius:7px;background:transparent}body .teacher-overview-modern .project-calendar-day>span:first-child{width:32px;height:32px;font-size:16px;font-weight:500}body .teacher-overview-modern .project-calendar-weekdays span{font-size:14px;font-weight:500}body .teacher-overview-modern .project-calendar-legend span{font-size:16px;line-height:1.5;font-weight:400}body .teacher-overview-modern .project-calendar-dots small{font-size:12px}body .teacher-overview-modern .project-calendar-footer .button{font-size:16px}body .teacher-overview-modern .project-calendar-footer{padding-top:12px;border-top:1px solid var(--line);flex-wrap:wrap;gap:12px}body .teacher-overview-modern .button{min-height:34px;font-size:11px;font-weight:500;padding:8px 10px;box-shadow:none;border-radius:7px}body .teacher-overview-modern button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media(max-width:1100px){.teacher-overview-modern .overview-summary{grid-template-columns:minmax(0,1fr)}body .teacher-overview-modern .overview-quick-actions .metric-card{display:grid;grid-template-columns:auto 1fr;align-items:center}.teacher-overview-modern .overview-quick-actions .metric-card svg{grid-row:1 / 3}.teacher-overview-modern .overview-quick-actions .metric-card small{grid-column:2}body .teacher-overview-modern .account-welcome-panel{flex-wrap:wrap}}@media(max-width:800px){body .teacher-overview-modern .teacher-overview-grid{grid-template-columns:minmax(0,1fr)}body .teacher-overview-modern .overview-summary .metrics-row{grid-template-columns:repeat(2,minmax(0,1fr))}body .teacher-overview-modern .overview-summary .metrics-row .metric-card:nth-child(2){border-right:0}body .teacher-overview-modern .overview-summary .metrics-row .metric-card:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media(max-width:500px){body .teacher-overview-modern .student-activity-summary{width:100%;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}body .teacher-overview-modern :is(.data-foundation-panel,.project-calendar-panel,.attention-panel){padding:16px}body .teacher-overview-modern .data-foundation-item{grid-template-columns:20px minmax(0,1fr)}body .teacher-overview-modern .data-foundation-item>strong{grid-column:2}}body .exam-manager.exam-manager--form .exam-programming-options{padding:0;border:0}body .exam-manager.exam-manager--form .exam-programming-options>summary{padding:8px 0;font-size:12px;font-weight:500}body .exam-manager.exam-manager--form .exam-programming-options>.form-grid{padding:14px;gap:18px;border:1px solid var(--line);border-radius:10px;background:var(--background);align-items:start}body .exam-manager.exam-manager--form .programming-language-picker{min-width:0;gap:9px}body .exam-manager.exam-manager--form .programming-language-picker>span{font-size:12px;font-weight:500;color:var(--text)}body .exam-manager.exam-manager--form .programming-language-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}body .exam-manager.exam-manager--form .programming-language-options .checkbox-row{display:flex;align-items:center;gap:8px;min-width:0;min-height:38px;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);box-shadow:none;cursor:pointer}body .exam-manager.exam-manager--form .programming-language-options .checkbox-row.is-selected{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 35%,var(--line))}body .exam-manager.exam-manager--form .programming-language-options .checkbox-row:hover{border-color:var(--primary)}body .exam-manager.exam-manager--form .programming-language-options .checkbox-row:focus-within{outline:2px solid var(--primary);outline-offset:2px}body .exam-manager.exam-manager--form .programming-language-options input[type=checkbox]{flex:0 0 15px;width:15px;height:15px;min-height:15px;margin:0;padding:0;accent-color:var(--primary)}body .exam-manager.exam-manager--form .programming-language-options .checkbox-row strong{font-size:12px;font-weight:500;line-height:1.4;overflow-wrap:anywhere}body .exam-manager.exam-manager--form .programming-language-options .is-selected strong{color:var(--primary)}body .exam-manager.exam-manager--form .programming-language-picker small{font-size:11px;line-height:1.6}@media(max-width:700px){body .exam-manager.exam-manager--form .exam-programming-options>.form-grid{grid-template-columns:minmax(0,1fr)}}body .exam-manager.exam-manager--form .exam-question-builder{padding:0;border:0;background:transparent;box-shadow:none}body .exam-manager.exam-manager--form .exam-question-builder>legend{padding:0 0 12px;font-size:13px;color:var(--muted)}body .exam-manager.exam-manager--form .exam-question-actions{padding:10px 0;border:0;border-radius:0;background:var(--background)}body .exam-manager.exam-manager--form .exam-question-list{gap:20px}body .exam-manager.exam-manager--form .exam-question-card{padding:22px;gap:18px;border:1px solid var(--line);border-radius:14px;box-shadow:none}body .exam-manager.exam-manager--form .exam-question-card__heading{padding-bottom:14px;border-bottom:1px solid var(--line);gap:12px}body .exam-manager.exam-manager--form .exam-question-card__heading>span{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:600}body .exam-manager.exam-manager--form .exam-question-card__heading>span svg{color:var(--primary);width:16px}body .exam-manager.exam-manager--form .exam-question-row-actions{gap:5px}body .exam-manager.exam-manager--form .exam-question-row-actions .button{min-height:34px;padding:7px 9px;border-color:transparent;background:transparent;font-size:11px;font-weight:500;box-shadow:none}body .exam-manager.exam-manager--form .exam-question-row-actions .button:hover:not(:disabled){background:var(--primary-soft)}body .exam-manager.exam-manager--form .exam-question-card .icon-button{width:34px;min-height:34px;height:34px;border-radius:7px}body .exam-manager.exam-manager--form .exam-question-card>.form-grid{grid-template-columns:minmax(0,1fr) minmax(100px,.3fr);gap:16px}body .exam-manager.exam-manager--form .exam-question-card label{font-size:12px;font-weight:500}body .exam-manager.exam-manager--form .exam-image-upload{padding:12px 14px;gap:9px;border:1px dashed var(--line);border-radius:9px;background:var(--background)}body .exam-manager.exam-manager--form .exam-image-title{font-size:12px;font-weight:500}body .exam-manager.exam-manager--form .exam-image-file-button{min-height:34px;padding:7px 10px;gap:7px;border:1px solid var(--line);border-radius:7px;background:var(--surface);font-size:12px;font-weight:500}body .exam-manager.exam-manager--form .exam-image-file-button svg{width:16px;height:16px}body .exam-manager.exam-manager--form .exam-image-file-name{font-size:12px;overflow-wrap:anywhere}body .exam-manager.exam-manager--form .exam-image-upload small{font-size:11px}body .exam-manager.exam-manager--form .exam-option-list{gap:8px}body .exam-manager.exam-manager--form .exam-answer-hint{margin:0 0 4px;font-size:12px;color:var(--muted)}body .exam-manager.exam-manager--form .exam-option-row{display:grid;grid-template-columns:18px 76px minmax(0,1fr) 34px;gap:9px;align-items:center;padding:8px 10px;border:1px solid transparent;border-radius:9px;background:var(--background)}body .exam-manager.exam-manager--form .exam-option-row.is-correct{border-color:color-mix(in srgb,var(--success) 35%,var(--line));background:color-mix(in srgb,var(--success) 7%,var(--surface))}body .exam-manager.exam-manager--form .exam-option-row>span{font-size:11px;font-weight:500}body .exam-manager.exam-manager--form .exam-option-row input[type=radio]{width:16px;height:16px;margin:0;accent-color:var(--success)}body .exam-manager.exam-manager--form .exam-option-list>.button{justify-self:start;min-height:34px;padding:7px 10px;font-size:12px;background:transparent;border-color:transparent}@media(max-width:600px){body .exam-manager.exam-manager--form .exam-question-card{padding:16px}body .exam-manager.exam-manager--form .exam-option-row{grid-template-columns:18px minmax(0,1fr) 34px}body .exam-manager.exam-manager--form .exam-option-row>span{grid-column:2;grid-row:1}body .exam-manager.exam-manager--form .exam-option-row input:not([type=radio]){grid-column:2;grid-row:2}body .exam-manager.exam-manager--form .exam-option-row>button{grid-column:3;grid-row:2}}body .exam-manager.exam-manager--form{max-width:1040px;gap:24px}body .exam-manager--form .exam-form-progress{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0 0 20px;border-bottom:1px solid var(--line)}.exam-form-progress li{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;font-weight:500}.exam-form-progress li>span{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;font-size:12px}.exam-form-progress .is-current{color:var(--text);font-weight:700}.exam-form-progress .is-current>span{background:var(--primary);border-color:var(--primary);color:var(--surface)}.exam-form-progress .is-complete>span{background:var(--primary-soft);border-color:transparent;color:var(--primary)}body .exam-manager.exam-manager--form .form-page-heading{margin:0;align-items:center;gap:16px}body .exam-manager.exam-manager--form .form-page-heading h1{font-size:clamp(24px,3vw,30px);font-weight:650;letter-spacing:-.035em}body .exam-manager.exam-manager--form .form-page-heading p{font-size:14px;line-height:1.6;color:var(--muted)}body .exam-manager.exam-manager--form .section-kicker{display:none}body .exam-manager.exam-manager--form .exam-form{gap:20px}body .exam-manager.exam-manager--form .exam-form label,body .exam-manager.exam-manager--form .exam-form legend,body .exam-manager.exam-manager--form .exam-image-title{font-size:13px;font-weight:600;line-height:1.5}body .exam-manager.exam-manager--form .exam-form label{gap:8px;align-content:start}body .exam-manager.exam-manager--form .exam-form :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=file]){min-width:0;width:100%;min-height:44px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px;font-weight:400;line-height:1.5;box-shadow:none}body .exam-manager.exam-manager--form .exam-form :is(input,select,textarea):focus-visible{outline:2px solid var(--primary);outline-offset:2px}body .exam-manager.exam-manager--form .exam-form small{font-size:12px;line-height:1.5;font-weight:400}body .exam-manager.exam-manager--form .button{min-height:40px;font-size:13px;font-weight:600;border-radius:8px}body .exam-manager.exam-manager--form .exam-step-summary{padding:14px 18px;background:var(--primary-soft);border:0;border-radius:10px;box-shadow:none}body .exam-manager.exam-manager--form .exam-step-summary strong{font-size:14px;font-weight:600}.exam-settings-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:stretch}.exam-settings-card{min-width:0;display:flex;flex-direction:column;gap:20px;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 2px 4px #00000005}.exam-settings-heading{display:flex;align-items:flex-start;gap:12px}.exam-settings-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:10px;color:var(--primary);background:var(--primary-soft)}body .exam-manager.exam-manager--form .exam-settings-heading h2{margin:0 0 4px;color:var(--text);font-size:16px;font-weight:650;letter-spacing:-.015em}body .exam-manager.exam-manager--form .exam-settings-heading p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.exam-settings-fields{display:grid;gap:18px}.exam-input-unit{position:relative;display:block}.exam-input-unit>span{position:absolute;right:34px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;font-weight:400;pointer-events:none}body .exam-manager.exam-manager--form .exam-input-unit input{padding-right:85px!important}.exam-settings-note{display:flex;align-items:flex-start;gap:9px;margin-top:auto;padding:12px;border-radius:8px;color:var(--muted);background:var(--background)}.exam-settings-note svg{flex-shrink:0;color:var(--primary);margin-top:2px}body .exam-manager.exam-manager--form .exam-settings-note p{margin:0;font-size:12px;line-height:1.6}.exam-recipient-details{border-top:1px solid var(--line);padding-top:16px}.exam-recipient-details summary{cursor:pointer;color:var(--text);font-size:13px;font-weight:500}.exam-recipient-details summary>span{display:inline-block;margin-left:10px;padding:3px 8px;border-radius:6px;color:var(--primary);background:var(--primary-soft);font-size:11px}.exam-recipient-details .assignment-checkboxes{max-height:300px;overflow-y:auto;padding:4px}body .exam-manager.exam-manager--form .exam-form-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0 8px;border-top:1px solid var(--line)}body .exam-manager.exam-manager--form .exam-form-footer p{margin:0;font-size:13px;color:var(--text);font-weight:500;line-height:1.7}.exam-form-footer p>span{display:block;color:var(--muted);font-size:12px;font-weight:400}@media(max-width:700px){.exam-settings-columns{grid-template-columns:minmax(0,1fr)}.exam-settings-card{padding:18px}body .exam-manager--form .exam-form-progress{gap:16px;justify-content:space-between}.exam-form-progress li{font-size:12px;gap:6px}body .exam-manager.exam-manager--form .form-page-heading{align-items:flex-start;flex-direction:column}body .exam-manager.exam-manager--form .exam-form-footer{flex-direction:column;align-items:stretch}body .exam-manager.exam-manager--form .exam-form :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=file]){font-size:16px}}:root{color-scheme:light;font-family:Inter,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--background: #f7fbfd;--background-deep: #edf5fa;--surface: #ffffff;--surface-strong: #fbfdff;--surface-high: #eef6fa;--surface-higher: #e2eef6;--line: #dbe8f0;--line-soft: rgba(79, 119, 170, .16);--text: #202029;--muted: #65738a;--primary: #4F77AA;--primary-soft: rgba(79, 119, 170, .12);--secondary: #4F77AA;--secondary-soft: rgba(79, 119, 170, .18);--accent: #4F77AA;--success: #2f8f78;--warning: #d99537;--danger: #c75f62;--shadow-soft: 0 18px 44px rgba(79, 119, 170, .12);--shadow-card: 0 16px 36px rgba(32, 32, 41, .08);--radius: 8px;--page-title-size: clamp(26px, 2.56vw, 35px);--page-title-line-height: 1.08;--page-title-letter-spacing: -.035em;--page-subtitle-size: clamp(16px, 1.15vw, 20px)}:root[data-theme=dark]{color-scheme:dark;--background: #0f151e;--background-deep: #131b26;--surface: #19222e;--surface-strong: #1e2937;--surface-high: #243142;--surface-higher: #2b3a4d;--line: #38495e;--line-soft: rgba(148, 180, 218, .18);--text: #edf3fa;--muted: #a9b8cc;--primary: #82afe4;--primary-soft: rgba(130, 175, 228, .14);--secondary: #79c7b4;--secondary-soft: rgba(121, 199, 180, .16);--accent: #9bc2ef;--success: #79c7b4;--warning: #e3b66d;--danger: #ef8b8e;--shadow-soft: 0 18px 44px rgba(0, 0, 0, .3);--shadow-card: 0 16px 36px rgba(0, 0, 0, .24)}*{box-sizing:border-box}.submission-bundle-toolbar{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px 24px;padding:20px 0 24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.submission-bundle-search{display:grid;gap:8px;flex:1 1 320px;max-width:580px;min-width:0}.submission-bundle-search>label{font-size:13px;font-weight:600;color:var(--text)}.submission-bundle-search-field{display:flex;align-items:center;min-height:48px;gap:10px;padding:0 12px 0 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--muted);transition:border-color .15s ease,box-shadow .15s ease}.submission-bundle-search-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.submission-bundle-search-field>svg{flex-shrink:0}.submission-bundle-search-field input[type=search]{width:100%;min-width:0;min-height:46px;margin:0;padding:10px 0;border:0;border-radius:0;outline:none;box-shadow:none;background:transparent;color:var(--text);font:inherit;font-size:15px;font-weight:400;line-height:1.5;-webkit-appearance:none;-moz-appearance:none;appearance:none}.submission-bundle-search-field input::placeholder{color:var(--muted);opacity:1;font-weight:400}.submission-bundle-search-field input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.submission-bundle-search-field button{display:grid;place-items:center;flex:0 0 36px;height:36px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.submission-bundle-search-field button:hover{background:var(--primary-soft);color:var(--primary)}.submission-bundle-search-field button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.submission-bundles-panel .submission-bundle-intro{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.submission-bundle-results{display:flex;align-items:baseline;gap:6px;padding-bottom:14px;font-size:13px;color:var(--muted);white-space:nowrap}.submission-bundle-results strong{margin-left:4px;font-size:17px;color:var(--text);font-variant-numeric:tabular-nums}.submission-bundle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:16px}.submission-bundle-card{display:flex;flex-direction:column;align-items:stretch;gap:18px;min-width:0;padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.submission-bundle-card:hover{border-color:var(--primary);background:var(--surface-high)}.submission-bundle-card:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.submission-bundle-kind,.submission-bundle-open{display:flex;align-items:center;gap:8px;color:var(--primary)}.submission-bundle-kind{align-self:flex-start;padding:6px 9px;border-radius:6px;background:var(--primary-soft);font-size:12px;font-weight:600}.submission-bundle-title{font-size:18px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}.submission-bundle-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.submission-bundle-counts>span{display:grid;gap:5px;color:var(--muted);font-size:12px}.submission-bundle-counts strong{color:var(--text);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.submission-bundle-counts .has-pending strong{color:var(--primary)}.submission-bundle-card>small{color:var(--muted);font-size:12px;line-height:1.5}.submission-bundle-open{justify-content:space-between;margin-top:auto;padding-top:4px;font-size:14px;font-weight:600}.submission-bundles-panel .submission-filter-bar{gap:6px}.submission-bundles-panel .submission-filter-bar button{min-height:40px;padding:8px 12px;border-radius:8px}.submission-bundles-panel .submission-filter-bar button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(max-width:600px){.submission-bundle-toolbar{align-items:stretch;gap:12px;padding-bottom:18px;margin-bottom:18px}.submission-bundle-search{flex-basis:100%;max-width:none}.submission-bundle-search-field input[type=search]{font-size:16px}.submission-bundle-results{padding-bottom:0}.submission-bundle-card{padding:18px}.submission-bundles-panel .submission-filter-bar{width:100%}}@media(prefers-reduced-motion:reduce){.submission-bundle-card,.submission-bundle-search-field{transition:none}}.submission-project-authors{margin:18px 0;overflow-wrap:anywhere}body{margin:0;min-width:320px;min-height:100vh;background:var(--background);color:var(--text)}.student-detail-open{border:0;background:transparent;color:inherit;text-align:left;padding:0}.student-detail-open:hover strong{color:var(--primary);text-decoration:underline}.student-detail-open>small{display:block;color:var(--primary);font-weight:400;margin-top:4px}dialog.student-detail-dialog{display:block;margin:auto;width:min(740px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow:auto;border:1px solid var(--line);color:var(--text);background:var(--surface);padding:clamp(18px,2.5vw,24px)}dialog.student-detail-dialog::backdrop{background:#0f172a66}.student-detail-dialog .student-detail-heading{display:flex;align-items:center;gap:14px}.student-detail-heading>div{min-width:0;overflow-wrap:anywhere}.student-detail-heading .user-photo{width:56px;height:56px;flex:0 0 56px}.student-detail-dialog .student-detail-heading h2{margin:4px 0;font-size:22px;font-weight:400;line-height:1.3}.student-detail-dialog .section-kicker{font-size:12px;font-weight:400}.student-detail-dialog section{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}.student-detail-dialog h3{margin:0 0 10px;font-size:17px;font-weight:400}.student-detail-dialog p{margin:8px 0;color:var(--muted);font-size:15px;line-height:1.5}.student-detail-dialog .button{font-size:14px;font-weight:400}.student-detail-dialog footer{display:flex;justify-content:flex-end;margin-top:18px}.student-detail-table{overflow-x:auto}.student-detail-table table{width:100%;border-collapse:collapse;font-size:15px}.student-detail-table th,.student-detail-table td{text-align:left;padding:9px 6px;border-bottom:1px solid var(--line);font-weight:400}button,input,textarea,select{font:inherit}body form input:where(:not([type]),[type=text],[type=email],[type=password],[type=search],[type=tel],[type=url],[type=number],[type=date],[type=time],[type=datetime-local]),body form textarea:not(.inputarea):not(.code-textarea),body form select{font-size:17px;font-weight:400;line-height:1.5}body form input::placeholder,body form textarea::placeholder{font-weight:400;color:var(--muted);opacity:1}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button[aria-disabled=true]{cursor:default;opacity:.62}button[aria-disabled=true]:hover{transform:none}.skip-link{position:fixed;top:10px;left:10px;z-index:100;border-radius:var(--radius);background:var(--primary);color:#062033;padding:10px 14px;font-weight:900;transform:translateY(-160%);transition:transform .16s ease}.skip-link:focus{transform:translateY(0)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#3e484f;border-radius:999px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid transparent;border-radius:var(--radius);padding:0 14px;color:var(--text);font-weight:800;line-height:1;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:progress;opacity:.68;transform:none}.button--primary{background:var(--primary);color:#062033}.button--success{background:var(--secondary);color:#062621}.button--ghost{background:var(--surface-high);border-color:#8ed5ff47;color:var(--primary)}.button--compact{min-height:34px;padding:0 10px;font-size:12px}.icon-button{display:inline-grid;width:40px;height:40px;place-items:center;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--muted)}.icon-button:hover{background:var(--surface-high);color:var(--primary)}.login-screen{min-height:100vh;display:grid;place-items:center;padding:clamp(18px,4vw,44px)}.login-layout{display:grid;grid-template-columns:minmax(250px,338px) minmax(320px,403px);justify-content:center;align-items:stretch;width:min(100%,741px)}.login-visual{min-height:468px;margin:0;overflow:hidden;border:1px solid rgba(79,119,170,.16);border-right:0;border-radius:8px 0 0 8px;background:var(--surface-high);box-shadow:var(--shadow-soft)}.login-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.login-card{display:grid;align-content:center;width:100%;min-height:468px;border:1px solid rgba(51,65,85,.72);border-left:0;border-radius:0 8px 8px 0;background:#191f2fd1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:28px 28px 20px}.login-brand{display:grid;justify-items:center;justify-content:center;gap:7px;margin-bottom:16px;color:var(--primary);text-align:center}.brand-logo{display:block;max-width:100%;object-fit:contain;object-position:center;-webkit-user-select:none;user-select:none}.brand-logo--topbar{width:clamp(170px,16vw,240px);height:52px;object-position:left center}.brand-logo--login{width:min(100%,247px);height:82px}.brand-logo--missing{display:block;overflow:hidden}.login-brand p,.form-copy p,.system-line,.muted{color:var(--muted)}.login-brand p{margin:0;font-size:10px;font-weight:800;text-transform:uppercase}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:20px;padding:4px;border-radius:var(--radius);background:var(--background-deep)}.role-grid button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font-size:15px;font-weight:800;text-transform:uppercase}.role-grid button:hover,.role-grid button.is-active{background:var(--primary-soft);border-color:#4f77aa5c;color:var(--primary)}.login-form{display:grid;gap:12px}.login-card .form-copy{margin-bottom:2px}.login-card .form-copy h2{font-size:16.5px}.login-card .form-copy p{font-size:15px}.login-card label{gap:7px;font-size:13px}.login-card .input-shell{min-height:46px;border-radius:8px}.login-card .input-shell input{font-size:14px;font-weight:800}.login-card .login-submit{min-height:50px;margin-top:5px;border-radius:8px;box-shadow:0 12px 24px #4f77aa38;color:#fff;font-size:18px}.form-copy{text-align:center}.form-copy h2{margin:0 0 6px;font-size:22px}.form-copy p{margin:0}.form-error{margin:0;border:1px solid rgba(255,140,134,.38);border-radius:6px;background:#ff8c861a;color:#ffb4ab;padding:12px;font-weight:800}.form-success{margin:0;border:1px solid rgba(68,226,205,.34);border-radius:6px;background:#44e2cd1a;color:#7bf5e5;padding:12px;font-weight:800}.save-error{color:#ffb4ab;font-weight:800}label{display:grid;gap:8px;color:#d9e1f5;font-size:13px;font-weight:800}.input-shell{display:flex;align-items:center;gap:10px;min-height:52px;border:1px solid rgba(135,146,154,.36);border-radius:6px;background:var(--surface-higher);padding:0 14px;color:var(--muted)}.input-shell input,.task-form input,.task-form textarea,.task-form select{width:100%;border:1px solid rgba(135,146,154,.36);border-radius:6px;background:var(--surface-strong);color:var(--text)}.input-shell input{border:0;background:transparent;outline:0}.login-submit{min-height:56px;width:100%;font-size:18px}.system-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin:22px 0 0;font-family:JetBrains Mono,monospace;font-size:12px}.live-dot{width:9px;height:9px;border-radius:999px;background:var(--secondary)}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:28px;height:64px;border-bottom:1px solid var(--line-soft);background:#080e1deb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:0 20px}.brand{display:inline-flex;align-items:center;flex:0 0 auto;border:0;background:transparent;color:var(--primary);font-size:26px;font-weight:900;padding:0}.topnav{display:flex;align-items:center;gap:6px}.topnav button{min-height:40px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:0 12px;font-size:13px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.topnav button.is-active,.topnav button:hover{border-color:var(--primary);color:#a9e5ff}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.user-pill{display:flex;align-items:center;gap:10px;min-width:0;border:0;border-left:1px solid var(--line-soft);background:transparent;color:var(--text);padding-left:14px;text-align:left}.user-pill span:last-child{display:grid}.user-pill strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.user-pill small{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.avatar{display:inline-grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border:1px solid rgba(79,119,170,.28);border-radius:999px;background:linear-gradient(135deg,#4f77aa2e,#44e2cd1f);color:#c7f0ff;font-size:12px;font-weight:900}.workspace-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:calc(100vh - 64px)}.sidebar{position:sticky;top:64px;height:calc(100vh - 64px);display:flex;flex-direction:column;border-right:1px solid var(--line-soft);background:#191f2fd1}.sidebar-title{display:flex;gap:12px;align-items:center;padding:28px 20px 24px}.sidebar-title strong{display:block;font-size:20px}.sidebar-title span{display:block;margin-top:3px;color:var(--muted)}.sidebar-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:6px;background:var(--primary-soft);color:var(--primary)}.side-nav{display:grid;gap:6px;padding:16px 12px}.side-nav button,.side-link{display:flex;align-items:center;gap:12px;min-height:48px;border:0;border-right:4px solid transparent;border-radius:0;background:transparent;color:var(--muted);padding:0 12px;font-weight:800;text-align:left}.side-nav button.is-active,.side-nav button:hover,.side-link:hover{background:#4f77aa1c;border-color:var(--primary);color:var(--primary)}.sidebar-footer{display:grid;gap:10px;margin-top:auto;padding:16px 20px 20px}.content{min-width:0;padding:28px}.dashboard-page,.creator-page,.review-page{display:grid;align-content:start;gap:28px;max-width:1320px;margin:0 auto}.state-panel{display:grid;gap:10px;max-width:820px;border:1px solid rgba(51,65,85,.72);border-radius:var(--radius);background:#191f2fc7;padding:28px}.state-panel--center{margin:0 auto}.state-panel h1,.state-panel p{margin:0}.state-panel p{color:var(--muted)}.state-panel--error{border-color:#ff8c8661}.state-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.loading-skeleton{display:grid;gap:22px;width:min(100%,1500px);margin-inline:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);padding:clamp(24px,4vw,38px)}.loading-skeleton__header{display:flex;align-items:center;gap:16px}.loading-skeleton__header>div{display:grid;gap:7px}.loading-skeleton h1{margin:0}.loading-skeleton p{max-width:620px;margin:0;color:var(--muted);line-height:1.5}.preloader-mark{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:5px;width:58px;height:58px;border-radius:14px;background:var(--primary-soft);color:var(--primary);font:800 14px/1 JetBrains Mono,monospace}.preloader-mark i{width:7px;height:7px;border-radius:50%;background:currentColor;animation:preloader-dot 1s ease-in-out infinite}.section-preloader{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;width:100%;min-height:170px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);padding:clamp(20px,3vw,30px)}.section-preloader--compact{min-height:116px;box-shadow:none}.section-preloader__copy{display:grid;gap:5px}.section-preloader__copy strong{color:var(--text);font-size:17px}.section-preloader__copy span{color:var(--muted);font-size:13px;line-height:1.45}.section-preloader__lines{display:grid;grid-column:1 / -1;gap:8px}.section-preloader__lines i{height:8px;border-radius:99px;background:linear-gradient(90deg,var(--surface-high),var(--primary-soft),var(--surface-high));background-size:220% 100%;animation:skeleton-pulse 1.4s ease-in-out infinite}.section-preloader__lines i:nth-child(2){width:82%}.section-preloader__lines i:nth-child(3){width:64%}@keyframes preloader-dot{50%{transform:scale(.55);opacity:.45}}.skeleton-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.skeleton-list{display:grid;gap:10px}.skeleton-grid span,.skeleton-list span{display:block;border-radius:6px;background:linear-gradient(90deg,var(--surface-high),var(--primary-soft),var(--surface-high));background-size:220% 100%;animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-grid span{height:92px}.skeleton-list span{height:52px}@keyframes skeleton-pulse{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.preloader-mark i,.skeleton-grid span,.skeleton-list span,.section-preloader__lines i,.app-busy-card svg{animation:none}}@media(max-width:560px){.loading-skeleton__header{align-items:flex-start}.preloader-mark{width:48px;height:48px;border-radius:12px;font-size:12px}.section-preloader{min-height:140px;padding:18px}}.app-busy-overlay{position:fixed;top:64px;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:start center;padding:34px 18px;background:#f7fbfd9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.app-busy-card{display:inline-flex;align-items:center;gap:10px;min-height:52px;border:1px solid rgba(79,119,170,.18);border-radius:8px;background:var(--surface);box-shadow:0 18px 44px #4f77aa29;color:var(--text);padding:0 16px;font-weight:900}.app-busy-card svg{color:var(--primary);animation:loader-spin .9s linear infinite}@keyframes loader-spin{to{transform:rotate(360deg)}}.empty-state{display:grid;gap:10px;border:1px dashed rgba(135,146,154,.38);border-radius:var(--radius);background:var(--surface-high);padding:18px}.empty-state strong{color:var(--primary);font-size:18px}.empty-state p{margin:0;color:var(--muted);line-height:1.5}.data-foundation-panel{display:grid;gap:18px;border:1px solid rgba(68,226,205,.3);border-radius:var(--radius);background:linear-gradient(135deg,#44e2cd14,#4f77aa0f),#191f2fc7;padding:22px}.data-foundation-panel h2{margin:0;color:var(--primary);font-size:22px}.data-foundation-view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.data-foundation-view-tabs button{box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;width:100%;height:78px;min-height:78px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);color:var(--text);padding:12px 15px;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.data-foundation-view-tabs button>svg{width:19px;height:19px;color:var(--primary)}.data-foundation-view-tabs button>span{display:grid;gap:4px;min-width:0}.data-foundation-view-tabs button strong{overflow:hidden;font-size:clamp(15px,1.6vw,18px);line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.data-foundation-view-tabs button small{overflow:hidden;color:var(--muted);font-size:12px;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.data-foundation-view-tabs button:hover{border-color:color-mix(in srgb,var(--primary) 58%,var(--line))}.data-foundation-view-tabs button.is-active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 17%,transparent)}@media(max-width:620px){.data-foundation-view-tabs{grid-template-columns:1fr}.data-foundation-view-tabs button{height:72px;min-height:72px}}.data-foundation-heading h2>button{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:12px;width:100%;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;padding:0;text-align:left;cursor:pointer}.data-foundation-heading h2>button small{color:var(--muted);font-size:13px;font-weight:850;white-space:nowrap}.data-foundation-heading h2>button>svg{align-self:center;justify-self:end;color:var(--primary);transition:transform .16s ease}.data-foundation-heading h2>button>svg.is-expanded{transform:rotate(180deg)}.data-foundation-heading h2>button:hover>span{text-decoration:underline;text-underline-offset:4px}.data-foundation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.data-foundation-item{display:grid;gap:6px;align-content:start;min-height:110px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d61;color:inherit;font:inherit;padding:14px;text-align:left}button.data-foundation-item{cursor:pointer}.data-foundation-item--action:hover{transform:translateY(-1px);border-color:#4f77aa85;background:var(--surface-higher)}.data-foundation-item--action:disabled{cursor:not-allowed;opacity:.58;transform:none;box-shadow:none}.data-foundation-grid svg{color:var(--secondary)}.data-foundation-grid span{color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.data-foundation-grid strong{color:var(--text);line-height:1.35}.data-foundation-grid small{color:var(--muted);font-size:12px;font-weight:800;line-height:1.35}.online-students-panel{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:16px}.online-students-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.online-students-heading small{color:var(--muted);font-weight:750}.online-students-list{display:grid;gap:8px}.online-student-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:10px 12px}.online-student-row>span:nth-child(2){display:grid;gap:2px}.online-student-row small{color:var(--muted)}.online-student-session{display:grid;justify-items:end;gap:2px;text-align:right}.online-student-session strong{color:var(--text);font-size:13px}.online-student-dot{width:10px;height:10px;margin-right:8px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 4px #22a06b21}@media(max-width:620px){.online-students-heading{align-items:flex-start;flex-direction:column}.online-student-row{grid-template-columns:auto minmax(0,1fr)}.online-student-session{grid-column:2;justify-items:start;text-align:left}}.hero-panel,.info-panel,.task-card,.metric-card,.assignment-panel,.editor-stage,.preview-panel,.python-graphics-panel,.python-runtime-panel,.sql-inspector-panel,.pseudo-diagram-panel,.python-activity-panel,.review-form,.review-summary,.task-form{border:1px solid rgba(51,65,85,.72);border-radius:var(--radius);background:#191f2fc7}.hero-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:190px;padding:34px}.hero-panel h1{margin:0;color:var(--primary);font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.hero-panel p{max-width:620px;margin:14px 0 0;color:var(--muted);font-size:var(--page-subtitle-size);line-height:1.35}.section-kicker{display:block;margin-bottom:10px;color:var(--secondary);font-size:12px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.metrics-row{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:12px}.metrics-row--wide{grid-template-columns:1fr 1fr}.metric-card{min-width:140px;padding:18px}.metric-card span{display:block;color:var(--primary);font-size:12px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.metric-card strong{display:block;margin-top:8px;font-size:34px}.metric-card small{color:var(--secondary);font-weight:800}.metric-card--success small,.metric-card--success span{color:var(--secondary)}.metric-card--accent small,.metric-card--accent span{color:var(--accent)}.section-block{display:grid;gap:18px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2,.info-panel h2{display:flex;align-items:center;gap:10px;margin:0;font-size:26px}.section-heading--compact h2{font-size:22px}.section-heading--wrap{align-items:flex-start;flex-wrap:wrap;gap:14px}.section-heading-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.submission-filter-bar{display:flex;flex-wrap:wrap;gap:6px}.submission-filter-bar button{display:inline-flex;align-items:center;gap:8px;min-height:34px;border:1px solid var(--line-soft);border-radius:999px;background:var(--surface-high);color:var(--muted);padding:0 10px;font-size:12px;font-weight:900}.submission-filter-bar button:hover,.submission-filter-bar button.is-active{border-color:#4f77aa6b;background:var(--primary-soft);color:var(--primary)}.submission-filter-bar strong{display:inline-grid;min-width:22px;height:22px;place-items:center;border-radius:999px;background:#080e1d7a;color:var(--text);font-size:11px}.task-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.task-card{display:flex;flex-direction:column;gap:14px;min-height:330px;padding:20px;border-top:3px solid var(--primary)}.task-card:nth-child(2n){border-top-color:var(--secondary)}.task-card h3{margin:0;font-size:22px}.task-card p{margin:0;color:var(--muted);line-height:1.5}.task-card .button{margin-top:auto}.task-card-top,.task-meta,.tag-row{display:flex;align-items:center;gap:10px}.task-card-top{justify-content:space-between}.task-card-badges{display:flex;flex-wrap:wrap;gap:8px}.task-card-top strong{color:var(--primary);font-family:JetBrains Mono,monospace}.task-meta{flex-wrap:wrap;color:var(--muted);font-size:13px}.task-meta span{display:inline-flex;align-items:center;gap:6px}.difficulty,.language-chip,.tag-row span,.status-badge{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:0 10px;background:var(--surface-high);color:#d8e3fb;font-size:11px;font-weight:900;text-transform:uppercase}.language-chip{background:#44e2cd24;color:#7bf5e5}.tag-row{flex-wrap:wrap}.tag-row span{background:#4f77aa1f;color:var(--primary)}.status-badge--progress{background:#f8c47129;color:#ffd796}.status-badge--success{background:var(--secondary-soft);color:#7bf5e5}.status-badge--submitted{background:var(--primary-soft);color:var(--primary)}.status-badge--returned{background:#f8c47129;color:#ffd796}.dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.info-panel{min-width:0;padding:22px}.dashboard-page>*,.dashboard-columns>*,.teacher-grid>*,.management-grid>*,.metrics-row>*,.info-panel>*{min-width:0}.compact-list{display:grid;gap:14px;margin-top:18px}.compact-list>div{display:grid;gap:4px;border-left:3px solid var(--secondary);background:var(--surface-high);padding:14px}.compact-list span{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.feedback-snippet{display:grid;gap:4px;border-left:3px solid var(--secondary);border-radius:6px;background:#44e2cd14;padding:10px 12px}.feedback-snippet strong{color:#7bf5e5;font-size:12px;text-transform:uppercase}.feedback-snippet span{color:var(--muted);font-size:13px;line-height:1.4}.student-task-board{display:grid;gap:22px}.student-workspace{display:grid;gap:20px}.student-workspace-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.student-workspace-tabs button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d4d;color:var(--muted);padding:12px 14px;font:inherit;font-weight:900;text-align:left;cursor:pointer}.student-workspace-tabs button.is-active,.student-workspace-tabs button:hover{border-color:#4f77aa57;background:var(--primary-soft);color:var(--text)}.student-workspace-tabs span{min-width:0}.student-workspace-tabs strong{display:inline-grid;min-width:30px;height:28px;place-items:center;border-radius:999px;background:var(--surface-high);color:var(--primary);font-size:12px}.student-workspace-view{display:grid;gap:22px}.student-exam-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}.student-active-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.student-task-section{display:grid;gap:14px}.student-task-list,.student-exam-list{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.task-grid--section{grid-template-columns:repeat(4,minmax(0,1fr))}.student-success-panel{display:grid;align-content:start;gap:14px;min-width:0;border:1px solid rgba(79,119,170,.14);border-radius:8px;background:var(--surface);padding:22px;box-shadow:var(--shadow-card)}.student-success-panel--embedded{border:0;background:transparent;padding:0;box-shadow:none}.student-success-heading-actions{display:inline-flex;gap:10px;align-items:center}.student-success-view-tabs{display:inline-flex;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:3px}.student-success-view-tabs button{min-height:28px;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:0 10px;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.student-success-view-tabs button:hover,.student-success-view-tabs button.is-active{background:var(--surface);color:var(--primary);box-shadow:0 6px 14px #4f77aa1f}.student-success-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.9fr);gap:24px;align-items:start;min-width:0}.student-success-chart-area{display:grid;gap:14px;min-width:0}.student-success-layout .student-top-table{min-width:0;margin-top:0}.student-success-legend{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:12px;font-weight:900}.student-success-legend span{display:inline-flex;align-items:center;gap:7px}.student-success-dot{display:inline-block;width:10px;height:10px;border-radius:999px}.student-success-dot--student{background:var(--primary)}.student-success-dot--worst{background:var(--danger)}.student-success-dot--previous{background:#2f9e62}.student-success-chart-scroll{min-width:0;overflow:hidden;overflow-y:hidden}.student-success-chart{display:block;width:100%;height:auto;min-height:230px;overflow:visible}.student-success-grid-line{stroke:var(--line);stroke-width:1}.student-success-axis-line{stroke:#4f77aa47;stroke-width:1.5}.student-success-axis-label{fill:var(--muted);font-size:12px;font-weight:800}.student-success-x-tick{fill:#4f77aa47}.student-success-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3;stroke-dasharray:1;stroke-dashoffset:1;animation:student-success-line-draw .92s cubic-bezier(.22,1,.36,1) both}.student-success-line--student{stroke:var(--primary)}.student-success-line--worst{stroke:var(--danger);opacity:.82}.student-success-line--previous{stroke:#2f9e62;opacity:.9}@keyframes student-success-line-draw{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.student-success-line,.student-success-point{animation:none;opacity:1;stroke-dashoffset:0;transform:none}}.student-success-point{opacity:0;stroke:#fff;stroke-width:3;transform:scale(.76);transform-box:fill-box;transform-origin:center;animation:student-success-point-pop .36s ease-out both}@keyframes student-success-point-pop{to{opacity:1;transform:scale(1)}}.student-success-point--student{fill:var(--primary)}.student-success-point--worst{fill:var(--danger)}.student-success-point--previous{fill:#2f9e62}.student-top-table{display:grid;gap:8px;margin-top:10px}.student-top-heading{margin-bottom:2px}.student-top-row{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(76px,auto) minmax(82px,auto);gap:12px;align-items:center;min-height:38px;border-bottom:1px solid var(--line-soft);padding:8px 10px}.student-top-row:last-child{border-bottom:0}.student-top-row--head{min-height:0;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.student-top-row--head span:nth-child(3),.student-top-row--head span:nth-child(4){justify-self:end;text-align:right}.student-top-row--current{border:1px solid rgba(79,119,170,.28);border-radius:8px;background:var(--surface-high)}.student-top-row-separator{margin-top:6px;border-top:1px solid var(--line);color:var(--muted);padding:10px 10px 2px;font-size:12px;font-weight:900;text-transform:uppercase}.student-top-row strong{min-width:0;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.student-top-average,.student-top-points{justify-self:end;color:var(--primary);font-weight:900;text-align:right}.student-top-points{font-weight:400}.student-top-rank{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:900}.student-top-row--rank-1 .student-top-rank{color:#b68a22}.student-top-row--rank-2 .student-top-rank{color:#7f8a99}.student-top-row--rank-3 .student-top-rank{color:#a46e3a}@media(max-width:1120px){.student-progress-overview{grid-template-columns:1fr}.student-progress-success-side{border-left:0;border-top:1px solid var(--line);padding-top:24px;padding-left:0}.student-success-layout{grid-template-columns:1fr}}.section-count{display:inline-grid;min-width:34px;height:28px;place-items:center;border:1px solid var(--line-soft);border-radius:999px;background:var(--surface-high);color:var(--primary);font-size:12px;font-weight:900}.section-empty{border:1px dashed rgba(135,146,154,.32);border-radius:var(--radius);background:var(--surface-high);color:var(--muted);padding:16px}.task-card--student{min-height:0}.task-card--returned{border-top-color:var(--warning)}.task-card--submitted{border-top-color:var(--primary)}.task-card--completed{border-top-color:var(--secondary)}.task-card.task-card--archive{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,380px);gap:18px 28px;min-height:0;border-top:0;padding:26px 32px 32px}.task-card.task-card--archive .task-card-top,.task-card.task-card--archive h3,.task-card.task-card--archive p,.task-card.task-card--archive .button{grid-column:1 / -1}.task-card.task-card--archive .task-card-top{align-items:flex-start}.task-card.task-card--archive h3{font-size:23px}.task-card.task-card--archive p{font-size:17px}.task-card.task-card--archive .task-archive-score{color:var(--muted);font-family:inherit;font-size:22px;font-weight:900;white-space:nowrap}.task-card.task-card--archive .task-archive-score span{color:var(--text)}.task-archive-meta{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,380px);gap:18px;align-items:center}.task-archive-chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-width:0}.task-archive-chip-row .tag-chip,.task-time-chip{display:inline-flex;align-items:center;gap:6px;min-height:26px;border-radius:999px;background:var(--surface-high);color:var(--primary);padding:0 10px;font-size:11px;font-weight:900;text-transform:uppercase}.task-archive-completed{display:grid;gap:4px;justify-self:stretch;border:1px solid rgba(68,226,205,.34);border-radius:6px;background:#44e2cd1f;padding:10px 12px}.task-archive-completed strong{color:var(--text);font-size:12px;text-transform:uppercase}.task-archive-completed small{color:var(--primary);font-size:12px;font-weight:900}.task-card.task-card--archive .button{justify-content:center;width:100%;min-height:44px;color:var(--primary);font-size:16px;font-weight:900}.student-save-summary{display:grid;gap:4px;border-left:3px solid var(--primary);border-radius:6px;background:#4f77aa14;padding:10px 12px;color:var(--muted);font-size:13px;line-height:1.4}.workflow-mini,.workflow-notice{display:flex;align-items:flex-start;gap:10px;border-radius:6px;padding:12px;line-height:1.45}.workflow-mini{color:var(--muted);font-size:13px}.workflow-mini svg,.workflow-notice svg{flex:0 0 auto;margin-top:2px}.workflow-mini--submitted,.workflow-notice--locked{border:1px solid rgba(79,119,170,.28);background:#4f77aa14}.workflow-mini--returned,.workflow-notice--returned{border:1px solid rgba(248,196,113,.34);background:#f8c47117}.workflow-notice{color:#d8e3fb;font-size:13px;font-weight:700}.check-panel{display:grid;gap:12px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d47;padding:14px}.check-panel-heading,.check-summary{display:flex;align-items:center;justify-content:space-between;gap:10px}.check-panel-heading strong{color:var(--primary);font-size:13px;text-transform:uppercase}.check-panel-heading span,.check-summary span{color:var(--muted);font-size:12px;font-weight:900}.check-summary{justify-content:flex-start;flex-wrap:wrap}.check-list{display:grid;gap:8px}.check-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;border:1px solid var(--line-soft);border-left:3px solid var(--warning);border-radius:6px;background:var(--surface-high);padding:10px}.check-row svg{margin-top:1px}.check-row>div{display:grid;gap:3px}.check-row strong{color:var(--text);line-height:1.35}.check-row span,.check-row small{color:var(--muted);font-size:12px;line-height:1.4}.check-row--passed{border-left-color:var(--secondary)}.check-row--passed svg{color:var(--secondary)}.check-row--failed{border-left-color:var(--danger)}.check-row--failed svg{color:var(--danger)}.check-row--pending svg{color:var(--warning)}.library-panel{display:grid;gap:16px}.library-actions,.library-toolbar,.library-filter-bar,.lesson-chip-row,.library-import{display:flex;align-items:center;gap:10px}.library-actions,.library-filter-bar,.lesson-chip-row{flex-wrap:wrap}.library-toolbar{align-items:stretch;justify-content:space-between}.task-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:center}.task-section-tabs{justify-self:end}.task-language-filter-bar{grid-column:1 / -1}@media(max-width:720px){.task-toolbar{grid-template-columns:1fr}.task-section-tabs{justify-self:stretch;overflow-x:auto}.task-section-tabs button{flex:1 0 auto}}.library-search{flex:1 1 260px;min-width:220px;display:flex;align-items:center;gap:8px;min-height:44px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d4d;padding:0 12px;color:var(--muted)}.library-search input{width:100%;border:0;background:transparent;color:var(--text);outline:0}.library-filter-bar button,.lesson-chip{display:inline-flex;align-items:center;gap:7px;min-height:38px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high);color:var(--muted);padding:0 10px;font-weight:800;cursor:pointer}.library-filter-bar button:hover,.library-filter-bar button.is-active,.lesson-chip:hover{border-color:#4f77aa73;color:var(--text)}.library-filter-bar strong{color:var(--primary)}.library-import{align-items:end}.library-import label{flex:1 1 420px}.checkbox-row--compact{align-items:flex-start}.task-state-badge--template{background:#7d5cff2e;color:#cfc6ff}.teacher-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.submissions-panel{grid-column:1 / -1}.teacher-list{display:grid;gap:10px;margin-top:18px}.progressive-list-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:14px;color:var(--muted);font-size:12px;font-weight:900}.progressive-list-footer span{display:inline-flex;align-items:center;gap:8px}.progressive-list-footer svg{color:var(--primary);animation:loader-spin .9s linear infinite}.progressive-list-footer--done{justify-content:center}.assignment-row,.student-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high);color:var(--text);padding:14px;text-align:left}.assignment-row:hover{border-color:#4f77aa73}.assignment-row--task{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.assignment-row--task.is-expanded{border-color:#4f77aa85;box-shadow:0 14px 34px #1c375714}.task-row-open{display:grid;gap:12px;width:100%;min-width:0;border:0;background:transparent;color:var(--text);padding:0;text-align:left}.task-row-open:hover strong{color:var(--primary)}.task-row-main{display:grid;gap:5px;min-width:0}.task-row-title,.task-row-actions{display:flex;align-items:center;gap:8px}.task-row-title{flex-wrap:wrap}.task-row-chevron{margin-left:auto;color:var(--muted);transition:color .16s ease,transform .16s ease}.task-row-chevron.is-open{color:var(--primary);transform:rotate(180deg)}.task-row-stats{display:grid;grid-template-columns:repeat(5,minmax(70px,1fr));gap:8px}.task-row-stats span{display:grid;gap:2px;min-height:56px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);padding:8px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.task-row-stats strong{color:var(--primary);font-size:20px}.task-row-actions{justify-content:flex-end}.task-student-drawer{grid-column:1 / -1;display:grid;gap:14px;margin-top:14px;border-top:1px solid var(--line-soft);padding-top:16px}.task-student-drawer-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.task-student-drawer-heading h3{margin:2px 0 0}.task-student-list{display:grid;gap:8px}.task-student-row{display:grid;grid-template-columns:minmax(180px,1.1fr) auto minmax(180px,.8fr) auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:11px 12px}.task-student-row>span:first-child{display:grid;gap:3px}.task-student-row small{color:var(--muted)}.task-student-row .status-badge{justify-self:start}.task-student-row .button{justify-self:end}.task-state-badge{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:0 9px;background:#87929a29;color:#d8e3fb;font-size:10px;font-weight:900;text-transform:uppercase}.task-state-badge--published{background:var(--secondary-soft);color:#7bf5e5}.task-state-badge--draft{background:#f8c47129;color:#ffd796}.task-state-badge--archived{background:#ff8c8624;color:#ffb4ab}.assignment-row small,.student-row small{display:block;margin-top:4px;color:var(--muted)}.student-row{justify-content:flex-start}.submission-table{display:grid;gap:8px;margin-top:18px;overflow-x:auto}.submission-table-body{display:grid;gap:8px}.submission-table-head,.submission-table-row{display:grid;grid-template-columns:44px 1.1fr 1.4fr .8fr .8fr 1fr .8fr;min-width:1080px;gap:12px;align-items:center;padding:12px 14px}.submission-table-head{color:var(--primary);font-size:12px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.submission-table-row{border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high)}.submission-table-row--submitted{border-color:#d9953757;border-left:4px solid var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--surface))}.editor-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,1fr);grid-template-rows:auto auto;gap:14px;height:auto;min-height:0}.task-example-workspace,.task-preview-shell{display:grid;gap:18px;min-width:0}.task-preview-banner,.task-example-navigator{border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-soft)}.task-preview-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 22px}.task-preview-banner>div{display:grid;gap:3px}.task-preview-banner span,.task-preview-banner small{color:var(--text-soft)}.task-preview-banner span{color:var(--primary);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.task-example-navigator{overflow:hidden}.task-example-navigator-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px 14px}.task-example-navigator-heading>div:first-child{display:grid;gap:4px}.task-example-navigator-heading strong{font-size:21px}.task-example-navigator-actions{display:flex;gap:8px}.task-example-page-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;border-top:1px solid var(--line);background:var(--line)}.task-example-page-tabs>button{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;min-width:0;border:0;background:var(--surface);color:var(--text);padding:13px 16px;text-align:left;cursor:pointer}.task-example-page-tabs>button:hover,.task-example-page-tabs>button.is-active{background:color-mix(in srgb,var(--primary) 9%,var(--surface))}.task-example-page-tabs>button.is-active{box-shadow:inset 0 -3px 0 var(--primary)}.task-example-page-tabs>button>span:first-child{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--surface-high);color:var(--primary);font-weight:800}.task-example-page-tabs>button.is-active>span:first-child{background:var(--primary);color:#fff}.task-example-page-tabs>button>span:last-child{display:grid;gap:3px;min-width:0}.task-example-page-tabs strong,.task-example-page-tabs small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-example-page-tabs small{color:var(--text-soft)}@media(max-width:760px){.task-preview-banner,.task-example-navigator-heading{align-items:flex-start;flex-direction:column}.task-example-page-tabs{grid-template-columns:1fr}}.assignment-panel{display:flex;flex-direction:column;grid-column:1 / -1;gap:12px;min-width:0;overflow:visible;padding:18px 22px}.assignment-panel h1{margin:0;font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.assignment-panel p{margin:0;color:var(--muted);line-height:1.6}.assignment-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.assignment-panel--standalone{gap:0}.assignment-summary--standalone{grid-template-columns:1fr}.standalone-editor-title-row{display:flex;align-items:center;gap:14px;min-width:0}.standalone-editor-title-row h1{flex:0 1 auto}.standalone-editor-actions{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.standalone-editor-actions .local-file-status{margin-right:auto}.assignment-summary-side>.standalone-editor-actions{width:100%}.editor-page:fullscreen,.editor-page.is-app-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;width:100vw;height:100vh;min-height:100vh;overflow:auto;background:var(--background);color:var(--text);padding:18px}.editor-page:fullscreen::backdrop{background:var(--background, #f7fbfd)}.editor-page:fullscreen .editor-stage,.editor-page:fullscreen .workspace-output-column,.editor-page.is-app-fullscreen .editor-stage,.editor-page.is-app-fullscreen .workspace-output-column{height:calc(100vh - 130px)}.editor-page--compiled{grid-template-columns:minmax(0,1fr) minmax(300px,.42fr)}.editor-page--compiled .editor-stage{grid-row:2}.editor-page--compiled.editor-page--typescript{grid-template-columns:minmax(0,1fr) minmax(360px,.55fr)}.compiled-input-panel{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:560px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.editor-page--typescript .compiled-input-panel{min-height:260px}.compiled-preview-panel{display:grid;min-height:300px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.editor-page--compiled .compiled-preview-panel{grid-column:2;grid-row:3}.compiled-preview-panel .preview-panel{min-height:0}.compiled-input-panel .panel-toolbar span{color:var(--muted);font-size:12px;font-weight:800}.compiled-stdin{width:100%;min-height:0;resize:none;border:0;background:var(--surface-strong);color:var(--text);padding:18px;font-family:JetBrains Mono,monospace;line-height:1.55;outline:0}.editor-page--micropython,.editor-page--compiled.editor-page--arduino{grid-template-columns:minmax(0,1fr) minmax(330px,.46fr)}.editor-page--arduino .editor-stage{grid-row:2;grid-template-rows:auto minmax(0,1fr);min-height:720px}.editor-page--arduino .monaco-shell{min-height:0}.arduino-side-column{grid-column:2;grid-row:2}.arduino-mode-switch>button{min-width:142px}.editor-page--micropython .editor-stage{grid-template-rows:auto minmax(0,1fr)}.micropython-mode-switch{display:inline-flex;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-high);padding:4px}.micropython-mode-switch button{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:0 12px;font-weight:800}.micropython-mode-switch button.is-active{background:var(--surface);color:var(--primary);box-shadow:0 4px 12px #4f77aa1f}.micropython-block-editor{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:0;overflow:hidden}.micropython-block-palette{overflow:auto;border-right:1px solid var(--line);background:var(--surface-high);padding:12px}.micropython-block-palette>div{display:grid;gap:7px;margin-bottom:14px}.micropython-block-palette strong{color:var(--muted);font-size:11px;text-transform:uppercase}.micropython-block-palette button{display:flex;align-items:center;gap:7px;border:0;border-left:4px solid var(--scratch-block-color);border-radius:6px;background:var(--surface);color:var(--text);padding:9px;text-align:left;font-weight:700}.micropython-block-list{display:grid;align-content:start;gap:10px;overflow:auto;background:var(--surface-strong);padding:14px}.micropython-code-preview{min-height:560px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.micropython-code-preview pre{height:calc(100% - 52px);margin:0;overflow:auto;background:var(--surface-strong);padding:18px;color:var(--text);font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.55;white-space:pre-wrap}.micropython-side-column{display:grid;grid-template-rows:auto minmax(360px,1fr);align-self:stretch;gap:12px;min-width:0;min-height:0}.micropython-side-column>.console-panel{height:100%;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card)}.micropython-hardware-panel{display:grid;gap:12px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card)}.micropython-hardware-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);background:var(--surface-high);padding:11px 14px}.micropython-hardware-heading>span,.micropython-hardware-heading>strong{display:inline-flex;align-items:center;gap:7px}.micropython-hardware-heading>span{color:var(--text);font-weight:900}.micropython-hardware-heading>strong{border-radius:999px;background:var(--surface-strong);color:var(--muted);padding:5px 9px;font-size:10px}.micropython-hardware-heading>strong.is-connected{background:color-mix(in srgb,var(--success) 16%,var(--surface));color:var(--success)}.micropython-device-summary{display:grid;gap:11px;padding:0 14px}.micropython-device-summary>div:first-child{display:grid;gap:3px}.micropython-device-summary>div:first-child span{color:var(--muted);font-size:11px}.micropython-device-actions{display:flex;flex-wrap:wrap;gap:7px}.micropython-device-actions .button{flex:1 1 auto;justify-content:center;min-width:100px}.micropython-flash-progress{display:grid;gap:5px;padding:0 14px}.micropython-flash-progress>div{height:8px;overflow:hidden;border-radius:999px;background:var(--surface-strong)}.micropython-flash-progress>div span{display:block;height:100%;border-radius:inherit;background:var(--success);transition:width .16s ease}.micropython-flash-progress small{color:var(--muted);font-size:10px}.micropython-device-message{margin:0 14px;border-left:3px solid var(--primary);border-radius:6px;background:var(--primary-soft);color:var(--text);padding:8px 10px;font-size:11px;line-height:1.45}.micropython-device-message.is-warning{border-left-color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,var(--surface))}.micropython-device-message.is-warning strong{color:var(--warning)}.micropython-serial-panel{border-top:1px solid var(--line);background:var(--background-deep)}.micropython-serial-panel summary{display:flex;align-items:center;gap:7px;cursor:pointer;color:var(--muted);padding:9px 14px;font-size:11px;font-weight:900}.micropython-serial-panel pre{max-height:150px;min-height:72px;margin:0;overflow:auto;border-block:1px solid color-mix(in srgb,var(--line) 70%,transparent);background:#0b1220;color:#a9e7c5;padding:10px 12px;font:11px/1.5 JetBrains Mono,monospace;white-space:pre-wrap}.micropython-serial-panel form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;padding:8px}.micropython-serial-panel input{min-width:0;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);padding:7px 9px}.micropython-classic-editor{grid-template-rows:minmax(0,1fr);min-height:560px;border-top:1px solid var(--line)}.micropython-classic-editor .scratch-code-layout{grid-row:1}.micropython-classic-editor .scratch-canvas-scroll{padding-top:52px}.micropython-event-hat{border-color:#247281;background:#3d9aac;color:#fff}.micropython-library-page{display:grid;align-content:start;gap:18px;min-height:560px;overflow:auto;background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--primary) 10%,transparent),transparent 28%),var(--surface-strong);padding:22px}.micropython-library-heading{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--primary);padding:17px}.micropython-library-heading>div{display:grid;gap:4px}.micropython-library-heading strong{color:var(--text);font-size:20px}.micropython-library-heading span,.micropython-library-grid article span{color:var(--muted);font-size:12px;line-height:1.45}.micropython-library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.micropython-library-grid article{display:grid;align-content:start;gap:7px;min-height:132px;border:1px solid var(--line);border-radius:13px;background:var(--surface);padding:15px}.micropython-library-grid code{width:fit-content;border-radius:7px;background:var(--primary-soft);color:var(--primary);padding:4px 7px;font-weight:900}.micropython-library-example{display:grid;gap:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:17px}.micropython-library-example pre{margin:0;overflow:auto;border-radius:9px;background:var(--background-deep);color:var(--text);padding:15px;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.55}@media(max-width:1100px){.micropython-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.micropython-mode-switch{width:100%}.micropython-mode-switch button{flex:1;justify-content:center;padding-inline:6px}.micropython-library-grid{grid-template-columns:1fr}.micropython-serial-panel form{grid-template-columns:1fr 1fr}.micropython-serial-panel input{grid-column:1 / -1}}.assignment-header{display:grid;gap:8px;min-width:0}.assignment-summary-side{display:grid;justify-items:end;gap:10px}.task-meta--compact{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.assignment-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid var(--line-soft);border-radius:999px;background:var(--surface-strong);color:var(--primary);cursor:pointer;font-weight:900;padding:8px 14px}.assignment-toggle svg{transition:transform .18s ease}.assignment-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.assignment-full{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assignment-full>p,.assignment-full .check-panel,.assignment-full .save-history,.assignment-full .feedback-box{grid-column:1 / -1}.workspace-output-column{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:0}.workspace-output-column>.preview-panel,.workspace-output-column>.python-runtime-panel,.workspace-output-column>.sql-inspector-panel,.workspace-output-column>.pseudo-diagram-panel,.workspace-output-column>.scratch-preview-panel,.workspace-output-column>.python-activity-panel{flex:1 1 auto;min-height:0}.submission-confirm-panel{display:grid;gap:12px;border:1px solid rgba(79,119,170,.2);border-left:4px solid var(--primary);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-card);padding:16px}.submission-confirm-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.submission-confirm-heading h2,.submission-confirm-heading p{margin:0}.submission-confirm-heading h2{color:var(--text);font-size:22px}.submission-confirm-heading p{margin-top:6px;color:var(--muted)}.submission-confirm-panel .check-panel{max-height:280px;overflow:auto;box-shadow:none}.submission-confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.editor-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;display:grid;place-items:center;background:#20202961;padding:20px}.editor-confirm-dialog{display:grid;gap:18px;width:min(100%,500px);border:1px solid rgba(79,119,170,.18);border-radius:8px;background:var(--surface);box-shadow:0 24px 70px #2020292e;padding:22px}.editor-confirm-heading{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start}.editor-confirm-heading h2,.editor-confirm-heading p{margin:0}.editor-confirm-heading h2{color:var(--text);font-size:26px}.editor-confirm-heading p{margin-top:6px;color:var(--muted);line-height:1.5}.editor-confirm-icon{display:grid;width:52px;height:52px;place-items:center;border-radius:8px;background:var(--surface-high);color:var(--primary)}.editor-confirm-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.editor-confirm-summary span{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:12px}.editor-confirm-summary span:only-child{grid-column:1 / -1}.editor-confirm-summary strong{color:var(--primary);font-size:12px;text-transform:uppercase}.editor-confirm-summary small{overflow:hidden;color:var(--text);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.editor-confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.task-meta--wrap{margin-top:14px}.objective-box{border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high);padding:16px}.objective-box h2{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:18px}.objective-box ul{display:grid;gap:8px;margin:0;padding-left:18px;color:var(--muted)}.feedback-box{display:grid;gap:8px;border:1px solid rgba(68,226,205,.28);border-radius:6px;background:#44e2cd14;padding:16px}.feedback-box h2{margin:0;color:#7bf5e5;font-size:18px}.feedback-box strong{color:var(--primary)}.feedback-box p{margin:0;color:var(--muted)}.save-status,.save-history{display:grid;gap:6px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d4d;padding:14px}.save-status strong,.save-history strong{color:var(--primary);font-size:12px;letter-spacing:.05em;text-transform:uppercase}.save-status span,.save-status small,.save-history span{color:var(--muted);font-size:13px;line-height:1.45}.save-status--saving{border-color:#4f77aa6b}.save-status--saved{border-color:#44e2cd52}.save-status--error{border-color:#ff8c866b}.save-status--error span{color:#ffb4ab}.editor-stage{display:grid;grid-template-rows:auto minmax(0,1fr) 210px;height:calc(100vh - 260px);min-height:560px;min-width:0;overflow:hidden}.workspace-output-column{height:calc(100vh - 260px);min-height:560px}.editor-toolbar,.panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border-bottom:1px solid var(--line-soft);background:#151b2bb8;padding:8px 12px}.file-tabs{display:flex;min-width:0;overflow-x:auto}.editor-file-group{display:flex;align-items:center;gap:10px;min-width:0}.file-tabs button{display:inline-flex;align-items:center;gap:8px;min-height:38px;border:1px solid transparent;border-radius:6px 6px 0 0;background:transparent;color:var(--muted);padding:0 12px;font-family:JetBrains Mono,monospace}.file-tabs button span{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-tabs button.is-active{border-color:var(--line-soft);background:var(--surface-high);color:var(--secondary)}.local-file-status{display:inline-flex;align-items:center;max-width:min(260px,34vw);min-height:30px;overflow:hidden;border:1px solid rgba(79,119,170,.18);border-radius:999px;background:#4f77aa1a;color:var(--primary);padding:0 10px;font-size:12px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.editor-actions{display:flex;align-items:center;gap:8px}.editor-action-button{position:relative;flex:0 0 52px;width:52px;min-width:52px;min-height:44px;padding:0;justify-content:center;gap:0}.editor-action-button svg{flex-shrink:0}.editor-action-button:after{position:absolute;z-index:30;top:calc(100% + 8px);left:50%;max-width:min(220px,70vw);padding:7px 10px;border:1px solid rgba(79,119,170,.2);border-radius:8px;background:var(--surface);box-shadow:0 12px 28px #18233924;color:var(--text);content:attr(data-tooltip);font-size:12px;font-weight:800;line-height:1.2;opacity:0;pointer-events:none;text-align:center;transform:translate(-50%,-4px);transition:opacity .14s ease,transform .14s ease;white-space:nowrap}.editor-action-button:hover:after,.editor-action-button:focus-visible:after{opacity:1;transform:translate(-50%)}.editor-actions .editor-action-button:last-child:after{right:0;left:auto;transform:translateY(-4px)}.editor-actions .editor-action-button:last-child:hover:after,.editor-actions .editor-action-button:last-child:focus-visible:after,.standalone-editor-actions .editor-action-button:last-child:hover:after,.standalone-editor-actions .editor-action-button:last-child:focus-visible:after{transform:translate(0)}.standalone-editor-actions .editor-action-button:last-child:after{right:0;left:auto;transform:translateY(-4px)}.save-indicator{display:inline-flex;align-items:center;min-height:30px;border:1px solid var(--line-soft);border-radius:999px;background:var(--surface-high);color:var(--muted);padding:0 10px;font-size:11px;font-weight:900;text-transform:uppercase;white-space:nowrap}.save-indicator--saving{border-color:#4f77aa6b;color:var(--primary)}.save-indicator--saved{border-color:#44e2cd52;color:#7bf5e5}.save-indicator--error{border-color:#ff8c866b;color:#ffb4ab}.save-indicator--locked{border-color:#f8c47157;color:#ffd796}.monaco-shell{min-height:0;overflow:hidden;background:#0b1020}.code-editor-frame{display:grid;grid-template-rows:minmax(0,1fr);width:100%;height:100%;min-height:0;background:var(--surface-strong)}.code-editor-font-controls{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;min-width:0}.code-editor-frame-with-format,.code-editor-frame-with-notice{grid-template-rows:auto minmax(0,1fr)}.code-editor-frame-with-format.code-editor-frame-with-notice{grid-template-rows:auto auto minmax(0,1fr)}.code-editor-format-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;padding:6px 12px;border-bottom:1px solid var(--line-soft);background:var(--surface-high)}.code-editor-format-language{color:var(--muted);font-size:11px;font-weight:700}.code-editor-format-button{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:4px 9px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-strong);color:var(--primary);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.code-editor-format-button:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary)}.code-editor-format-button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.code-editor-format-button:disabled{opacity:.55;cursor:wait}.code-editor-format-slot{display:inline-flex;align-items:center}.code-editor-format-slot:empty{display:none}.code-editor-format-button--inline{width:30px;height:30px;padding:0;justify-content:center}.code-editor-format-button kbd{color:var(--muted);font-size:10px;font-weight:400}.code-editor-format-notice{padding:7px 12px;max-height:100px;overflow:auto;overflow-wrap:anywhere;white-space:pre-wrap;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line-soft)}.code-editor-format-notice.is-error{color:var(--danger, #b42318)}@media(max-width:540px){.code-editor-format-button kbd{display:none}}.editor-actions>.code-editor-font-controls{margin-left:2px;border-left:1px solid var(--line-soft);padding-left:9px}.exam-programming-editor-toolbar .code-editor-font-controls,.review-code-panel>.editor-toolbar .code-editor-font-controls{margin-left:auto}.code-editor-font-button{display:inline-grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high);color:var(--primary);cursor:pointer}.code-editor-font-button:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.code-editor-font-button:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 32%,transparent);outline-offset:1px}.code-editor-font-button:disabled{cursor:not-allowed;opacity:.38}.code-editor-font-value{display:inline-flex;width:47px;min-width:47px;height:30px;align-items:center;justify-content:center;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;font-weight:800}.code-editor-monaco{min-width:0;min-height:0;overflow:hidden}.monaco-editor .monaco-trace-active-line{background:#4f77aa26}.monaco-editor .monaco-trace-line-decoration{border-left:4px solid var(--primary)}.monaco-editor .monaco-trace-before:before{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:999px;background:var(--primary);content:"";vertical-align:middle}.console-panel{min-height:0;border-top:1px solid var(--line-soft);background:var(--background-deep)}.console-tabs{display:flex;align-items:center;gap:14px;min-height:42px;border-bottom:1px solid var(--line-soft);padding:0 16px}.console-tabs span,.console-tabs button{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--muted);font-weight:800}.console-tabs span.is-active{color:var(--secondary)}.console-tabs button{margin-left:auto}.console-tabs .console-drawer-toggle{margin-left:0}.console-tabs .console-drawer-toggle.is-active{color:var(--primary)}.console-drawer-toggle small{display:inline-grid;min-width:20px;height:20px;place-items:center;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:10px}.console-output{height:calc(100% - 42px);overflow:auto;padding:12px 18px;font-family:JetBrains Mono,monospace;font-size:13px}.editor-page--web .editor-stage,.editor-page--drawer-console .editor-stage{grid-template-rows:auto minmax(0,1fr)}.editor-page--web>.console-panel--drawer,.editor-page--drawer-console>.console-panel--drawer{position:sticky;bottom:0;z-index:12;grid-column:1 / -1;max-height:300px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 -14px 32px #2020291f;transition:max-height .22s ease,box-shadow .22s ease}.editor-page--web:fullscreen,.editor-page--drawer-console:fullscreen,.editor-page--web.is-app-fullscreen,.editor-page--drawer-console.is-app-fullscreen{grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.editor-page--web:fullscreen .editor-stage,.editor-page--web:fullscreen .workspace-output-column,.editor-page--drawer-console:fullscreen .editor-stage,.editor-page--drawer-console:fullscreen .workspace-output-column,.editor-page--web.is-app-fullscreen .editor-stage,.editor-page--web.is-app-fullscreen .workspace-output-column,.editor-page--drawer-console.is-app-fullscreen .editor-stage,.editor-page--drawer-console.is-app-fullscreen .workspace-output-column{height:auto;min-height:0}.editor-page--web:fullscreen>.console-panel--drawer,.editor-page--drawer-console:fullscreen>.console-panel--drawer,.editor-page--web.is-app-fullscreen>.console-panel--drawer,.editor-page--drawer-console.is-app-fullscreen>.console-panel--drawer{position:static;grid-row:3}.editor-page--web>.console-panel--drawer.is-collapsed,.editor-page--drawer-console>.console-panel--drawer.is-collapsed{max-height:43px;box-shadow:0 -5px 16px #20202914}.console-panel--drawer .console-tabs{cursor:pointer}.console-panel--drawer .console-output{height:256px;transition:opacity .14s ease}.console-panel--drawer.is-collapsed .console-output{opacity:0;pointer-events:none}.console-line{display:flex;gap:12px;margin:0 0 8px;color:#d8e3fb;white-space:pre-wrap}.console-line span{min-width:46px;color:var(--secondary)}.console-line--error span{color:var(--danger)}.console-line--warn span{color:var(--warning)}.console-line--idle{color:var(--muted)}.preview-panel{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;overflow:hidden}.panel-toolbar>span{display:inline-flex;align-items:center;gap:10px;min-width:0;color:var(--primary);font-weight:900;text-transform:uppercase}.panel-toolbar>span>svg{flex:0 0 auto}.panel-toolbar small{color:var(--muted);font-family:JetBrains Mono,monospace}.preview-panel iframe{width:100%;height:100%;border:0;background:var(--surface)}.editor-page--python{grid-template-columns:minmax(0,1fr) minmax(360px,1fr)}.python-runtime-panel,.sql-inspector-panel,.pseudo-diagram-panel,.python-activity-panel{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;overflow:hidden}.editor-page--sql,.editor-page--pseudocode{grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr)}.editor-page--pseudocode.is-graphic-mode>.editor-stage{grid-column:1 / -1}.editor-page--pseudocode.is-graphic-mode .editor-toolbar{justify-content:flex-end}.editor-page--pseudocode.is-graphic-mode>.workspace-output-column{display:contents}.pseudo-mode-backdrop{z-index:80}.pseudo-mode-switch{display:inline-flex;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:3px}.pseudo-mode-switch button{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:7px 10px;font-weight:800}.pseudo-mode-switch button.is-active{background:var(--primary-soft);color:var(--primary)}.pseudo-diagram-stats{padding-inline:6px;color:var(--muted);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700}.pseudo-graphic-editor,.pseudo-generated-code-panel{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;background:var(--surface-strong)}.pseudo-graphic-editor{grid-template-rows:minmax(0,1fr)}.pseudo-editor-mode-pane[hidden]{display:none!important}.pseudo-editor-mode-pane:not([hidden]){min-width:0;min-height:0}.pseudo-editor-mode-pane>.pseudo-graphic-editor{height:100%}.pseudo-flow-builder{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:0;overflow:hidden}.pseudo-symbol-palette{display:flex;align-content:flex-start;flex-direction:column;gap:8px;min-height:0;overflow:auto;border-right:1px solid var(--line);background:var(--surface);padding:16px}.pseudo-symbol-palette>small{margin-bottom:4px;color:var(--muted)}.pseudo-symbol-palette>button{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);padding:8px;text-align:left;font-weight:800}.pseudo-symbol-palette>button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pseudo-symbol-preview{display:inline-grid;width:36px;height:30px;place-items:center;border:2px solid var(--primary);border-radius:5px;color:var(--primary)}.pseudo-symbol-preview.is-decision,.pseudo-symbol-preview.is-loop{transform:rotate(45deg) scale(.72);border-color:var(--warning);color:var(--warning)}.pseudo-symbol-preview.is-decision>svg,.pseudo-symbol-preview.is-loop>svg{transform:rotate(-45deg) scale(1.2)}.pseudo-symbol-preview.is-input,.pseudo-symbol-preview.is-output{transform:skew(-10deg)}.pseudo-connection-tool{display:grid;gap:7px;margin-top:8px;border-top:1px solid var(--line);padding-top:14px}.pseudo-connection-tool strong{display:inline-flex;align-items:center;gap:7px}.pseudo-connection-tool select{width:100%;height:40px;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-radius:8px;background-color:var(--surface-strong);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234f77aa' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;color:var(--text);padding:0 36px 0 12px;font-size:.88rem;font-weight:700;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.pseudo-connection-tool select:hover:not(:disabled){border-color:color-mix(in srgb,var(--primary) 58%,var(--line));background-color:var(--surface)}.pseudo-connection-tool select:focus-visible{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.pseudo-connection-tool select:disabled{cursor:not-allowed;background-color:var(--surface-high);color:var(--muted);opacity:.65}.pseudo-graphic-canvas{position:relative;min-height:0;overflow:auto;background-color:var(--surface-strong);background-image:radial-gradient(circle,color-mix(in srgb,var(--muted) 28%,transparent) 1px,transparent 1px);background-size:22px 22px;scrollbar-width:none}.pseudo-graphic-canvas::-webkit-scrollbar{display:none}.pseudo-flow-nodes{position:relative;z-index:1;width:max(100%,1200px);height:max(100%,760px)}.pseudo-builder-edge-layer{position:absolute;z-index:0;top:0;left:0;overflow:visible;pointer-events:none}.pseudo-builder-edge-layer path{fill:none;stroke:var(--primary);stroke-width:2}.pseudo-builder-edge-layer marker path{fill:var(--primary);stroke:none}.pseudo-builder-edge-layer text{fill:var(--text);paint-order:stroke;stroke:var(--surface-strong);stroke-width:5px;font-size:12px;font-weight:900}.pseudo-manual-connections{position:relative;z-index:2;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:min(100%,620px);margin-top:20px;border-top:1px solid var(--line);padding-top:12px}.pseudo-manual-connections>strong{width:100%;text-align:center}.pseudo-manual-connections>span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:4px 6px 4px 10px;color:var(--muted);font-size:.82rem}.pseudo-manual-connections button{display:inline-grid;width:25px;height:25px;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--danger)}.pseudo-graphic-terminal{position:absolute;min-width:130px;border:2px solid var(--primary);border-radius:999px;background:#10afc0;color:#fff;padding:10px 22px;text-align:center;font-weight:900;cursor:grab;-webkit-user-select:none;user-select:none}.pseudo-graphic-connector{display:block;color:var(--primary);padding:5px;font-weight:900}.pseudo-graphic-step{position:absolute;width:300px;cursor:grab}.pseudo-graphic-step>div{display:flex;align-items:stretch;flex-direction:column;gap:8px}.pseudo-node-shape{display:grid;min-height:76px;place-items:center;border-radius:6px;background:#078fc5;padding:14px 18px;box-shadow:0 8px 18px #07547d29}.pseudo-node-shape input{width:100%;border:0;outline:0;background:transparent;color:#fff;text-align:center;font-weight:900}.pseudo-node-shape input::selection{background:#ffffff47}.pseudo-graphic-step.is-input .pseudo-node-shape,.pseudo-graphic-step.is-output .pseudo-node-shape{clip-path:polygon(10% 0,100% 0,90% 100%,0 100%)}.pseudo-graphic-step.is-decision .pseudo-node-shape,.pseudo-graphic-step.is-loop .pseudo-node-shape{min-height:120px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border-radius:0;background:#c70b4c;padding-inline:58px}.pseudo-graphic-step.is-return .pseudo-node-shape{border-radius:999px;background:#10afc0}.pseudo-node-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;opacity:.38;transition:opacity .16s ease}.pseudo-graphic-step:hover .pseudo-node-controls,.pseudo-graphic-step:focus-within .pseudo-node-controls,.pseudo-graphic-step:hover .pseudo-node-connect,.pseudo-graphic-step:focus-within .pseudo-node-connect{opacity:1}.pseudo-node-controls button{display:inline-grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--danger)}.pseudo-graphic-step:active,.pseudo-graphic-terminal:active{cursor:grabbing}.pseudo-node-connect{display:grid;grid-column:1 / -1;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:6px;border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:.78rem;font-weight:800;opacity:.38;transition:opacity .16s ease}.pseudo-node-connect select{width:100%}.pseudo-node-branches{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pseudo-node-branches .pseudo-node-connect{grid-template-columns:auto auto}.pseudo-node-branches .pseudo-node-connect select{grid-column:1 / -1}.pseudo-node-branches .pseudo-node-connect strong{color:var(--text)}.pseudo-node-edge{display:flex;grid-column:1 / -1;align-items:center;justify-content:space-between;gap:8px;border-radius:6px;background:var(--primary-soft);padding:4px 5px 4px 9px;color:var(--primary);font-size:.76rem;font-weight:800}.pseudo-node-edge button{display:inline-grid;width:25px;height:25px;place-items:center;border:0;border-radius:5px;background:transparent;color:var(--danger)}.pseudo-graphic-step select,.pseudo-graphic-step input{min-width:0}.pseudo-graphic-step-actions{display:inline-flex;gap:4px}.pseudo-graphic-step-actions button{display:inline-grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted)}.pseudo-generated-code-panel .monaco-shell{min-height:0}@media(max-width:720px){.pseudo-flow-builder{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.pseudo-symbol-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:230px;border-right:0;border-bottom:1px solid var(--line)}.pseudo-symbol-palette>strong,.pseudo-symbol-palette>small,.pseudo-connection-tool{grid-column:1 / -1}.pseudo-graphic-step>div{grid-template-columns:1fr}}.sql-inspector-body{display:grid;align-content:start;gap:16px;min-height:0;overflow:auto;padding:18px}.pseudo-diagram-body{min-height:0;overflow:auto;padding:18px}.panel-toolbar--diagram{align-items:center;flex-wrap:wrap}.pseudo-diagram-toolbar-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;flex-wrap:wrap}.pseudo-diagram-export-button{min-height:34px;padding:0 10px;font-size:12px;font-weight:900}.pseudo-diagram-export-button svg{flex-shrink:0}.pseudo-flowchart{min-height:100%;overflow:auto;border:1px solid var(--line-soft);border-radius:8px;background:linear-gradient(rgba(79,119,170,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(79,119,170,.04) 1px,transparent 1px),#fff;background-size:28px 28px}.pseudo-flowchart svg{display:block;width:100%;min-width:560px}.pseudo-flowchart marker path{fill:#24344d}.pseudo-flow-edge{fill:none;stroke:#24344d;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.pseudo-flow-edge--branch-yes,.pseudo-flow-edge--branch-no{stroke:#1f2937}.pseudo-flow-edge--loop{stroke:var(--warning);stroke-dasharray:6 5}.pseudo-flow-edge-label{fill:#1f2937;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;font-weight:800}.pseudo-flow-node rect,.pseudo-flow-node polygon{fill:var(--surface-high);stroke:var(--line);stroke-width:1.4}.pseudo-flow-node--decision polygon,.pseudo-flow-node--loop polygon{fill:#4f77aa14}.pseudo-flow-node--input polygon,.pseudo-flow-node--output polygon{fill:#2dd4bf14}.pseudo-flow-node--start rect,.pseudo-flow-node--end rect{fill:#4f77aa1f}.pseudo-flow-label{fill:var(--text);font-size:13px;font-weight:800}.sql-inspector-section{display:grid;gap:12px;min-width:0}.sql-empty-state{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px;border:1px dashed var(--line-soft);border-radius:8px;color:var(--muted);text-align:center}.sql-result-scroll{max-width:100%;overflow:auto;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-high)}.sql-result-table{width:100%;min-width:420px;border-collapse:collapse;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.sql-result-table th,.sql-result-table td{border-bottom:1px solid var(--line-soft);padding:10px 12px;text-align:left;vertical-align:top}.sql-result-table th{color:var(--primary);font-weight:800}.sql-result-table tr:last-child td{border-bottom:0}.sql-dependency-graph{overflow:auto;border:1px solid var(--line-soft);border-radius:8px;background:linear-gradient(180deg,#4f77aa0d,#fff0)}.sql-dependency-graph svg{display:block;width:100%;min-width:520px}.sql-dependency-graph marker path{fill:var(--primary)}.sql-dependency-edge{stroke:var(--primary);stroke-linecap:round;stroke-width:2}.sql-dependency-edge--unresolved{stroke:var(--warning);stroke-dasharray:6 5}.sql-dependency-label{fill:var(--muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:700}.sql-table-node rect{fill:var(--surface-high);stroke:var(--line);stroke-width:1.4}.sql-table-node-title{fill:var(--text);font-size:14px;font-weight:800}.sql-table-node-meta{fill:var(--muted);font-size:11px;font-weight:700}.sql-table-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.sql-table-card{display:grid;gap:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-high);padding:14px}.sql-table-card div{display:grid;gap:3px}.sql-table-card strong{font-size:16px}.sql-table-card small{color:var(--muted);font-size:12px}.sql-table-card ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.sql-table-card li{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line-soft);padding-top:6px}.python-activity-toolbar{align-items:center}.python-activity-title{display:inline-flex;min-width:0;align-items:center;gap:9px}.python-activity-title svg{flex:0 0 auto}.python-activity-tabs{display:inline-flex;align-items:center;gap:6px}.python-activity-tabs button{position:relative;display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-strong);color:var(--muted)}.python-activity-tabs button:hover,.python-activity-tabs button.is-active{border-color:#4f77aa61;background:var(--primary-soft);color:var(--primary)}.python-activity-tabs button:after{position:absolute;z-index:30;top:calc(100% + 8px);left:50%;max-width:min(240px,70vw);padding:7px 10px;border:1px solid rgba(79,119,170,.2);border-radius:8px;background:var(--surface);box-shadow:0 12px 28px #18233924;color:var(--text);content:attr(data-tooltip);font-size:12px;font-weight:800;line-height:1.2;opacity:0;pointer-events:none;text-align:center;transform:translate(-50%,-4px);transition:opacity .14s ease,transform .14s ease;white-space:nowrap}.python-activity-tabs button:hover:after,.python-activity-tabs button:focus-visible:after{opacity:1;transform:translate(-50%)}.python-activity-tabs button:last-child:after{right:0;left:auto;transform:translateY(-4px)}.python-activity-tabs button:last-child:hover:after,.python-activity-tabs button:last-child:focus-visible:after{transform:translate(0)}.python-activity-body{min-height:0;overflow:auto;padding:18px}.python-activity-body--preview{padding:0}.python-preview-pane{min-height:100%;height:100%;background:var(--surface)}.python-preview-pane iframe{display:block;width:100%;height:100%;min-height:420px;border:0;background:var(--surface)}.python-tests-activity{display:grid;align-content:start;gap:18px}.python-libraries-panel{display:grid;gap:16px;padding:18px;overflow:auto}.python-library-intro,.python-library-group{border:1px solid var(--line);border-radius:14px;background:var(--surface)}.python-library-intro{display:flex;align-items:center;gap:12px;padding:14px;color:var(--primary)}.python-library-intro>div,.python-library-group>div:first-child{display:grid;gap:3px}.python-library-intro span,.python-library-group>div:first-child span{color:var(--muted);font-size:12px}.python-library-group{display:grid;gap:12px;padding:0 14px 14px;overflow:hidden;--library-accent: var(--primary);--library-soft: var(--primary-soft)}.python-library-group--green{--library-accent: #16844b;--library-soft: #eaf8f0}.python-library-group--blue{--library-accent: #2467b2;--library-soft: #edf5ff}.python-library-group--orange{--library-accent: #d96a12;--library-soft: #fff4e9}.python-library-group--purple,.python-library-group--violet{--library-accent: #7441ad;--library-soft: #f5effc}.python-library-group-heading{display:flex!important;align-items:center;justify-content:space-between;gap:12px;margin:0 -14px;border-bottom:1px solid color-mix(in srgb,var(--library-accent) 18%,var(--line));background:var(--library-soft);padding:11px 14px}.python-library-group-heading>div{display:grid;gap:2px}.python-library-group-heading strong{color:var(--library-accent)}.python-library-group-heading span{color:var(--muted);font-size:11px}.python-library-group-heading>small{display:grid;min-width:24px;height:24px;place-items:center;border-radius:999px;background:var(--surface);color:var(--library-accent);font-size:10px;font-weight:900}.python-library-list{display:flex;flex-wrap:wrap;gap:7px}.python-library-chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-strong)}.python-library-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.python-library-card{display:grid;align-content:start;gap:9px;min-height:210px;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:13px}.python-library-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.python-library-logo{position:relative;display:grid;width:46px;height:46px;place-items:center;border-radius:12px;background:var(--library-soft);color:var(--library-accent);overflow:hidden}.python-library-logo b{font-size:13px}.python-library-logo.is-compact{width:22px;height:22px;flex:0 0 22px;border-radius:6px}.python-library-logo img{position:absolute;top:8px;right:8px;bottom:8px;left:8px;width:30px;height:30px;object-fit:contain}.python-library-logo.is-compact b{font-size:8px}.python-library-logo.is-compact img{top:4px;right:4px;bottom:4px;left:4px;width:14px;height:14px}.python-library-availability{border-radius:999px;padding:4px 7px;background:var(--primary-soft);color:var(--primary);font-size:8px;font-weight:900;letter-spacing:.02em}.python-library-availability.is-builtin{background:#eaf8f0;color:#16844b}.python-library-availability.is-extension{background:#fff1e7;color:#b45309}.python-library-card>div:nth-child(2){display:grid;gap:3px}.python-library-card>div:nth-child(2)>strong{font-size:15px}.python-library-card>div:nth-child(2)>code{color:var(--library-accent);font-size:10px}.python-library-card p,.python-library-card>small{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.python-library-card>small{border-top:1px solid var(--line);padding-top:8px}.python-library-card>small b{color:var(--text)}.python-library-chip{color:var(--primary);font-size:12px;font-weight:800}.python-library-chip small{color:var(--muted);font-size:10px}.python-activity-empty{display:grid;min-height:220px;place-items:center;align-content:center;gap:8px;border:1px dashed var(--line);border-radius:8px;background:var(--surface-strong);color:var(--muted);padding:20px;text-align:center}.python-activity-empty svg,.python-activity-empty strong{color:var(--primary)}.python-activity-empty strong{font-size:16px}.python-activity-empty span{font-size:13px;font-weight:700}.python-graphics-panel{display:grid;grid-template-rows:auto minmax(0,auto);flex:0 0 auto;max-height:min(360px,45vh);min-width:0;overflow:hidden}.python-graphics-panel .panel-toolbar span{display:inline-flex;align-items:center;gap:8px}.python-graphics-panel .panel-toolbar code{border:1px solid rgba(79,119,170,.18);border-radius:999px;background:#4f77aa14;color:var(--primary);padding:3px 9px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:900}.python-graphics-list{display:grid;gap:12px;overflow:auto;padding:14px}.python-graphics-frame{display:grid;gap:0;overflow:hidden;margin:0;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface)}.python-graphics-frame img{display:block;width:100%;max-height:280px;object-fit:contain;background:var(--surface)}.python-graphics-frame figcaption,.python-graphics-empty{color:var(--muted);font-size:12px;font-weight:800}.python-graphics-frame figcaption{border-top:1px solid var(--line-soft);background:var(--surface-high);padding:8px 10px}.python-graphics-empty{padding:18px}.runtime-body{display:grid;align-content:start;gap:18px;overflow:auto;padding:18px}.runtime-body textarea{width:100%;border:1px solid rgba(135,146,154,.36);border-radius:6px;background:var(--surface-strong);color:var(--text);padding:12px;resize:vertical}.python-terminal{display:grid;overflow:hidden;border:1px solid #1e293b;border-radius:8px;background:#0f172a;color:#dbeafe;box-shadow:inset 0 0 0 1px #94a3b814}.python-terminal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(148,163,184,.18);background:#111827;padding:9px 10px 9px 12px}.python-terminal-toolbar span,.python-terminal-line span,.python-terminal-input-line span{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:800}.python-terminal-toolbar span{display:inline-flex;align-items:center;gap:8px;color:#93c5fd}.python-terminal-toolbar button,.python-terminal-input-line button{display:grid;place-items:center;border:1px solid rgba(148,163,184,.22);border-radius:6px;background:#0f172ac7;color:#bfdbfe}.python-terminal-toolbar button{width:32px;height:32px}.python-terminal-toolbar button:hover,.python-terminal-input-line button:hover{border-color:#93c5fd7a;color:#fff}.python-terminal-toolbar button:disabled,.python-terminal-input-line button:disabled{cursor:default;opacity:.42}.python-terminal-screen{min-height:220px;max-height:360px;overflow:auto;padding:12px;cursor:text;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.55}.python-terminal-line,.python-terminal-program-line,.python-terminal-input-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:10px;min-height:24px}.python-terminal-line span,.python-terminal-program-line span,.python-terminal-input-line span{color:#34d399;-webkit-user-select:none;user-select:none}.python-terminal-line--command span,.python-terminal-input-line>span{color:#60a5fa;white-space:nowrap}.python-terminal-notice{padding:3px 0 3px 2px;color:#94a3b8;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.5}.python-terminal-line code,.python-terminal-program-line code{min-width:0;color:#e2e8f0;white-space:pre-wrap;word-break:break-word}.python-terminal-program-line span{color:#60a5fa}.python-terminal-program-line.is-running code{color:#93c5fd}.python-terminal-program-line.is-waiting code{color:#fbbf24}.python-terminal-program-line--error code,.python-terminal-program-line--error span{color:#fca5a5}.python-terminal-program-line--warn code,.python-terminal-program-line--warn span{color:#fbbf24}.python-terminal-program-line--log span{color:#64748b}.python-terminal-input-line input{width:100%;border:0;outline:0;background:transparent;color:#fff;padding:0;caret-color:#93c5fd;font:inherit}.python-terminal-input-line input:disabled{color:#94a3b8}.python-terminal-input-line button{width:28px;height:28px}.sample-output{display:grid;gap:10px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high);padding:14px}.sample-output span,.runtime-heading span,.test-row span,.test-row small{color:var(--muted);font-size:12px;font-weight:800}.sample-output pre{margin:0;color:#d8e3fb;font-family:JetBrains Mono,monospace;font-size:13px;white-space:pre-wrap}.runtime-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.runtime-heading--count-only{justify-content:flex-end}.runtime-heading h2{margin:0;font-size:18px}.test-list{display:grid;gap:10px}.python-trace-panel{display:grid;gap:12px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-strong);padding:14px}.python-trace-heading-actions{display:inline-flex;align-items:center;gap:8px}.python-trace-autoplay-button{display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--primary)}.python-trace-autoplay-button:hover{border-color:#4f77aa61;background:var(--primary-soft)}.python-trace-controls{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;gap:10px}.python-trace-controls button{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--primary)}.python-trace-controls button:disabled{cursor:default;opacity:.45}.python-trace-controls label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:12px;font-weight:800}.python-trace-controls input[type=range]{width:100%;accent-color:var(--primary)}.python-trace-step,.python-trace-variables{display:grid;gap:8px}.python-trace-line{display:grid;gap:7px;margin:0;border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:6px;background:var(--surface);padding:10px}.python-trace-line span{color:var(--primary);font-size:12px;font-weight:900}.python-trace-line code,.python-trace-variable code{color:var(--text);font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}.python-trace-variable{display:grid;grid-template-columns:minmax(72px,.4fr) minmax(0,1fr);gap:8px;align-items:start;border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:8px 10px}.python-trace-variable strong{min-width:0;color:var(--primary);font-family:JetBrains Mono,monospace;font-size:12px;overflow-wrap:anywhere}.python-trace-empty{margin:0;color:var(--muted);font-size:12px;font-weight:800;line-height:1.45}.editor-page--scratch{grid-template-columns:minmax(0,1fr)}.editor-page--scratch .assignment-panel--standalone{position:relative;z-index:12;overflow:visible}.editor-page--scratch .standalone-editor-actions{position:relative;z-index:13;overflow:visible}.scratch-workbench{display:grid;grid-column:1 / -1;grid-template-columns:minmax(210px,.72fr) minmax(320px,1.15fr) minmax(360px,1fr);gap:14px;min-height:calc(100vh - 260px);min-width:0}.scratch-panel,.scratch-preview-panel{min-width:0;overflow:hidden;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-card)}.scratch-panel{display:flex;flex-direction:column}.scratch-panel-heading{display:grid;gap:4px;padding:16px 16px 10px}.scratch-panel-heading--row{display:flex;align-items:center;justify-content:space-between;gap:12px}.scratch-panel-heading h2{margin:0;color:var(--text);font-size:20px;line-height:1.15}.scratch-block-count{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:0 10px;font-size:12px;font-weight:900}.scratch-palette{gap:10px;padding-bottom:14px}.scratch-palette-group{display:grid;gap:8px;padding:0 14px}.scratch-palette-group strong{color:var(--muted);font-size:12px;text-transform:uppercase}.scratch-palette-block{display:inline-flex;align-items:center;gap:8px;min-height:42px;border:1px solid color-mix(in srgb,var(--scratch-block-color),#ffffff 72%);border-radius:8px;background:color-mix(in srgb,var(--scratch-block-color),#ffffff 88%);color:var(--text);cursor:pointer;padding:0 12px;font-weight:900;text-align:left}.scratch-palette-block:hover{background:color-mix(in srgb,var(--scratch-block-color),#ffffff 80%)}.scratch-palette-block:disabled{cursor:not-allowed;opacity:.62}.scratch-palette-block svg{color:var(--scratch-block-color);flex-shrink:0}.scratch-script-list{display:grid;align-content:start;gap:10px;overflow-y:auto;padding:0 14px 14px}.scratch-script-block{display:grid;gap:10px;border:1px solid color-mix(in srgb,var(--scratch-block-color),#ffffff 70%);border-left:5px solid var(--scratch-block-color);border-radius:8px;background:var(--surface);padding:12px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.scratch-script-block.is-active{border-color:var(--scratch-block-color);box-shadow:0 16px 32px color-mix(in srgb,var(--scratch-block-color),transparent 76%);transform:translateY(-1px)}.scratch-script-block-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.scratch-script-block-heading>span{display:grid;width:26px;height:26px;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--scratch-block-color),#ffffff 84%);color:var(--scratch-block-color);font-size:12px;font-weight:900}.scratch-script-block-heading strong{color:var(--text);overflow-wrap:anywhere}.scratch-script-block>small{color:var(--muted);font-weight:700;line-height:1.35}.scratch-script-block-actions{display:inline-flex;align-items:center;gap:4px}.scratch-script-block-actions button{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--line-soft);border-radius:7px;background:var(--surface);color:var(--primary);cursor:pointer}.scratch-script-block-actions button:disabled{cursor:not-allowed;opacity:.45}.scratch-block-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.scratch-block-fields label{display:grid;gap:4px;color:var(--muted);font-size:12px;font-weight:900}.scratch-block-fields input{min-width:0;min-height:36px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface);color:var(--text);padding:0 10px;font:inherit}.scratch-block-fields input[type=color]{padding:3px}.scratch-empty-state{display:grid;min-height:180px;place-items:center;border:1px dashed rgba(79,119,170,.26);border-radius:8px;background:#4f77aa0f;color:var(--muted);padding:18px;text-align:center;font-weight:800}.scratch-stage-panel{min-height:0}.scratch-stage-toolbar{flex:0 0 auto}.scratch-run-title{color:var(--secondary);font-weight:900}.scratch-preview-panel{display:flex;flex-direction:column;min-height:0}.scratch-preview-body{display:grid;gap:12px;min-height:0;overflow-y:auto;padding:14px}.scratch-stage{position:relative;min-height:260px;overflow:hidden;border:1px solid rgba(79,119,170,.18);border-radius:8px;aspect-ratio:4 / 3;background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.9),transparent 28%),linear-gradient(180deg,var(--scratch-stage-bg),#ffffff)}.scratch-stage-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(79,119,170,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(79,119,170,.08) 1px,transparent 1px);background-size:40px 40px}.scratch-stage-grid:before,.scratch-stage-grid:after{position:absolute;content:"";background:#4f77aa2e}.scratch-stage-grid:before{top:50%;left:0;width:100%;height:1px}.scratch-stage-grid:after{top:0;left:50%;width:1px;height:100%}.scratch-sprite{position:absolute;z-index:2;top:50%;left:50%;width:calc(64px * var(--scratch-size));height:calc(64px * var(--scratch-size));transform:translate(calc(var(--scratch-x) - 50%),calc(var(--scratch-y) - 50%)) rotate(var(--scratch-direction));transform-origin:center;transition:transform .22s ease,width .22s ease,height .22s ease}.scratch-sprite svg{display:block;width:100%;height:100%;filter:hue-rotate(var(--scratch-effect, 0deg)) drop-shadow(0 12px 16px rgba(31,48,76,.22))}.scratch-sprite path:first-child{fill:var(--scratch-color);stroke:#1f304c47;stroke-width:2}.scratch-sprite circle,.scratch-sprite path:last-child{fill:none;stroke:#1f304c;stroke-linecap:round;stroke-width:3}.scratch-speech{position:absolute;right:20%;bottom:calc(100% + 8px);max-width:190px;min-width:70px;border:1px solid rgba(79,119,170,.2);border-radius:8px;background:var(--surface);color:var(--text);padding:8px 10px;font-size:12px;font-weight:800;line-height:1.25;transform:rotate(calc(-1 * var(--scratch-direction)));box-shadow:0 12px 28px #1f304c29}.scratch-review-blocks,.scratch-run-log{display:grid;gap:8px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface);padding:12px}.scratch-review-blocks strong,.scratch-run-log strong{color:var(--text)}.scratch-review-blocks ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.scratch-review-blocks li{display:grid;gap:3px;border-left:4px solid var(--scratch-block-color);border-radius:8px;background:#4f77aa0f;padding:8px 10px}.scratch-review-blocks li.is-active{background:color-mix(in srgb,var(--scratch-block-color),#ffffff 86%)}.scratch-review-blocks li span{color:var(--text);font-weight:900}.scratch-review-blocks li small,.scratch-run-log span{color:var(--muted);font-size:12px;font-weight:700}.test-row{display:grid;gap:10px;border:1px solid var(--line-soft);border-left:3px solid var(--warning);border-radius:6px;background:var(--surface-high);padding:14px}.test-row>div{display:grid;gap:4px}.test-row--passed{border-left-color:var(--secondary)}.test-row--failed{border-left-color:var(--danger)}.test-row--pending{border-left-color:var(--warning)}.task-form{display:grid;gap:18px;max-width:980px;padding:24px}.assignment-fieldset,.grading-control-box{display:grid;gap:12px;margin:0;border:1px solid var(--line-soft);border-radius:6px;padding:16px}.assignment-fieldset legend,.grading-control-box legend{color:#d9e1f5;font-size:13px;font-weight:800;padding:0 6px}.assignment-checkboxes{display:grid;gap:10px}.checkbox-row{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:12px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high);padding:12px}.checkbox-row input{width:18px;height:18px}.checkbox-row span{display:grid;gap:2px}.checkbox-row small{color:var(--muted)}.creator-hero-status{display:grid;gap:6px;min-width:220px;border:1px solid var(--line-soft);border-radius:var(--radius);background:#080e1d52;padding:18px}.creator-hero-status svg{color:var(--secondary)}.creator-hero-status span{color:var(--primary);font-weight:900;text-transform:uppercase}.creator-hero-status small,.form-hint{color:var(--muted);line-height:1.45}.form-hint{margin:0;font-size:13px}.review-summary{display:flex;justify-content:space-between;gap:18px;padding:24px}.review-summary h1,.review-form h2{margin:0}.review-summary p{margin:8px 0 0;color:var(--muted)}.review-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-height:720px}.review-workspace--exam{grid-template-columns:minmax(0,1fr)}.review-workspace:not(.review-workspace--exam)>.review-form{grid-column:1 / -1}.review-code-panel{grid-template-rows:auto minmax(0,1fr)}.review-exam-answers{display:grid;align-content:start;gap:14px;overflow:auto;border:1px solid rgba(51,65,85,.72);border-radius:var(--radius);background:#191f2fc7;padding:20px}.review-exam-answers h2,.review-exam-answer h3,.review-exam-answer p{margin:0}.review-exam-answer{display:grid;gap:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-strong);padding:14px}.review-exam-answer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.review-exam-answer pre{overflow:auto;white-space:pre-wrap;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);padding:12px}.question-review-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,220px);align-items:end;gap:12px;border-top:1px solid var(--line);padding-top:12px}.question-review-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.question-review-status button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer;font-weight:900;padding:0 12px}.question-review-status button.is-active{border-color:#4f77aa47;background:var(--primary-soft);color:var(--primary)}.question-review-status button.is-correct{border-color:#1e946d5c;background:#1e946d1f;color:#1e946d}.question-review-status button.is-incorrect{border-color:#c75f625c;background:#c75f621f;color:var(--danger)}.question-review-controls label{display:grid;gap:7px;color:var(--text);font-weight:900}.question-review-controls label:last-child{grid-column:1 / -1}.question-review-controls input,.question-review-controls textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;padding:10px 12px}.review-form{display:grid;align-content:start;gap:18px;padding:20px}.review-form-heading{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:start;gap:18px}.review-score-corner{justify-self:end;width:min(180px,100%)}.review-form input,.review-form textarea{width:100%;border:1px solid rgba(135,146,154,.36);border-radius:6px;background:var(--surface-strong);color:var(--text);padding:12px}.review-form>.check-panel .check-list{grid-template-columns:repeat(3,minmax(0,1fr))}.review-grade-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1fr);gap:16px;align-items:start}.review-grade-column{display:grid;gap:12px}.review-grade-row>:only-child{grid-column:1 / -1}.review-grade-row>.sample-output{min-height:100%}.review-comment-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.review-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid.settings-exam-defaults{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));align-items:end}.settings-exam-defaults>label{min-width:0}@media(max-width:1000px){.form-grid.settings-exam-defaults{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.form-grid.settings-exam-defaults{grid-template-columns:minmax(0,1fr)}}.form-grid--task-basics{grid-template-columns:minmax(220px,1.25fr) minmax(180px,1fr) minmax(190px,1fr) minmax(150px,.85fr)}.task-examples-fieldset{display:grid;gap:16px}.task-examples-heading,.task-example-editor-heading,.assignment-example-heading,.task-example-review-summary{display:flex;align-items:center;justify-content:space-between;gap:14px}.task-examples-summary{display:flex;flex-wrap:wrap;gap:8px}.task-examples-summary span{display:inline-flex;align-items:baseline;gap:5px;min-height:38px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);color:var(--muted);padding:8px 11px;font-size:12px;font-weight:800}.task-examples-summary strong{color:var(--text);font-size:17px}.task-example-list{display:grid;gap:12px}.task-example-editor{display:grid;gap:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:16px}.task-example-editor-heading>strong{color:var(--primary);font-size:16px}.task-example-editor-actions{display:flex;gap:6px}.task-example-editor-actions button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--primary)}.task-example-editor-actions button:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.task-example-editor-actions button.is-danger{color:var(--danger)}.task-example-editor-actions button:disabled{cursor:not-allowed;opacity:.42}.task-example-fields{display:grid;grid-template-columns:minmax(240px,2fr) minmax(150px,1fr) minmax(90px,.55fr) minmax(90px,.55fr);gap:12px}.task-example-description{grid-column:1 / -1}.assignment-example-list{display:grid;margin-top:4px;border-bottom:1px solid var(--line)}.assignment-example-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;border-top:1px solid var(--line);padding:16px 0}.assignment-example-number,.task-example-review-title>span{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;background:var(--primary);color:#fff;font-weight:900}.assignment-example-heading h2,.assignment-example-row p{margin:0}.assignment-example-heading h2{color:var(--text);font-size:17px}.assignment-example-row p{margin-top:8px;color:var(--muted);line-height:1.5}.task-example-review-box{display:grid;gap:14px}.task-example-review-summary strong{color:var(--text);font-size:18px}.task-example-review-summary span{color:var(--muted);font-size:13px;font-weight:800}.task-example-review-list{display:grid}.task-example-review-row{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(130px,.55fr) minmax(82px,.35fr) minmax(190px,1fr);gap:12px;align-items:end;border-top:1px solid var(--line);padding:14px 0}.task-example-review-title{display:flex;align-items:center;gap:10px;min-width:0}.task-example-review-title>div{display:grid;gap:3px;min-width:0}.task-example-review-title strong,.task-example-review-title small{overflow-wrap:anywhere}.task-example-review-title small{color:var(--muted);font-weight:700}.task-example-review-row .checkbox-row{min-height:43px}.form-grid--task-library{align-items:end;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr) minmax(360px,.8fr)}.task-library-layout{display:grid;gap:16px}.task-library-primary-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr) minmax(360px,.8fr);gap:16px;align-items:end}.task-library-secondary-row{display:grid;grid-template-columns:minmax(360px,1fr) minmax(320px,.64fr);gap:16px;align-items:stretch}.task-library-secondary-row textarea{min-height:92px}.task-template-toggle{min-height:58px}.task-form input,.task-form textarea,.task-form select{padding:12px}.task-form textarea{resize:vertical}.code-textarea{font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.55}body .task-creator-form>label,body .task-creator-form legend{font-size:19px;font-weight:400;line-height:1.45}body .task-creator-form textarea.code-textarea{font-size:17px;font-weight:400;line-height:1.65;-moz-tab-size:4;tab-size:4}.task-creator-form .form-hint{font-size:16px;font-weight:400;line-height:1.5}.task-class-search{display:grid;gap:8px;font-size:17px;font-weight:400}.task-class-selection{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:16px}.task-class-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}.task-class-option{display:grid;gap:6px;padding:16px;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-size:18px;font-weight:400}.task-class-option small{color:var(--muted);font-size:15px}.task-class-option-state{color:var(--primary);font-size:15px}.task-class-option.is-selected{border-color:var(--primary);background:var(--primary-soft)}.task-class-option:hover{border-color:var(--primary)}.form-submit{justify-self:start}.form-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:1240px){.workspace-shell{grid-template-columns:84px minmax(0,1fr)}.sidebar-title{justify-content:center;padding:20px 12px}.sidebar-title div:last-child,.side-nav button span,.side-link,.sidebar-footer .button{display:none}.side-nav button{justify-content:center;padding:0}.editor-page{grid-template-columns:minmax(0,1fr);height:auto}.editor-stage,.workspace-output-column{height:auto;min-height:0}.editor-stage{min-height:640px}.workspace-output-column{min-height:420px}.compiled-input-panel{grid-column:1 / -1;min-height:260px}.arduino-side-column{grid-column:1;grid-row:auto;min-height:420px}.editor-page--arduino .editor-stage{min-height:640px}.editor-page--compiled .compiled-preview-panel{grid-column:1 / -1;grid-row:auto}.micropython-code-preview{grid-column:1 / -1;min-height:320px}.preview-panel,.python-runtime-panel,.sql-inspector-panel,.pseudo-diagram-panel,.scratch-preview-panel,.python-activity-panel{grid-column:1 / -1;min-height:420px}.scratch-workbench{grid-template-columns:minmax(220px,.7fr) minmax(360px,1fr);min-height:0}.scratch-stage-panel{grid-column:1 / -1}.task-example-fields,.task-example-review-row{grid-template-columns:repeat(2,minmax(0,1fr))}.task-example-title,.task-example-description,.task-example-review-title,.task-example-review-feedback{grid-column:1 / -1}}@media(max-width:720px){.task-examples-heading,.task-example-editor-heading,.assignment-example-heading,.task-example-review-summary{align-items:stretch;flex-direction:column}.task-examples-heading .button{width:100%}.task-example-fields,.task-example-review-row{grid-template-columns:minmax(0,1fr)}.task-example-title,.task-example-description,.task-example-review-title,.task-example-review-feedback{grid-column:auto}}@media(max-width:1380px)and (min-width:1241px){.topbar{gap:18px;padding:0 16px}.content{padding:20px}.dashboard-page,.creator-page,.review-page{gap:20px}.hero-panel{min-height:150px;padding:24px}.hero-panel h1{font-size:var(--page-title-size)}.editor-page{grid-template-columns:minmax(0,1fr) minmax(340px,1fr);grid-template-rows:auto auto;height:auto;min-height:0}.editor-page--python{grid-template-columns:minmax(0,1fr) minmax(340px,1fr)}.assignment-panel,.info-panel,.task-form{padding:18px}.assignment-panel h1{font-size:var(--page-title-size)}.review-workspace{grid-template-columns:repeat(2,minmax(0,1fr));min-height:620px}.form-grid--task-basics,.form-grid--task-library,.task-library-primary-row,.task-library-secondary-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-height:780px)and (min-width:981px){.content{padding-top:18px;padding-bottom:18px}.editor-page,.review-workspace{min-height:560px}.assignment-panel{gap:14px}.objective-box,.check-panel,.save-status,.save-history,.feedback-box{padding:12px}}@media(max-width:980px){.topbar{height:auto;min-height:64px;flex-wrap:wrap;padding:12px 16px}.topbar-actions{width:100%;margin-left:0}.workspace-shell{display:block}.sidebar{display:none}.content{padding:18px}.hero-panel,.dashboard-columns,.student-exam-overview,.student-active-columns,.teacher-overview-grid,.teacher-grid,.assignment-row--task,.editor-page,.review-workspace{grid-template-columns:1fr}.hero-panel{display:grid;min-height:0}.metrics-row,.metrics-row--wide,.task-grid,.task-grid--section,.data-foundation-grid,.teacher-overview-grid .data-foundation-grid{grid-template-columns:1fr}.editor-page{height:auto;min-height:0}.assignment-panel{max-height:none}.assignment-summary,.assignment-full{grid-template-columns:1fr}.assignment-summary-side,.task-meta--compact{justify-content:flex-start;justify-items:start}.editor-stage{min-height:680px}.preview-panel,.python-runtime-panel,.sql-inspector-panel,.pseudo-diagram-panel,.scratch-preview-panel,.python-activity-panel{min-height:420px}.scratch-workbench{grid-template-columns:1fr}.scratch-stage-panel{grid-column:auto}.review-summary{display:grid}.review-form>.check-panel .check-list,.review-form-heading,.review-grade-row,.review-comment-row,.review-actions{grid-template-columns:1fr}.review-score-corner{justify-self:stretch}.skeleton-grid{grid-template-columns:1fr}.task-row-actions{justify-content:flex-start}.task-row-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.task-student-row{grid-template-columns:minmax(0,1fr) auto}.task-student-row>small{grid-column:1 / -1}}.offline-sync-status{display:flex;align-items:center;gap:11px;border:1px solid color-mix(in srgb,var(--warning) 55%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--warning) 10%,var(--surface));color:var(--text);padding:11px 14px}.offline-sync-status>span{display:grid;gap:2px}.offline-sync-status small{color:var(--muted);line-height:1.35}.offline-sync-status--conflict{border-color:color-mix(in srgb,var(--danger) 55%,var(--line));background:color-mix(in srgb,var(--danger) 9%,var(--surface))}.offline-sync-status .is-spinning{animation:offline-sync-spin 1s linear infinite}@keyframes offline-sync-spin{to{transform:rotate(360deg)}}.public-registration-page{display:grid;min-height:100vh;place-items:center;background:radial-gradient(circle at top left,var(--primary-soft),transparent 38%),var(--canvas);padding:32px 18px}.public-registration-card{display:grid;width:min(100%,760px);gap:26px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-lg);padding:clamp(24px,5vw,48px)}.public-registration-card .brand-logo{justify-self:center;width:min(100%,340px);height:112px}.public-registration-heading h1{margin:6px 0 10px;font-size:clamp(21px,3.5vw,32.2px)}.public-registration-heading p{margin:0;color:var(--muted)}.public-registration-form{display:grid;gap:18px}.public-registration-form label{display:grid;gap:8px;font-weight:800}.public-registration-form .input-shell{display:flex}.public-registration-form .input-shell input,.public-registration-form .input-shell select{width:100%;border:0;background:transparent;color:var(--text);outline:0}.public-registration-submit{width:100%;margin-top:4px}.public-registration-back{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-weight:800}.public-registration-state{display:grid;justify-items:center;gap:15px;text-align:center;padding:28px 0}.public-registration-state h1,.public-registration-state p{margin:0}.public-registration-state>svg{color:var(--primary)}.registration-login-result{display:grid;gap:5px;width:min(100%,420px);border:1px solid var(--line);border-radius:8px;background:var(--primary-soft);padding:18px}.registration-login-result span{color:var(--muted);font-size:13px;font-weight:800}.registration-login-result strong{font-size:25px}.registration-login-warning{max-width:500px;color:var(--muted)}.registration-settings-row{display:flex;align-items:center;justify-content:space-between;gap:24px}.registration-settings-row>div{display:grid;gap:6px}.registration-settings-row span{color:var(--muted)}@media(max-width:680px){.public-registration-page{align-items:start;padding:0}.public-registration-card{min-height:100vh;border:0;border-radius:0;padding:24px 18px}.public-registration-card .brand-logo{width:min(100%,290px);height:96px}.public-registration-form .form-grid{grid-template-columns:minmax(0,1fr)}.registration-settings-row{align-items:stretch;flex-direction:column}.registration-settings-row .button{justify-content:center;width:100%}}@media(max-width:720px){.brand-logo--topbar{width:168px;height:42px}.topnav{width:100%;overflow-x:auto}.topbar-actions{flex-wrap:wrap}.user-pill{order:3;width:100%;border-left:0;padding-left:0}.hero-panel{padding:22px}.hero-panel h1{font-size:var(--page-title-size)}.task-student-drawer-heading{align-items:flex-start;flex-direction:column}.task-student-row{grid-template-columns:1fr}.task-student-row>small{grid-column:auto}.task-student-row .button{justify-self:stretch}.editor-toolbar{align-items:stretch;flex-direction:column}.editor-file-group{align-items:flex-start;flex-direction:column}.local-file-status{max-width:100%}.standalone-editor-title-row{align-items:flex-start;flex-direction:column}.standalone-editor-actions{justify-content:flex-start;margin-left:0;width:100%}.editor-actions{flex-wrap:wrap}.editor-actions .button{flex:1 1 120px}.editor-actions .editor-action-button{flex:0 0 48px;width:48px;min-width:48px}.scratch-panel-heading--row,.scratch-script-block-heading{align-items:stretch;grid-template-columns:1fr}.scratch-panel-heading--row{display:grid}.scratch-script-block-actions{justify-content:flex-start}.scratch-block-fields{grid-template-columns:1fr}.scratch-stage{min-height:220px}.form-grid,.role-grid{grid-template-columns:1fr}}.management-page .hero-panel h1{max-width:820px}.management-page .metrics-row--wide{grid-template-columns:repeat(4,minmax(0,1fr))}.management-page-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-bottom:14px}.management-page-actions .button{min-height:42px}.subject-management-panel{display:grid;gap:22px;margin-bottom:18px;padding:24px}.subject-management-heading{align-items:flex-start;display:grid;gap:14px;grid-template-columns:auto minmax(0,1fr) auto}.subject-management-icon,.subject-card-icon{align-items:center;background:var(--primary-soft);border-radius:10px;color:var(--primary);display:inline-flex;justify-content:center}.subject-management-icon{height:46px;width:46px}.subject-management-heading h2{margin:2px 0 5px}.subject-management-heading p,.subject-create-heading p,.subject-list-heading p{color:var(--muted);line-height:1.5;margin:0}.subject-create-form{background:var(--surface-strong);border:1px solid var(--line);border-radius:12px;display:grid;gap:20px;padding:20px}.subject-create-heading h3,.subject-list-heading h3{margin:0 0 4px}.subject-create-grid{display:grid;gap:18px;grid-template-columns:minmax(260px,1.25fr) minmax(340px,1fr)}.subject-name-field,.subject-option-group{display:grid;gap:9px}.subject-name-field>span,.subject-option-label{color:var(--text);font-size:13px;font-weight:850}.subject-name-field input{min-height:50px;width:100%}.subject-option-label small{color:var(--muted);font-weight:650;margin-left:6px}.subject-grade-options,.subject-teacher-options{display:flex;flex-wrap:wrap;gap:9px}.subject-grade-options label,.subject-teacher-options label,.subject-card-teachers label,.subject-card-students label{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:9px;color:var(--muted);cursor:pointer;display:inline-flex;font-weight:750;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.subject-grade-options label{gap:4px;min-height:50px;padding:9px 15px}.subject-grade-options label span{color:var(--text);font-size:18px;font-weight:900}.subject-grade-options label small{font-size:12px}.subject-teacher-options label{gap:9px;min-height:46px;padding:7px 12px 7px 8px}.subject-grade-options label.is-selected,.subject-teacher-options label.is-selected,.subject-card-teachers label.is-selected,.subject-card-students label.is-selected{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 55%,var(--line));color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 8%,transparent)}.subject-grade-options input,.subject-teacher-options input,.subject-card-teachers input,.subject-card-students input{height:1px;opacity:0;overflow:hidden;position:absolute;width:1px}.subject-teacher-avatar{align-items:center;background:var(--surface-high);border-radius:8px;color:var(--primary);display:inline-flex;font-size:13px;font-weight:900;height:30px;justify-content:center;width:30px}.subject-create-actions{border-top:1px solid var(--line);display:flex;justify-content:flex-end;padding-top:16px}.subject-create-actions .button{min-height:44px;padding-inline:20px;width:auto}.subject-card-list{display:grid;gap:10px}.subject-card{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;display:grid;gap:13px;grid-template-columns:auto minmax(220px,1fr) auto;padding:14px 16px}.subject-card-icon{height:38px;width:38px}.subject-card-content{display:grid;gap:4px;min-width:0}.subject-card-content>small{color:var(--muted);font-weight:650}.subject-card-title{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.subject-card-title>span{background:var(--primary-soft);border-radius:999px;color:var(--primary);font-size:10px;font-weight:850;padding:4px 8px;text-transform:uppercase}.subject-card-teachers{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.subject-card-teachers label{font-size:12px;padding:7px 10px}.subject-all-teachers{align-items:center;color:var(--muted);display:inline-flex;font-size:12px;font-weight:750;gap:6px}.subject-card-actions{align-self:start;display:flex;justify-content:flex-end}.subject-card-actions .icon-button{height:36px;min-height:36px;width:36px}.subject-card-assignment{border-top:1px solid var(--line);display:grid;gap:18px;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:14px}.subject-card-assignment>div{display:grid;gap:8px}.subject-card-assignment .subject-card-teachers{justify-content:flex-start}.subject-card-students{display:flex;flex-wrap:wrap;gap:7px}.subject-card-students label{align-items:flex-start;display:grid;gap:1px;padding:7px 10px}.subject-card-students label span{color:var(--text);font-size:12px}.subject-card-students label small{font-size:10px}.subject-card-students label.is-selected span{color:var(--primary)}.subject-card-students label.is-unassigned{border-color:color-mix(in srgb,var(--warning) 48%,var(--line));cursor:not-allowed;opacity:.82}.subject-card-students label.is-unassigned small{color:var(--warning);font-weight:800}.subject-editor-settings{border-top:1px solid var(--line);display:grid;gap:13px;grid-column:1 / -1;padding-top:14px}.subject-editor-settings-heading{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.subject-editor-settings-heading>div:first-child{display:grid;gap:3px}.subject-editor-settings-heading small{color:var(--muted);font-size:11px}.subject-editor-grade-tabs{display:flex;flex-wrap:wrap;gap:6px}.subject-editor-grade-tabs button{background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--muted);cursor:pointer;font:inherit;font-size:11px;font-weight:800;padding:6px 9px}.subject-editor-grade-tabs button.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.subject-editor-options{display:flex;flex-wrap:wrap;gap:7px}.subject-editor-options label{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--muted);cursor:pointer;display:inline-flex;font-size:12px;font-weight:750;padding:8px 10px}.subject-editor-options label.is-selected{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 52%,var(--line));color:var(--primary)}.subject-editor-options input{height:1px;opacity:0;overflow:hidden;position:absolute;width:1px}@media(max-width:920px){.subject-create-grid{grid-template-columns:1fr}.subject-card{grid-template-columns:auto minmax(0,1fr)}.subject-card-teachers{grid-column:1 / -1;justify-content:flex-start}.subject-card-assignment{grid-template-columns:1fr}}@media(max-width:560px){.subject-management-panel{padding:18px}.subject-management-heading{grid-template-columns:auto minmax(0,1fr)}.subject-management-heading>.attention-count{grid-column:1 / -1;justify-self:start}.subject-grade-options label{flex:1 1 40%;justify-content:center}.subject-create-actions .button{width:100%}}.subject-management-panel{gap:28px;padding:28px}.subject-create-form{background:linear-gradient(135deg,var(--surface-strong),var(--surface));border-color:color-mix(in srgb,var(--primary) 22%,var(--line));border-radius:10px;padding:24px;box-shadow:0 10px 26px color-mix(in srgb,var(--primary) 7%,transparent)}.subject-list-heading{align-items:end;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:2px 2px 16px}.subject-list-heading h2{font-size:24px;margin:0 0 5px}.subject-card-list{gap:18px}.subject-card{align-items:start;border-color:color-mix(in srgb,var(--primary) 18%,var(--line));border-left:4px solid var(--primary);gap:18px;padding:20px;box-shadow:var(--shadow-card);transition:border-color .15s ease,box-shadow .15s ease}.subject-card:hover{border-color:color-mix(in srgb,var(--primary) 38%,var(--line));box-shadow:0 14px 34px color-mix(in srgb,var(--primary) 10%,transparent)}.subject-card-icon{border-radius:9px;height:46px;width:46px}.subject-card-title>strong{font-size:18px;line-height:1.3}.subject-card-title>span{border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);letter-spacing:.025em}.subject-card-content>small{font-size:13px;font-weight:700}.subject-card-actions .icon-button{background:var(--surface-high);border-color:var(--line);height:40px;min-height:40px;width:40px}.subject-card-assignment{gap:14px;padding-top:18px}.subject-card-assignment>div{align-content:start;background:var(--surface-high);border:1px solid var(--line);border-radius:9px;min-height:82px;padding:14px}.subject-all-teachers{color:var(--primary);font-weight:800}.subject-editor-settings{background:var(--surface-high);border:1px solid var(--line);border-radius:9px;gap:16px;padding:16px}.subject-editor-grade-tabs button{border-radius:8px;font-size:12px;min-height:36px;padding:7px 12px;transition:border-color .15s ease,color .15s ease,background .15s ease}.subject-editor-grade-tabs button:hover{border-color:var(--primary);color:var(--primary)}.subject-editor-grade-tabs button.is-active{box-shadow:0 5px 14px color-mix(in srgb,var(--primary) 22%,transparent);color:#fff}.subject-editor-options label{min-height:38px;padding:8px 12px;transition:border-color .15s ease,color .15s ease,background .15s ease}.subject-editor-options label:hover{border-color:color-mix(in srgb,var(--primary) 55%,var(--line));color:var(--primary)}.subject-editor-options label.is-selected{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 10%,transparent)}@media(max-width:560px){.subject-management-panel{gap:22px;padding:16px}.subject-create-form{padding:18px}.subject-card{padding:16px}.subject-editor-settings-heading{align-items:stretch;display:grid}.subject-editor-grade-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.subject-editor-grade-tabs button{width:100%}}.management-backup-panel{display:grid;gap:14px;margin-bottom:16px}.management-backup-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.backup-restore-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;min-width:0}.backup-file-control{max-width:min(360px,100%);font-size:16px;font-weight:900}.backup-file-control span{font-size:inherit;font-weight:inherit}.backup-file-control input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.hero-action-group{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.management-form{max-width:none;min-width:0}.management-student-create-form{align-content:start;align-self:start;height:fit-content}.management-import-form{align-content:start;height:100%}.management-import-form>.button:last-child{width:100%;margin-top:auto;justify-content:center}.management-import-form>.muted{margin-block:0;line-height:1.5}.management-create-form{align-content:start;height:100%}.management-create-form .section-heading{min-height:34px;margin:0}.management-create-form label{align-content:start;gap:8px}.management-create-form input,.management-create-form select{width:100%;min-height:54px}.management-create-form>.button:last-child{width:100%;min-height:54px;margin-top:auto;justify-content:center}.management-create-form .form-grid{gap:18px}.scripts-page{display:grid;gap:28px;width:min(100%,1500px);margin:0 auto}.scripts-hero{margin-bottom:4px}.scripts-upload{width:min(720px,100%);max-width:720px}.scripts-upload h2{display:flex;align-items:center;gap:9px;margin:5px 0 0}.scripts-file-field{display:grid;gap:8px;border:1px dashed color-mix(in srgb,var(--primary) 42%,var(--line));border-radius:8px;background:var(--primary-soft);padding:15px}.scripts-file-field>span{color:var(--text);font-weight:850}.scripts-file-picker{display:flex;align-items:center;gap:12px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:10px 12px;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease}.scripts-file-picker:hover{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.scripts-file-picker-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:8px;background:var(--primary-soft);color:var(--primary)}.scripts-file-picker-copy{display:grid;flex:1;gap:3px;min-width:0}.scripts-file-picker-copy strong,.scripts-file-picker-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scripts-file-picker-copy small{color:var(--muted);font-weight:650}.scripts-file-picker-button{flex:0 0 auto;pointer-events:none}@media(max-width:560px){.scripts-file-picker{align-items:stretch;flex-wrap:wrap}.scripts-file-picker-copy{align-self:center}.scripts-file-picker-button{width:100%;justify-content:center}}.scripts-library{display:grid;gap:16px}.scripts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.script-card{display:grid;align-content:start;gap:15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:20px;box-shadow:var(--shadow-card)}.script-card-heading{display:flex;align-items:center;gap:12px}.script-card-heading>span{display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:var(--primary-soft);color:var(--primary)}.script-card h3{margin:0 0 4px}.script-card small,.script-card p{color:var(--muted)}.script-card p{margin:0;line-height:1.5}.script-card fieldset{margin:0;border:1px solid var(--line);border-radius:8px;padding:12px}.script-card legend{padding:0 6px;color:var(--muted);font-size:12px;font-weight:800}.script-class-grid{display:flex;flex-wrap:wrap;gap:8px}.script-class-grid label{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:var(--surface-high);padding:7px 10px;font-size:12px;font-weight:750}.script-class-grid input{width:auto}.script-card-actions{display:flex;gap:9px;margin-top:auto}@media(max-width:980px){.scripts-grid{grid-template-columns:1fr}}.management-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.management-form label,.management-form input,.management-form select,.management-form textarea{min-width:0;max-width:100%;box-sizing:border-box}.management-form--wide{grid-column:1 / -1}.management-lists{align-items:start}.student-access-panel{grid-column:1 / -1}.management-row{align-items:flex-start}.management-row>span{display:grid;gap:4px;min-width:0}.class-list-row{border-left:3px solid transparent}.class-list-row--active{border-color:#4f77aa6b;background:var(--surface-strong)}.management-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-left:auto}.teacher-role-control{display:grid;gap:5px;min-width:190px;margin:0}.teacher-role-control span{color:var(--muted);font-size:11px;font-weight:800}.teacher-role-control select{min-height:34px}.teacher-delete-panel{display:grid;gap:12px;margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.info-panel.teacher-delete-panel{margin-top:0;border-top:0;padding-top:24px}.teacher-delete-panel h3{margin:0;color:var(--text);font-size:18px}.teacher-delete-list{margin-top:0}.teacher-delete-row{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(360px,1.4fr) minmax(260px,auto);align-items:start;gap:16px;border-color:var(--line);background:var(--surface);padding:16px}.teacher-delete-row>.teacher-reassignment-panel{grid-column:2}.teacher-delete-row>.management-row-actions{grid-column:3}.teacher-delete-row--needs-reassignment{border-left:3px solid rgba(79,119,170,.42);background:var(--surface-strong)}.teacher-reassignment-panel{display:grid;gap:8px;flex:1 1 360px;min-width:min(100%,320px)}.teacher-reassignment-list{display:grid;gap:8px}.teacher-reassignment-row{display:grid;grid-template-columns:minmax(120px,.9fr) minmax(180px,1.1fr);align-items:center;gap:10px;margin:0;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:10px}.teacher-reassignment-row>span{display:grid;gap:2px;min-width:0}.teacher-reassignment-row strong,.teacher-reassignment-row small{overflow-wrap:anywhere}.teacher-reassignment-row select{width:100%;min-width:0}.teacher-delete-row .teacher-reassignment-row select,.teacher-delete-row .teacher-role-control select{min-height:42px;border:1px solid var(--line);border-radius:8px;background-color:var(--surface);color:var(--text);font-weight:800;padding:0 12px}.teacher-delete-row .teacher-role-control{min-width:0;width:min(230px,100%)}.teacher-delete-row .teacher-role-control span{color:var(--primary);font-size:12px;font-weight:900}.teacher-delete-row .management-row-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;justify-content:stretch;gap:10px;margin-left:0}.teacher-delete-row .button--danger{min-height:42px;border-color:#c75f6242;background:#c75f6212;color:var(--danger);padding:0 16px}@media(max-width:1180px){.teacher-delete-row{grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr)}.teacher-delete-row>.management-row-actions{grid-column:1 / -1}}@media(max-width:720px){.management-page-actions{justify-content:stretch}.management-page-actions .button{flex:1 1 100%;justify-content:center}.management-backup-actions{align-items:stretch;flex-direction:column}.backup-restore-actions,.backup-restore-actions .button,.management-backup-actions>.button{justify-content:center;width:100%}.management-form .form-grid,.teacher-delete-row{grid-template-columns:1fr}.teacher-delete-row>.teacher-reassignment-panel,.teacher-delete-row>.management-row-actions{grid-column:auto}.teacher-delete-row>.management-row-actions{justify-content:flex-start}.teacher-delete-row .management-row-actions,.teacher-reassignment-row{grid-template-columns:1fr}}.class-detail-panel{display:grid;gap:18px;scroll-margin-top:104px}.class-detail-edit-form{display:grid;gap:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:clamp(18px,2.2vw,28px);box-shadow:0 10px 28px color-mix(in srgb,var(--text) 5%,transparent)}.class-detail-edit-heading,.class-detail-edit-actions{display:flex;align-items:center;justify-content:space-between;gap:18px}.class-detail-edit-heading>div{display:grid;gap:4px}.class-detail-edit-heading strong{color:var(--text);font-size:18px;font-weight:900}.class-detail-edit-heading span,.class-detail-edit-actions>small{color:var(--muted);line-height:1.45}.class-detail-edit-badge{flex:0 0 auto;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));border-radius:999px;background:var(--primary-soft);padding:7px 11px;color:var(--primary)!important;font-size:12px;font-weight:850}.class-detail-edit-grid{display:grid;width:100%;grid-template-columns:minmax(240px,1.25fr) minmax(190px,.9fr) minmax(190px,.9fr);gap:18px}.class-detail-edit-grid label{align-content:start;gap:8px;color:var(--text);font-size:14px;font-weight:850}.class-detail-edit-grid input,.class-detail-edit-grid textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:13px 14px;color:var(--text);font:inherit;font-weight:700;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.class-detail-edit-grid input{min-height:50px}.class-detail-edit-grid textarea{min-height:122px;resize:vertical;line-height:1.55}.class-detail-edit-grid input:hover,.class-detail-edit-grid textarea:hover{border-color:color-mix(in srgb,var(--primary) 48%,var(--line))}.class-detail-edit-grid input:focus,.class-detail-edit-grid textarea:focus{outline:0;border-color:var(--primary);background:var(--surface-high);box-shadow:0 0 0 4px var(--primary-soft)}.class-detail-edit-grid input::placeholder,.class-detail-edit-grid textarea::placeholder{color:var(--muted);opacity:.82}.class-detail-field-help{color:var(--muted);font-size:12px;font-weight:650;line-height:1.4}.class-detail-field-counter{display:flex;justify-content:space-between;gap:14px}.class-detail-field-counter b{flex:0 0 auto;color:var(--primary)}.class-detail-edit-actions{border-top:1px solid var(--line);padding-top:18px}.class-detail-edit-actions .button{flex:0 0 auto;min-height:48px;padding-inline:20px}.class-detail-edit-conditions{grid-column:1 / -1}.class-detail-conditions{display:grid;gap:5px;margin:0;border-left:3px solid var(--primary);background:var(--primary-soft);padding:12px 14px;color:var(--muted)}.class-detail-conditions strong{color:var(--text)}.class-detail-meta{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(150px,.9fr) minmax(170px,1fr) minmax(250px,1.35fr) minmax(110px,.65fr);gap:12px}.class-detail-meta span,.class-average-cell{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:12px}.class-detail-meta small,.class-student-table-head,.class-average-cell small,.class-student-name small{color:var(--muted);font-size:12px;font-weight:800}.class-detail-meta strong,.class-average-cell strong{color:var(--text)}.class-detail-meta select{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;font-weight:800;padding:8px 10px}.class-student-table{display:grid;overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.class-student-table-head,.class-student-row{display:grid;grid-template-columns:minmax(230px,1.2fr) minmax(140px,.7fr) minmax(150px,.75fr) repeat(4,minmax(130px,.7fr));align-items:stretch;min-width:1120px;gap:12px;padding:12px 14px}.class-student-table-head{align-items:center;background:var(--surface-strong);color:var(--primary);text-transform:uppercase}.class-student-table-head span{display:grid;gap:3px}.class-student-row{border-top:1px solid var(--line)}.class-student-row>span{display:grid;align-content:center;min-width:0}.class-student-name strong{color:var(--text)}.system-audit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.management-embedded-audit{border-top:1px solid var(--line);margin-top:28px;padding-top:28px}.system-audit-panel{display:grid;gap:18px}.system-audit-list{display:grid;gap:10px;max-height:680px;overflow:auto}.system-audit-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(150px,.55fr);align-items:center;gap:12px;border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:8px;background:var(--surface);padding:12px}.system-audit-row--log{grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}.system-audit-row span{display:grid;gap:3px;min-width:0}.system-audit-row strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.system-audit-row small{overflow:hidden;color:var(--muted);font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.future-roadmap-panel{display:grid;gap:18px;border:1px solid rgba(68,226,205,.24);border-radius:var(--radius);background:#191f2fc7;padding:22px}.future-roadmap-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.future-roadmap-intro h2{display:flex;align-items:center;gap:10px;margin:0;color:var(--primary);font-size:26px}.future-roadmap-intro p{max-width:780px;margin:10px 0 0;color:var(--muted);line-height:1.55}.future-roadmap-summary{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:8px;min-width:320px}.future-roadmap-summary span{display:grid;gap:4px;min-height:82px;align-content:center;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d52;padding:12px}.future-roadmap-summary strong{color:var(--secondary);font-size:28px;line-height:1}.future-roadmap-summary small{color:var(--muted);font-size:11px;font-weight:900;line-height:1.25;text-transform:uppercase}.future-roadmap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.future-roadmap-card{display:grid;align-content:start;gap:10px;min-height:210px;border:1px solid var(--line-soft);border-left:3px solid var(--primary);border-radius:6px;background:#080e1d47;padding:16px}.future-roadmap-card--recommended{border-color:var(--secondary);box-shadow:0 0 0 1px var(--secondary-soft),0 14px 34px #44e2cd1f}.roadmap-recommendation{display:inline-flex;width:fit-content;align-items:center;gap:6px;border-radius:999px;background:var(--secondary-soft);color:var(--secondary);padding:6px 10px;font-size:11px;font-weight:900;letter-spacing:.03em;text-transform:uppercase}.github-roadmap{display:grid;gap:18px;margin-top:8px;border-top:1px solid var(--line-soft);padding-top:22px}.github-roadmap__heading{display:flex;align-items:flex-start;gap:13px}.github-roadmap__heading h2,.github-roadmap__heading p,.github-roadmap__steps h3,.github-roadmap__steps p{margin:0}.google-roadmap__icon,.google-roadmap__step-icon{background:color-mix(in srgb,#4285f4 14%,var(--surface));color:#4285f4}.google-roadmap .github-roadmap__steps small{color:#4285f4}.github-roadmap__heading h2{margin-top:3px;font-size:22px}.github-roadmap__heading p{max-width:820px;margin-top:7px;color:var(--muted);line-height:1.5}.github-roadmap__icon,.github-roadmap__step-icon{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;border-radius:8px;background:var(--primary-soft);color:var(--primary)}.github-roadmap__icon{width:44px;height:44px}.github-roadmap__steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}.github-roadmap__steps li{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-strong);padding:14px}.github-roadmap__step-icon{width:34px;height:34px}.github-roadmap__steps small{color:var(--secondary);font-size:10px;font-weight:900;text-transform:uppercase}.github-roadmap__steps h3{margin-top:4px;font-size:15px;line-height:1.25}.github-roadmap__steps p{margin-top:7px;color:var(--muted);font-size:12px;line-height:1.45}@media(max-width:1200px){.github-roadmap__steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.github-roadmap__heading{display:grid}.github-roadmap__steps{grid-template-columns:1fr}}.future-roadmap-card:nth-child(3n+2){border-left-color:var(--secondary)}.future-roadmap-card:nth-child(3n){border-left-color:var(--warning)}.future-roadmap-card__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.future-roadmap-card h3,.future-roadmap-card p{margin:0}.future-roadmap-card h3{font-size:18px}.future-roadmap-card p,.future-roadmap-card small{color:var(--muted);line-height:1.45}.future-roadmap-card small{border-top:1px solid var(--line-soft);padding-top:10px;font-size:12px}.roadmap-pill,.roadmap-status{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:0 9px;font-size:10px;font-weight:900;text-transform:uppercase}.roadmap-pill{background:#4f77aa1f;color:var(--primary)}.roadmap-status{background:#44e2cd1f;color:#7bf5e5}@media(max-width:980px){.management-grid,.system-audit-grid{grid-template-columns:1fr}.class-detail-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.class-detail-edit-grid{grid-template-columns:1fr}.class-detail-edit-conditions{grid-column:auto}.class-detail-edit-heading,.class-detail-edit-actions{align-items:stretch;flex-direction:column}.class-detail-edit-badge{align-self:flex-start}.class-detail-edit-actions .button{width:100%;justify-content:center}.management-form--wide{grid-column:auto}}@media(max-width:980px){.future-roadmap-intro{display:grid}.future-roadmap-summary,.future-roadmap-grid{grid-template-columns:1fr;min-width:0}}.run-history{display:grid;gap:10px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d47;padding:14px}.run-history-row{display:grid;gap:4px;border-left:3px solid var(--secondary);padding-left:10px}.run-history-row--latest{border-left-color:var(--accent)}.run-history-row strong{color:var(--text);font-size:13px}.run-history-row span{color:var(--muted);font-size:12px;font-weight:800}.teacher-control-panel,.attention-panel{display:grid;gap:16px}.teacher-overview-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;align-items:stretch}.teacher-overview-grid>*{min-width:0}.teacher-overview-grid .data-foundation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-overview-grid .data-foundation-panel{align-content:start}.teacher-overview-grid .data-foundation-item{min-height:104px}.teacher-overview-grid .attention-panel{align-content:start}.attention-panel--wide{width:100%}.project-calendar-panel{display:grid;align-content:start;gap:12px}.project-calendar-controls{display:flex;align-items:center;gap:8px}.project-calendar-controls strong{min-width:132px;color:var(--primary);font-size:13px;text-align:center;text-transform:capitalize}.project-calendar-controls .icon-button{width:34px;height:34px}.project-calendar-weekdays,.project-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.project-calendar-weekdays{color:var(--muted);font-size:11px;font-weight:900;text-align:center;text-transform:uppercase}.project-calendar-day{position:relative;display:grid;align-content:space-between;justify-items:center;min-width:0;min-height:52px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);color:var(--text);padding:7px 3px 6px;font:inherit}.project-calendar-day:nth-child(-n+7){border-top:1px solid var(--line)}.project-calendar-day:nth-child(7n+1){border-left:1px solid var(--line)}.project-calendar-day:nth-child(1){border-top-left-radius:8px}.project-calendar-day:nth-child(7){border-top-right-radius:8px}.project-calendar-day:nth-child(36){border-bottom-left-radius:8px}.project-calendar-day:nth-child(42){border-bottom-right-radius:8px}.project-calendar-day>span:first-child{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:800}.project-calendar-day.is-outside{color:color-mix(in srgb,var(--muted) 48%,transparent);background:var(--surface-strong)}.project-calendar-day.is-today>span:first-child{background:var(--primary);color:#fff}.project-calendar-day.has-events{cursor:pointer}.project-calendar-day.has-events:hover{z-index:1;background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.project-calendar-dots{display:flex;align-items:center;justify-content:center;gap:3px;min-height:9px}.project-calendar-dots i,.project-calendar-legend i{display:block;flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--primary)}.project-calendar-dots i.is-start,.project-calendar-legend i.is-start{background:var(--primary)}.project-calendar-dots i.is-milestone,.project-calendar-legend i.is-milestone{background:var(--warning)}.project-calendar-dots i.is-deadline,.project-calendar-legend i.is-deadline{background:var(--danger)}.project-calendar-dots i.is-completed,.project-calendar-legend i.is-completed{background:var(--secondary)}.project-calendar-dots small{color:var(--muted);font-size:9px;font-weight:900}.project-calendar-footer,.project-calendar-legend{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.project-calendar-footer{justify-content:space-between}.project-calendar-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:10px;font-weight:800}.student-study-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.student-study-summary-card{display:grid;align-content:start;gap:7px;min-width:0;min-height:122px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:16px;box-shadow:var(--shadow-card)}.student-study-summary-card svg{color:var(--primary)}.student-study-summary-card strong{color:var(--text);font-size:clamp(24px,1.92vw,32.4px);line-height:1.1;overflow-wrap:anywhere}.student-study-summary-card span{color:var(--muted);font-size:12px;font-weight:800;line-height:1.35}@media(max-width:1180px){.student-study-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.student-study-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.student-study-summary-card{min-height:108px;padding:14px}}@media(max-width:400px){.student-study-summary{grid-template-columns:minmax(0,1fr)}}.dashboard-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}.dashboard-filter{display:grid;gap:7px}.dashboard-filter--wide{min-width:220px}.dashboard-filter span{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.dashboard-filter select{width:100%;min-height:40px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d6b;color:var(--text);padding:0 10px}.attention-count{color:var(--accent);font-size:12px;font-weight:900}.attention-list{display:grid;gap:8px}.attention-row{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(180px,1.3fr) auto;gap:12px;align-items:center;border:1px solid var(--line-soft);border-left:3px solid var(--accent);border-radius:6px;background:var(--surface-high);padding:12px}.attention-row strong,.attention-row small{display:block}.attention-row>span,.info-panel>*,.section-heading>*{min-width:0}.attention-row strong,.attention-row small,.section-heading h2{overflow-wrap:anywhere}.attention-row--class{border-left-width:4px;background:color-mix(in srgb,var(--primary) 5%,var(--surface))}.attention-row--class>span:first-child strong{color:var(--primary);font-size:17px}.attention-row small,.submission-note-dot{color:var(--muted);font-size:12px}.bulk-action-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}.bulk-action-bar>span{color:var(--muted);font-size:12px;font-weight:900;margin-right:auto}.submission-table-row--selected{border-color:#4f77aa7a;background:#0e74902e}.submission-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--secondary)}.submission-note-dot{display:block;margin-top:4px}.review-summary-actions{display:grid;justify-items:end;gap:10px}.review-summary-actions .task-meta--wrap{margin-top:0}.review-switcher{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:900}.review-switcher .icon-button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:980px){.dashboard-filter-grid,.attention-row{grid-template-columns:1fr}.review-summary-actions{justify-items:start}}@media(min-width:981px)and (max-width:1280px){.teacher-overview-grid{grid-template-columns:minmax(0,1fr)}.attention-row{grid-template-columns:minmax(110px,.7fr) minmax(0,1.5fr) auto}}.assignment-timeline,.check-help,.change-summary-box{display:grid;gap:10px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d47;padding:14px}.assignment-timeline>strong,.check-help strong,.change-summary-box strong{color:var(--primary);font-size:12px;letter-spacing:.05em;text-transform:uppercase}.assignment-timeline>div,.student-task-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:6px}.assignment-timeline span,.student-task-timeline span{display:grid;gap:3px;align-content:center;min-height:44px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high);color:var(--muted);padding:7px 8px;font-size:10px;font-weight:900;line-height:1.25;text-transform:uppercase}.assignment-timeline span.is-done,.student-task-timeline span.is-done{border-color:#44e2cd57;background:#44e2cd1a;color:#7bf5e5}.assignment-timeline small,.student-task-timeline small{color:var(--muted);font-size:10px;font-weight:800;text-transform:none}.check-help span,.change-summary-box span{color:var(--muted);font-size:13px;line-height:1.45}.local-draft-box{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(248,196,113,.34);border-radius:6px;background:#f8c47117;padding:12px}.local-draft-box svg{color:var(--warning)}.local-draft-box span{display:grid;gap:3px;color:#ffd796;font-size:13px;font-weight:800;line-height:1.35}.local-draft-box small{color:var(--muted);font-weight:700}.returned-task-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 14px;border:1px solid rgba(248,196,113,.38);border-radius:var(--radius);background:#f8c4711a;padding:18px}.returned-task-alert>svg{color:var(--warning);margin-top:2px}.returned-task-alert strong{color:#ffd796}.returned-task-alert p{margin:4px 0 0;color:var(--muted);line-height:1.45}.returned-task-list{grid-column:2;display:grid;gap:8px}.returned-task-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(248,196,113,.2);border-radius:6px;background:#080e1d3d;padding:10px}.returned-task-row span{display:grid;gap:3px;min-width:0}.returned-task-row small{color:var(--muted);line-height:1.35}.student-progress-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}.student-progress-body{display:grid;grid-template-columns:minmax(560px,1fr) minmax(360px,1.05fr);gap:28px;align-items:stretch;margin-top:16px}.student-progress-body .student-progress-grid{margin-top:0}.student-progress-left,.student-progress-right{min-width:0}.student-progress-right{display:grid;align-content:center;border-left:2px solid var(--line);padding-left:28px}.student-progress-grid>span,.student-progress-grid>button{display:grid;gap:4px;min-height:76px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d4d;padding:12px}.student-progress-grid>button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer}.student-progress-card--action{transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease}.student-progress-card--action:hover,.student-progress-card--action:focus-visible{border-color:#4f77aa6b;background:#4f77aa1a;box-shadow:0 12px 26px #4f77aa24;outline:none;transform:translateY(-1px)}.student-progress-grid strong{color:var(--primary);font-size:24px;line-height:1}.student-progress-grid small{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.student-progress-view-switch{display:none}.student-progress-view-switch button{min-width:0}.student-progress-overview{display:grid;grid-template-columns:minmax(420px,.95fr) minmax(480px,1.05fr);gap:34px;align-items:start;min-width:0}.student-progress-summary-side,.student-progress-success-side{min-width:0}.student-progress-summary-side .topic-chip-list{justify-content:flex-start;margin-top:28px}.student-journey-overview{margin-top:44px}.student-journey-overview h3{display:flex;align-items:center;gap:10px;margin:0;color:var(--text);font-size:clamp(24px,2vw,34px);line-height:1.12}.student-journey-overview h3 svg{flex:0 0 auto;color:var(--text)}.student-journey-skill-line{position:relative;width:100%;max-width:987px;overflow:hidden;background:transparent;margin-top:18px}.student-journey-skill-line img{display:block;width:100%;height:auto;background:transparent;filter:none}.student-journey-skill-line-base{opacity:.34}.student-journey-skill-line-active{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;overflow:hidden;background:transparent;clip-path:inset(0 calc(100% - var(--student-journey-progress, 0%)) 0 0);transition:clip-path .42s ease}.student-journey-skill-line-active img{width:100%}.student-progress-success-side{border-left:2px solid var(--line);padding-left:32px}.topic-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.student-progress-right .topic-chip-list{justify-content:center;margin-top:0}.student-latest-work-panel{display:grid;gap:14px;width:100%}.student-latest-work-heading h2{display:flex;align-items:center;gap:10px;margin:0;color:var(--text);font-size:clamp(21px,1.6vw,26px);line-height:1.16;font-weight:900}.student-latest-work-heading svg{flex:0 0 auto;color:var(--text)}.student-latest-work-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.student-latest-card{display:grid;grid-template-rows:auto 1fr;overflow:hidden;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:0;text-align:left;cursor:pointer;box-shadow:0 16px 32px #1b2c4412;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.student-latest-card:hover,.student-latest-card:focus-visible{border-color:#4f77aa70;box-shadow:0 18px 36px #4f77aa21;outline:none;transform:translateY(-1px)}.student-latest-card-media{position:relative;display:block;height:clamp(138px,10.5vw,162px);overflow:hidden;background:var(--surface-higher)}.student-latest-card-media img{width:100%;height:100%;object-fit:cover}.student-latest-card-fallback{display:grid;place-items:center;width:100%;height:100%;background:radial-gradient(circle at 18% 30%,rgba(136,230,215,.64),transparent 21%),radial-gradient(circle at 82% 18%,rgba(246,176,92,.34),transparent 18%),linear-gradient(135deg,#e6fbf9,#f8fbff 58%,#fff2dc);color:var(--primary);font-size:11px;font-weight:700;letter-spacing:0;padding:0 16px 0 74px;text-align:center;text-transform:uppercase}.student-latest-card-fallback span{max-width:100%;overflow-wrap:anywhere}.student-latest-card-icon{position:absolute;left:14px;bottom:10px;display:grid;place-items:center;width:42px;height:42px;border:3px solid #ffffff;border-radius:8px;background:#0f172a;color:#fff;box-shadow:0 10px 20px #0f172a29}.student-latest-card-body{display:grid;align-content:start;gap:7px;min-height:128px;padding:14px 16px 16px}.student-latest-card-tags{display:flex;flex-wrap:wrap;gap:6px}.student-latest-card-chip{display:inline-flex;align-items:center;min-height:26px;border:1px solid rgba(79,119,170,.22);border-radius:999px;background:var(--surface-high);color:var(--primary);padding:0 10px;font-size:12px;font-weight:800;line-height:1;text-transform:uppercase}.student-latest-card-time{display:inline-flex;align-items:center;justify-self:start;gap:6px;color:var(--primary);font-weight:400;line-height:1.25}.student-latest-card-time{font-size:14px}.student-latest-card-title{display:block;margin-top:12px;color:var(--text);font-size:17px;font-weight:900;line-height:1.2;overflow-wrap:anywhere}.student-latest-card-body small{color:var(--muted);font-size:13px;font-weight:400}.student-work-card.task-card{display:grid;grid-template-rows:auto 1fr;gap:0;overflow:hidden;min-height:0;border:1px solid var(--line);border-top:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:0;box-shadow:0 16px 32px #1b2c4412}.student-work-card.task-card:nth-child(2n),.student-work-card.task-card--returned,.student-work-card.task-card--submitted,.student-work-card.task-card--completed,.student-work-card.exam-card,.student-work-card.exam-card--open,.student-work-card.exam-card--closed,.student-work-card.exam-card--archived{border-top-color:var(--line)}.student-work-card.task-card--archive{grid-template-columns:none;gap:0;padding:0}.student-work-card .student-work-card-body{gap:9px;min-height:0}.student-work-card .student-latest-card-title{margin-top:2px}.student-work-card-description{display:-webkit-box;margin:0;overflow:hidden;color:var(--muted);font-size:13px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:3}.student-work-card-status-row{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.student-work-card-points{margin-left:auto;color:var(--primary);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:800}.student-work-card-tags,.student-work-card .task-archive-chip-row{margin:0}.student-work-card .student-save-summary,.student-work-card .feedback-snippet,.student-work-card .workflow-mini,.student-work-card .student-task-timeline{margin-top:2px}.student-work-card .student-task-timeline{grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}.student-work-card .student-work-card-meta{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.student-work-card .exam-teacher-grade-row{grid-template-columns:1fr}.student-work-card .exam-teacher-contact,.student-work-card .exam-grade-summary{padding:10px}.student-work-card .exam-teacher-contact span{font-size:13px}.student-work-card .exam-grade-summary span{font-size:20px}.student-work-card .button{margin-top:4px}@media(max-width:1180px){.student-latest-work-grid,.student-task-list,.student-exam-list,.task-grid--section{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.student-latest-work-grid,.student-task-list,.student-exam-list,.task-grid--section{grid-template-columns:1fr}}.topic-chip-list span{display:inline-flex;align-items:center;min-height:28px;border:1px solid var(--line-soft);border-radius:999px;background:var(--surface-high);color:var(--muted);padding:0 10px;font-size:11px;font-weight:900;text-transform:uppercase}.topic-chip-list span.is-completed{border-color:#44e2cd57;background:var(--secondary-soft);color:#7bf5e5}.compact-list--tight{margin-top:14px}.compact-list--tight .status-badge{justify-self:start}@media(max-width:720px){.local-draft-box,.returned-task-alert,.returned-task-row,.student-progress-grid{grid-template-columns:1fr}.student-journey-overview{margin-top:30px}.student-journey-overview h3{font-size:24px}.student-journey-skill-line{margin-top:14px}.returned-task-list{grid-column:auto}}.auth-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;padding:4px;border-radius:var(--radius);background:var(--background-deep)}.auth-mode-switch button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font-weight:900}.auth-mode-switch button:hover,.auth-mode-switch button.is-active{border-color:#4f77aa5c;background:var(--primary-soft);color:var(--primary)}.teacher-admin-page .hero-panel h1{max-width:840px}.teacher-admin-page .hero-panel--teacher{min-height:0;border:0;border-radius:0;background:transparent;box-shadow:none;padding:0}.teacher-admin-page .hero-panel--teacher h1{margin:4px 0 8px;font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.teacher-admin-page .hero-panel--teacher p{max-width:900px;margin:0;font-size:var(--page-subtitle-size);line-height:1.35}.student-access-panel,.goal-list-panel,.goal-form{align-content:start}.student-access-list,.goal-list{display:grid;gap:10px;margin-top:16px}.student-access-toolbar{display:grid;grid-template-columns:repeat(2,minmax(180px,260px)) auto;align-items:end;gap:12px;margin-top:14px}.student-access-toolbar label,.student-access-transfer{display:grid;gap:6px;margin:0}.student-access-toolbar span,.student-access-transfer>span{color:var(--muted);font-size:12px;font-weight:800}.student-access-toolbar select{width:100%;min-height:38px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high);color:var(--text);padding:0 10px}.student-access-toolbar select:hover,.student-access-toolbar select:focus{border-color:#4f77aa52;background:var(--surface-higher)}.student-promote-button{min-height:38px;justify-content:center;white-space:nowrap}.student-access-row,.goal-row{display:grid;gap:12px;border:1px solid var(--line-soft);border-left:3px solid var(--primary);border-radius:6px;background:#080e1d47;padding:14px}.student-access-row{grid-template-columns:minmax(320px,1fr) minmax(150px,260px) auto;align-items:center}.student-access-identity{display:flex;align-items:center;gap:12px;min-width:0}.student-access-identity>span{display:grid;gap:4px;min-width:0}.student-access-row>span,.goal-row{min-width:0}.student-access-row>span,.goal-row,.goal-row>div:first-child{display:grid;gap:6px}.student-access-row strong,.goal-row strong{color:var(--text)}.student-access-row small,.goal-row small,.goal-row p{margin:0;color:var(--muted);line-height:1.4}.student-access-row select{width:100%;min-height:38px;border:1px solid var(--line-soft);border-radius:6px;background:#080e1d6b;color:var(--text);padding:0 10px}.student-access-warning{color:var(--danger)!important}@media(max-width:720px){.student-access-toolbar{grid-template-columns:1fr}.student-promote-button{width:100%}.promotion-field-grid,.promotion-route,.promotion-student-row{grid-template-columns:1fr}.promotion-student-mode{width:100%}.promotion-dialog-header,.promotion-student-controls,.promotion-dialog-actions{align-items:stretch;flex-direction:column}}.student-access-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.goal-row{border-left-color:var(--secondary)}.goal-row>div:first-child{display:flex;flex-wrap:wrap;align-items:center}.goal-progress{height:9px;overflow:hidden;border-radius:999px;background:#334155b8}.goal-progress span{display:block;height:100%;border-radius:inherit;background:var(--secondary)}.exam-manager{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);gap:18px;align-items:start}.exam-manager--form{grid-template-columns:1fr}.exam-form,.exam-list-panel{max-width:none}.exam-list{display:grid;gap:12px;margin-top:16px}.exam-list-tabs{display:flex;align-items:center;gap:4px;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:3px}.exam-list-tabs button{display:inline-flex;align-items:center;gap:7px;min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:13px;font-weight:900;line-height:1.2;padding:0 10px}.exam-list-tabs button:hover,.exam-list-tabs button.is-active{background:var(--primary-soft);color:var(--primary)}.exam-list-tabs strong{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:var(--surface);color:var(--primary);font-size:12px}.exam-row{display:grid;grid-template-areas:"summary actions" "meta meta";grid-template-columns:minmax(0,1fr) auto;gap:14px;border:1px solid var(--line-soft);border-left:3px solid var(--primary);border-radius:6px;background:#080e1d47;padding:14px}.exam-row__main,.exam-row__actions{display:grid;gap:12px}.exam-row__actions{grid-area:actions;display:flex;flex-wrap:wrap;align-items:center;align-self:start;justify-content:flex-end;gap:10px}.exam-row__main{display:contents}.exam-row__main>div:first-child{grid-area:summary}.exam-row__main>.exam-meta-grid{grid-area:meta}.exam-row>.exam-presence-panel{grid-column:1 / -1}.exam-row h3,.exam-row p{margin:0}.exam-row p{color:var(--muted);line-height:1.45}.exam-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.exam-meta-grid span{display:grid;gap:4px;min-height:58px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-high);color:var(--muted);padding:10px;font-size:12px;line-height:1.35}.exam-meta-grid strong{color:var(--primary);font-size:10px;letter-spacing:.05em;text-transform:uppercase}.exam-row__stats{display:flex;flex-wrap:wrap;gap:8px}.exam-row__stats span,.exam-editor-notice,.grade-preview-box{border:1px solid rgba(68,226,205,.24);border-radius:6px;background:#44e2cd14;color:var(--primary)}.exam-row__stats span{padding:7px 9px;font-size:12px;font-weight:900}.grading-scale-grid{display:grid;gap:10px}.exam-question-builder{gap:16px}.exam-composition-toolbar,.exam-question-actions{display:flex;flex-wrap:wrap;gap:10px}.exam-composition-toolbar button{border:1px solid var(--line-soft);border-radius:999px;background:var(--surface-strong);color:var(--muted);cursor:pointer;font-weight:900;padding:9px 14px}.exam-composition-toolbar button.is-active{border-color:#4f77aa73;background:#4f77aa1f;color:var(--primary)}.exam-question-list{display:grid;gap:14px}.exam-step-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.exam-step-summary span{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:14px}.exam-step-summary strong{color:var(--text)}.exam-step-summary small{color:var(--muted);font-weight:800}.exam-question-card{display:grid;gap:14px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-strong);padding:16px}.exam-question-card__heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-question-card__heading span{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-weight:900}.exam-option-list{display:grid;gap:10px}.exam-option-row{display:grid;grid-template-columns:auto 96px minmax(0,1fr) auto;align-items:center;gap:10px}.exam-option-row span{color:var(--muted);font-size:13px;font-weight:800}.programming-language-picker{display:grid;gap:8px;align-content:start;min-width:0}.programming-language-picker>span{color:var(--text);font-size:13px;font-weight:900}.programming-language-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.programming-language-options .checkbox-row{min-height:44px;padding:10px}.programming-language-picker small{color:var(--muted);line-height:1.35}.grade-preview-box{display:grid;align-content:center;gap:4px;min-height:76px;padding:12px 14px}.grade-preview-box strong{color:var(--text);font-size:24px}.grade-preview-box span{color:var(--muted);font-weight:800}.grade-row{display:grid;grid-template-columns:90px minmax(160px,1fr) 90px;gap:10px}.grade-scale-summary{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px;border-bottom:1px solid var(--line);font-size:17px;font-weight:400}.exam-manager--form{max-width:1080px;margin-inline:auto;width:100%}.exam-manager--form .form-page-heading h1{font-size:30px;font-weight:400}.exam-manager--form .form-page-heading p{font-size:16px}.exam-manager--form .exam-question-card{padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.exam-manager--form .exam-question-card h2{font-size:20px;font-weight:400}.exam-manager--form .exam-question-card p{white-space:pre-wrap}.exam-manager--form .exam-question-actions{position:sticky;top:8px;z-index:2;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);flex-wrap:wrap}.exam-image-upload{display:grid;gap:10px;padding:14px;background:var(--surface-strong);border:1px dashed var(--line);border-radius:8px}.exam-image-file-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.exam-image-file-name{flex:1 1 180px;min-width:0;overflow-wrap:anywhere;font-size:16px;color:var(--muted)}body .exam-manager--form .exam-image-file-button{position:relative;display:inline-flex;align-items:center;gap:8px;margin:0;padding:10px 14px;border:1px solid var(--primary);border-radius:8px;background:var(--primary-soft);color:var(--primary);font-size:17px;font-weight:400;cursor:pointer}body .exam-manager--form .exam-image-file-button input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.exam-image-file-button:focus-within{outline:2px solid var(--primary);outline-offset:3px}.exam-image-file-button.is-disabled{opacity:.6}body .exam-manager--form .exam-form label,body .exam-manager--form .exam-form legend,body .exam-manager--form .exam-image-title{font-size:20px;font-weight:400;line-height:1.45}body .exam-manager--form .exam-form :is(input,select,textarea){font-size:18px;font-weight:400}body .exam-manager--form .exam-form textarea.is-code{font-family:JetBrains Mono,monospace;line-height:1.65}body .exam-manager--form .exam-form small{font-size:17px;font-weight:400;line-height:1.5;color:var(--muted)}.exam-question-image{margin:12px 0}.exam-question-image img{display:block;max-width:100%;max-height:360px;width:auto;height:auto;object-fit:contain;border-radius:6px}.exam-question-image figcaption{margin-top:6px;color:var(--muted);font-size:14px}.exam-manager--form .button{font-weight:400}.exam-manager--form .exam-question-card h2,.exam-manager--form .exam-question-card p{margin:0}.exam-question-row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.exam-programming-options{grid-column:1 / -1}.exam-programming-options summary,.exam-scale-details summary{cursor:pointer;padding:10px 0;color:var(--primary);font-weight:400}.exam-manager--form .exam-form{gap:18px}@media(max-width:600px){.exam-manager--form .exam-question-card{padding:12px}.exam-question-card__heading{flex-wrap:wrap}.exam-manager--form .form-grid,.exam-manager--form .exam-step-summary{grid-template-columns:minmax(0,1fr)}.exam-manager--form .exam-option-row{grid-template-columns:20px minmax(0,1fr) 32px}.exam-manager--form .exam-option-row>span{grid-column:2}.exam-manager--form .exam-option-row>input:not([type=radio]){grid-column:2}}.exam-editor-notice,.grade-preview-box{display:grid;gap:4px;padding:12px}.exam-editor-notice strong,.grade-preview-box strong{color:#7bf5e5}.exam-editor-notice span,.exam-editor-notice small,.grade-preview-box span{color:var(--muted);line-height:1.4}.exam-card{border-top-color:var(--warning)}.exam-card--open{border-top-color:var(--secondary)}.exam-card--closed,.exam-card--archived{border-top-color:var(--danger)}.exam-card .button:disabled{cursor:not-allowed}.exam-test-page,.exam-start-page{display:grid;gap:16px;width:100%;max-width:1500px;margin:0 auto}.exam-start-hero,.exam-start-panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-card)}.exam-start-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;padding:22px}.exam-start-hero__icon{display:grid;place-items:center;width:62px;height:62px;border-radius:8px;background:var(--surface-higher);color:var(--primary)}.exam-start-hero__copy{display:grid;gap:8px;min-width:0}.exam-start-hero h1,.exam-start-hero p,.exam-start-panel h2,.exam-start-panel p{margin:0}.exam-start-hero h1{color:var(--text);font-size:28px;line-height:1.15;letter-spacing:0}.exam-start-hero p,.exam-start-panel p{max-width:900px;color:var(--muted);font-size:15px;line-height:1.45}.exam-start-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.exam-start-info-card{display:grid;gap:6px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:16px;box-shadow:var(--shadow-card)}.exam-start-info-card svg{color:var(--primary)}.exam-start-info-card span{color:var(--muted);font-size:13px;font-weight:900}.exam-start-info-card strong{color:var(--text);font-size:23px;line-height:1.05}.exam-start-panel{display:grid;gap:14px;padding:18px}.exam-start-panel h2{color:var(--text);font-size:22px}.exam-start-grading{display:flex;flex-wrap:wrap;gap:10px}.exam-start-grade-chip{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-high);color:var(--primary);padding:6px 10px;font-size:13px;font-weight:900}.exam-start-grade-chip strong{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface);color:var(--text)}.exam-start-grade-chip small{color:var(--muted);font-weight:800}.exam-start-panel--rules{grid-template-columns:auto minmax(0,1fr);align-items:start;background:color-mix(in srgb,var(--warning) 9%,var(--surface))}.exam-start-panel--rules>svg{margin-top:4px;color:var(--warning)}.exam-start-actions{display:flex;justify-content:flex-end;gap:12px}.exam-start-button{min-width:220px}.exam-test-timer-panel,.exam-lock-note,.exam-test-question,.exam-test-footer{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-card)}.exam-test-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 4px 8px}.exam-test-header h1,.exam-test-header p,.exam-test-question h2,.exam-test-question p{margin:0}.exam-test-header h1{color:var(--text);font-size:28px;line-height:1.15;letter-spacing:0}.exam-test-header p,.exam-test-question p{color:var(--muted);font-size:15px;line-height:1.45}.exam-test-header-copy{min-width:0}.exam-test-header-stats{display:grid;flex:0 0 min(360px,40vw);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.exam-test-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,320px);gap:16px;align-items:start}.exam-test-main{display:grid;grid-column:1;grid-row:1;gap:16px;min-width:0}.exam-test-sidebar{position:sticky;top:88px;display:grid;grid-column:2;grid-row:1;gap:16px;min-width:0}.exam-test-mini-stat{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface) 82%,transparent);padding:10px;box-shadow:0 12px 30px #30445d0f}.exam-test-mini-stat svg{color:var(--primary)}.exam-test-mini-stat strong{color:var(--text);font-size:18px;line-height:1}.exam-test-mini-stat small{overflow-wrap:anywhere;color:var(--muted);font-size:12px;font-weight:800;line-height:1.2}.exam-lock-note{display:flex;align-items:center;gap:10px;padding:14px 16px;color:var(--muted);font-weight:800}.exam-lock-note svg{flex:0 0 auto;color:var(--primary)}.exam-test-timer-panel{display:grid;gap:8px;padding:14px 16px}.exam-test-timer-panel--sticky{position:sticky;top:102px;z-index:18;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;column-gap:18px;background:color-mix(in srgb,var(--surface) 96%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.exam-test-timer-panel--sticky .exam-test-timer-heading{min-width:220px}.exam-test-timer-panel--sticky .exam-test-timer-track{min-width:120px}.exam-test-timer-panel--sticky small{white-space:nowrap}.exam-test-timer-panel--sticky.is-urgent{border-color:color-mix(in srgb,var(--danger) 58%,var(--line));box-shadow:0 12px 32px color-mix(in srgb,var(--danger) 16%,transparent)}.exam-test-timer-panel--sticky.is-urgent .exam-test-timer-heading svg,.exam-test-timer-panel--sticky.is-urgent .exam-test-timer-heading strong{color:var(--danger)}.exam-test-timer-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.exam-test-timer-heading span{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-weight:900}.exam-test-timer-heading svg{color:var(--primary)}.exam-test-timer-heading strong{color:var(--text);font-family:JetBrains Mono,monospace;font-size:21px}.exam-test-timer-track{overflow:hidden;height:8px;border-radius:999px;background:var(--surface-higher)}.exam-test-timer-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#7ab7d8);transition:width .35s ease}.exam-test-timer-panel small{color:var(--muted);font-weight:700}.exam-question-navigator{display:grid;align-items:stretch;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:14px 16px;box-shadow:var(--shadow-card)}.exam-question-navigator strong{color:var(--text);font-size:17px}.exam-question-navigator__list{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;min-width:0}.exam-question-number{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--muted);font-weight:900;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.exam-question-number:hover:not(:disabled),.exam-question-number:focus-visible{transform:translateY(-1px);border-color:var(--primary);color:var(--primary)}.exam-question-number.is-answered{border-color:color-mix(in srgb,var(--success) 45%,var(--line));background:color-mix(in srgb,var(--success) 10%,var(--surface));color:var(--success)}.exam-question-number.is-active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 12px 24px #4f77aa38}.exam-question-number:disabled{cursor:not-allowed;opacity:.68}.exam-test-layout{display:grid;gap:16px;justify-items:center}.exam-test-question-list{display:grid;justify-items:center;width:100%}.exam-test-question{display:grid;align-content:start;gap:14px;width:100%;min-width:0;min-height:260px;padding:20px}.exam-test-question--programming{width:100%}.exam-test-question__heading,.exam-linked-task{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-test-question__heading strong{color:var(--primary);font-size:16px}.exam-test-question h2{color:var(--text);font-size:22px}.exam-answer-options,.exam-programming-answer{display:grid;gap:10px}.exam-test-question--programming .exam-programming-answer{grid-template-columns:minmax(0,1fr);gap:16px;align-items:stretch}.exam-programming-assignment{display:grid;align-content:start;gap:14px;min-width:0;border:1px solid rgba(79,119,170,.18);border-radius:8px;background:var(--surface-high);padding:16px}.exam-programming-assignment p{margin:0;color:var(--muted);line-height:1.5}.exam-programming-editor{display:grid;grid-template-rows:auto auto minmax(320px,1fr);align-content:stretch;gap:8px;min-width:0;color:var(--text);font-weight:900}.exam-programming-editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-programming-editor-toolbar span{color:var(--text)}.exam-programming-editor-toolbar strong{color:var(--primary);font-size:12px;text-transform:uppercase}.exam-programming-tabs{display:flex;align-items:flex-end;gap:0;min-width:0;overflow-x:auto;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0;background:var(--surface);padding:6px 6px 0}.exam-programming-tabs button{display:inline-flex;align-items:center;flex:0 0 auto;min-height:38px;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0;background:transparent;color:var(--muted);padding:0 14px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:800}.exam-programming-tabs button:hover,.exam-programming-tabs button.is-active{border-color:var(--line);background:var(--surface-high);color:var(--primary)}.exam-programming-code-shell{height:100%;min-height:400px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong)}.exam-test-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;margin:0 auto;padding:16px}.exam-test-footer--programming{width:100%}.exam-test-footer>div{display:grid;gap:3px}.exam-test-footer strong{color:var(--text);font-size:16px}.exam-test-footer small{color:var(--muted);font-weight:700}.exam-test-footer-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.exam-finish-backdrop{z-index:90;background:#2020296b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.choice-dialog--exam-finish{width:min(100%,680px)}.exam-finish-dialog{gap:18px;padding:22px}.exam-finish-heading{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start}.exam-finish-icon{display:grid;width:52px;height:52px;place-items:center;border:1px solid rgba(79,119,170,.22);border-radius:999px;background:var(--surface-high);color:var(--primary)}.exam-finish-dialog--focus-lost .exam-finish-icon{border-color:#c75f623d;background:#c75f621a;color:var(--danger)}.exam-finish-heading h2{font-size:26px;line-height:1.15;letter-spacing:0}.exam-finish-heading p,.exam-finish-extra{margin:8px 0 0;color:var(--muted);font-size:15px;line-height:1.45}.exam-finish-extra{margin:0;border:1px solid rgba(79,119,170,.14);border-radius:8px;background:var(--surface-high);padding:14px}.exam-finish-summary{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,3fr)}.exam-finish-summary span{min-width:0}.exam-finish-actions{gap:10px}.exam-programming-tabs+.exam-programming-code-shell{border-radius:0 0 8px 8px}.exam-answer-option{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);cursor:pointer;font-weight:800;padding:12px 14px}.exam-answer-option input{accent-color:var(--primary)}.exam-answer-field{display:grid;gap:8px;color:var(--text);font-weight:900}.exam-answer-field textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);font:inherit;padding:12px;resize:vertical}.exam-linked-task{justify-content:flex-start;border:1px solid rgba(79,119,170,.18);border-radius:8px;background:var(--surface-high);color:var(--primary);padding:12px 14px}.exam-linked-task span{display:grid;gap:3px}.exam-linked-task small{color:var(--muted)}.exam-meta-grid--student{grid-template-columns:repeat(3,minmax(0,1fr))}.exam-meta-grid--student .exam-meta-highlight{border-color:#4f77aa47;background:var(--surface-high);color:var(--text);font-weight:900}.exam-teacher-grade-row{display:grid;grid-template-columns:minmax(0,3fr) minmax(150px,1fr);gap:10px}.exam-teacher-contact{display:grid;gap:6px;border:1px solid rgba(79,119,170,.18);border-radius:8px;background:var(--surface-high);padding:12px}.exam-teacher-contact span{display:grid;gap:3px;color:var(--muted);font-size:18px;font-weight:400}.exam-teacher-contact strong{color:var(--primary);font-size:11px;text-transform:uppercase}.exam-teacher-contact a{color:var(--primary);font-size:11px;font-weight:400;text-decoration:none}.exam-grade-summary{display:grid;align-content:center;gap:8px;border:1px solid rgba(79,119,170,.18);border-radius:8px;background:var(--surface-high);padding:12px}.exam-grade-summary>strong{color:var(--primary);font-size:11px;text-transform:uppercase}.exam-grade-summary span{display:flex;align-items:baseline;gap:8px;color:var(--text);font-size:28px;font-weight:900;line-height:1}.exam-grade-summary small{color:var(--muted);font-size:13px;font-weight:800}@media(max-width:980px){.exam-manager,.exam-row,.exam-meta-grid,.exam-meta-grid--student,.exam-teacher-grade-row,.exam-option-row,.grade-row{grid-template-columns:1fr}.exam-row__actions{justify-content:flex-start}.exam-row{grid-template-areas:"summary" "actions" "meta"}.student-access-row{grid-template-columns:1fr}.student-access-actions{justify-content:flex-start}}@media(max-width:720px){.auth-mode-switch{grid-template-columns:1fr}}*{letter-spacing:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::-webkit-scrollbar-track{background:var(--background-deep)}::-webkit-scrollbar-thumb{background:var(--accent)}.button{border-radius:8px;box-shadow:none;color:var(--text)}.button--primary{border-color:transparent;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;box-shadow:0 12px 24px #4f77aa38}.button--success{background:var(--secondary);color:#fff}.button--ghost{border-color:var(--line);background:var(--surface);color:var(--primary)}.button--danger{border-color:#c75f6257;color:var(--danger)}.button--ghost:hover,.icon-button:hover{border-color:#4f77aa47;background:var(--surface-high);color:var(--primary)}.button--ghost.button--danger:hover{border-color:#c75f627a;background:#c75f6214;color:var(--danger)}.icon-button{border-color:transparent;border-radius:8px;background:transparent;color:var(--muted)}.icon-button--danger:hover{color:var(--danger)}.app-shell{min-height:100vh;background:var(--background)}.topbar{position:sticky;top:0;z-index:20;min-height:88px;height:auto;gap:24px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:14px clamp(18px,3vw,48px)}.brand{color:var(--text);font-size:27px}.brand svg{color:var(--primary)}.topbar-search{position:relative;display:flex;align-items:center;gap:12px;flex:1 1 420px;max-width:720px;min-height:52px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);padding:0 18px;box-shadow:0 14px 36px #4f77aa14}.topbar-search-suggestions{position:absolute;top:calc(100% + 8px);left:0;z-index:80;display:grid;width:min(720px,calc(100vw - 32px));overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 24px 64px #1e304e33}.topbar-search-suggestions button{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:58px;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:var(--text);padding:9px 14px;text-align:left}.topbar-search-suggestions button:hover,.topbar-search-suggestions button.is-active{background:var(--primary-soft)}.topbar-search-suggestions button>svg{color:var(--primary)}.topbar-search-suggestions button>span{display:grid;gap:3px;min-width:0}.topbar-search-suggestions strong,.topbar-search-suggestions small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-search-suggestions small{color:var(--muted);font-size:12px;font-weight:500}.topbar-search-suggestions .topbar-search-all{border-bottom:0;color:var(--primary);font-weight:800}.global-search-page{display:grid;gap:22px}.global-search-page-header{display:grid;gap:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);padding:clamp(24px,4vw,42px)}.global-search-page-header h1,.global-search-page-header p{margin:0}.global-search-page-header p{color:var(--muted)}.global-search-results{display:grid;gap:10px}.global-search-results>button{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:15px 18px;text-align:left;transition:border-color .16s ease,transform .16s ease,background-color .16s ease}.global-search-results>button:hover{border-color:var(--primary);background:var(--surface-high);transform:translateY(-1px)}.global-search-result-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:10px;background:var(--primary-soft);color:var(--primary)}.global-search-results button>span:nth-child(2){display:grid;gap:4px;min-width:0}.global-search-results small{color:var(--primary);font-size:11px;font-weight:900;text-transform:uppercase}.global-search-results strong{font-size:17px}.global-search-results em{overflow:hidden;color:var(--muted);font-size:13px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.topbar-search input{width:100%;min-width:120px;border:0;background:transparent;color:var(--text);outline:0}.topbar-search input::placeholder{color:#a9b6c7}.topnav{gap:8px}.topnav button{display:inline-flex;align-items:center;gap:7px;min-height:42px;border:0;border-bottom:3px solid transparent;color:#4f5f74;padding:0 10px;font-size:14px;font-weight:800;text-transform:none}.topnav button.is-active,.topnav button:hover{border-color:var(--primary);color:var(--primary)}.topbar-actions{gap:12px}.topbar-actions>.button--primary{flex:0 0 auto;white-space:nowrap}.topbar-create{flex:0 0 auto;min-height:48px;white-space:nowrap}.topbar--admin{min-height:78px}.topbar--admin .topbar-actions{margin-left:auto}.topbar--unified{min-height:86px}.topbar--unified .topbar-actions{margin-left:auto}.topbar--locked .brand,.topbar--locked .topbar-search{pointer-events:none;opacity:.62}.topbar--locked .topbar-actions>:not(.theme-toggle-button){pointer-events:none;opacity:.62}.theme-toggle-button{flex:0 0 42px;width:42px;height:42px;border-color:var(--line);background:var(--surface-high);color:var(--primary)}.theme-toggle-button:hover{border-color:color-mix(in srgb,var(--primary) 48%,var(--line));background:var(--primary-soft)}.theme-toggle-button:disabled{cursor:wait}.topbar-action-link{display:inline-flex;align-items:center;gap:8px;min-height:42px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);padding:0 12px;font-weight:800}.topbar-action-link:hover,.topbar-action-link.is-active{border-color:#4f77aa38;background:var(--surface-high);color:var(--primary)}.topbar-menu-anchor{position:relative;display:inline-flex;flex:0 0 auto}.app-launcher-panel{position:absolute;top:calc(100% + 12px);right:0;z-index:90;width:min(620px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 104px));overflow-y:auto;padding:14px;border:1px solid rgba(79,119,170,.18);border-radius:28px;background:var(--surface-higher);box-shadow:0 24px 54px #1f304c38}.app-launcher-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 10px 12px;color:var(--muted);font-size:13px;font-weight:800}.app-launcher-header strong{color:var(--primary);font-size:13px}.app-launcher-surface{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px;border:1px solid rgba(79,119,170,.1);border-radius:24px;background:color-mix(in srgb,var(--surface) 82%,transparent)}.app-launcher-surface--basic{margin:0 0 8px;border:0;border-radius:0;background:var(--surface-higher);padding:4px 12px 2px}.app-launcher-surface--applications{background:color-mix(in srgb,var(--surface) 86%,transparent)}.app-launcher-surface--student-basic{grid-template-columns:repeat(4,minmax(0,1fr))}.app-launcher-item{position:relative;display:grid;justify-items:center;align-content:start;gap:7px;min-height:118px;border:1px solid transparent;border-radius:18px;background:transparent;color:var(--text);padding:12px 8px 10px;text-align:center;cursor:pointer}.app-launcher-item:hover,.app-launcher-item.is-active{border-color:#4f77aa2e;background:var(--surface-high)}.app-launcher-icon{display:grid;width:52px;height:52px;place-items:center;border-radius:12px;background:var(--surface-higher);color:var(--primary)}.app-launcher-label{max-width:100%;color:var(--text);font-weight:800;line-height:1.18;overflow-wrap:anywhere}.app-launcher-item small{max-width:100%;color:var(--muted);font-size:12px;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.app-launcher-badge{position:absolute;top:7px;right:9px;display:grid;min-width:20px;height:20px;place-items:center;border:2px solid #ffffff;border-radius:999px;background:var(--danger);color:#fff;padding:0 5px;font-size:11px;font-weight:900;line-height:1;box-shadow:0 8px 18px #c05a6038}.app-launcher-item.is-disabled{background:var(--surface-high);color:#9aa6b8;cursor:default}.app-launcher-item.is-disabled:hover{border-color:transparent;background:var(--surface-high)}.app-launcher-item.is-disabled .app-launcher-icon{background:var(--surface-higher);color:#9aa6b8}.app-launcher-item.is-disabled .app-launcher-label,.app-launcher-item.is-disabled small{color:#9aa6b8}@media(min-width:721px)and (max-width:1180px)and (orientation:portrait){.app-launcher-panel{position:fixed;top:188px;right:clamp(18px,4vw,40px);left:auto;width:min(620px,calc(100vw - 36px));max-height:calc(100vh - 212px);max-height:calc(100dvh - 212px)}}@media(max-width:720px){.app-launcher-panel{position:fixed;top:132px;right:10px;left:10px;width:auto;max-height:calc(100vh - 148px);max-height:calc(100dvh - 148px);padding:10px;border-radius:20px}.app-launcher-surface{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px;border-radius:16px}.app-launcher-surface--basic{padding:2px 6px 4px}.app-launcher-surface--student-basic{grid-template-columns:repeat(2,minmax(0,1fr))}.app-launcher-header{padding:2px 6px 8px}.app-launcher-item{gap:5px;min-height:88px;border-radius:14px;padding:8px 6px}.app-launcher-icon{width:38px;height:38px;border-radius:10px}.app-launcher-icon svg{width:19px;height:19px}.app-launcher-label{font-size:14px}.app-launcher-item small{font-size:11px}.app-launcher-badge{top:4px;right:5px;min-width:18px;height:18px;border-width:1px;font-size:10px}}@media(max-width:420px){.app-launcher-panel{top:124px;right:8px;left:8px;max-height:calc(100vh - 136px);max-height:calc(100dvh - 136px);padding:8px}.app-launcher-surface{gap:5px;padding:6px}.app-launcher-item{min-height:78px;padding:7px 5px}.app-launcher-icon{width:32px;height:32px}.app-launcher-icon svg{width:17px;height:17px}.app-launcher-label{font-size:13px}.app-launcher-item small{font-size:10px}}.notification-center,.notification-trigger{position:relative}.notification-trigger.has-unread{border-color:#4f77aa38;background:var(--surface-high);color:var(--primary)}.notification-trigger.is-active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.notification-badge{position:absolute;top:-7px;right:-7px;display:grid;min-width:20px;height:20px;place-items:center;border:2px solid #ffffff;border-radius:999px;background:var(--danger);color:#fff;padding:0 5px;font-size:11px;font-weight:900;line-height:1}.notification-popover{position:absolute;top:calc(100% + 12px);right:0;z-index:40;width:min(760px,calc(100vw - 32px));border:1px solid rgba(79,119,170,.16);border-radius:8px;background:var(--surface);box-shadow:0 26px 70px #19212c33;padding:14px}.notification-header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:0 0 12px}.notification-header span{display:grid;gap:2px}.notification-header strong,.notification-detail h2,.notification-instruction strong{color:var(--text)}.notification-header small{color:var(--muted);font-size:12px;font-weight:800}.notification-header>div{display:flex;gap:6px}.notification-header .icon-button:disabled{cursor:default;opacity:.45}.notification-layout{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(300px,1.1fr);gap:14px;max-height:560px;padding-top:14px}.notification-list{display:grid;align-content:start;gap:8px;overflow:auto;padding-right:4px}.notification-layout--student .notification-list{max-height:462px}.notification-item{display:grid;gap:8px;width:100%;border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:8px;background:var(--surface);color:var(--text);padding:12px;text-align:left;transition:border-color .16s ease,background-color .16s ease,opacity .16s ease}.notification-item--warning{border-left-color:#d99537}.notification-item--success{border-left-color:var(--secondary)}.notification-item.is-selected{border-color:#4f77aa57;background:var(--surface-high)}.notification-item.is-read{opacity:.58}.notification-item.is-handled{border-left-color:var(--success)}.notification-item span{display:grid;gap:3px}.notification-item strong{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-size:14px}.notification-count-pill{display:inline-grid;min-width:24px;height:24px;place-items:center;border:1px solid rgba(217,149,55,.28);border-radius:999px;background:#d9953724;color:#9d671c;font-size:12px;font-style:normal;font-weight:900}.notification-item small,.notification-item time,.notification-detail time{color:var(--muted);font-size:12px;font-weight:800}.notification-detail{display:grid;align-content:start;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:18px}.notification-detail.is-read{background:var(--surface-strong)}.notification-status{display:inline-flex;width:fit-content;align-items:center;gap:7px;border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:6px 10px;font-size:12px;font-weight:900}.notification-status.is-handled{background:var(--secondary-soft);color:var(--success)}.notification-detail h2{margin:0;font-size:22px;line-height:1.2}.notification-detail p{margin:0;color:var(--muted);line-height:1.5}.notification-instruction{display:grid;gap:4px;border-left:3px solid var(--primary);border-radius:8px;background:var(--surface-high);color:var(--muted);padding:12px;line-height:1.45}.notification-detail-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:4px}.notification-detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem}.notification-screen-message{position:fixed;top:104px;right:clamp(16px,3vw,44px);z-index:60;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;width:min(520px,calc(100vw - 32px));border:1px solid color-mix(in srgb,var(--success) 55%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--surface) 96%,var(--success) 4%);color:var(--text);padding:14px 16px;box-shadow:var(--shadow-elevated);animation:notification-screen-message-in .18s ease-out}.notification-screen-message>svg{color:var(--success)}.notification-screen-message span{font-weight:850;line-height:1.4}.notification-screen-message button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}.notification-screen-message button:hover{background:var(--surface-higher);color:var(--text)}@keyframes notification-screen-message-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notification-empty{display:grid;justify-items:center;gap:8px;padding:34px 18px;color:var(--muted);text-align:center}.notification-empty svg{color:var(--primary)}.notification-empty strong{color:var(--text)}.notifications-page{display:grid;align-content:start;gap:24px;width:min(100%,1320px);margin:0 auto}.notifications-page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.notifications-page-heading h1{display:flex;align-items:center;gap:10px;margin:4px 0 8px;font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.notifications-page-heading h1 svg{color:var(--primary)}.notifications-page-heading p{margin:0;color:var(--muted);font-size:var(--page-subtitle-size);line-height:1.35}.notifications-page-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:9px}.notification-compose{display:grid;width:min(760px,calc(100% - 32px));max-height:min(90vh,760px);overflow-y:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:28px}.notification-compose-heading{display:flex;grid-column:1 / -1;align-items:flex-start;justify-content:space-between;gap:20px}.notification-compose-heading h2{margin:5px 0 0}.notification-compose-trigger{width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface-high);color:var(--primary)}.notification-compose-trigger:hover{border-color:#4f77aa59;background:var(--primary-soft);color:var(--primary)}.notification-compose .section-heading,.notification-compose .is-wide{grid-column:1 / -1}.notification-compose input,.notification-compose select,.notification-compose textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);padding:11px 12px}.notification-compose .form-actions{margin:0}.notification-compose .choice-dialog-actions{gap:20px}.notifications-page-panel{display:grid;gap:0;padding:20px}.notification-layout--page{min-height:480px;max-height:none;padding-top:18px}.notification-layout--page .notification-list{max-height:none;overflow:visible}.notification-layout--page .notification-detail{align-self:start;position:sticky;top:20px;min-height:260px}.user-pill{min-height:48px;border-left:0;border:1px solid transparent;border-radius:8px;background:var(--surface-high);padding:6px 12px 6px 6px}.user-pill:hover,.user-pill.is-active{border-color:#4f77aa38;background:var(--surface-higher)}.user-pill strong{color:var(--text)}.user-pill small{color:var(--muted);text-transform:none}.avatar{border-color:#4f77aa38;background:var(--surface-higher);color:var(--primary)}.user-photo{display:inline-grid;place-items:center;flex:0 0 auto;overflow:hidden;border:1px solid rgba(79,119,170,.22);border-radius:999px;background:var(--surface-higher);color:var(--primary);font-weight:900;line-height:1}.user-photo img{display:block;width:100%;height:100%;object-fit:cover}.user-photo__placeholder{display:grid;place-items:center;width:100%;height:100%}.user-photo--small{width:36px;height:36px;font-size:12px}.user-photo--medium{width:46px;height:46px;font-size:13px}.user-photo--settings{width:72px;height:72px;border-width:2px;font-size:11px;text-transform:none}.user-photo--hero{width:clamp(132px,12vw,184px);height:clamp(132px,12vw,184px);border:5px solid #ffffff;background:var(--surface);box-shadow:0 18px 42px #4f77aa33;color:var(--muted);font-size:13px;text-transform:none}.workspace-shell{display:flex;flex-direction:column;min-height:calc(100vh - 88px)}.content{flex:1 0 auto;width:100%;min-width:0;padding:34px clamp(18px,3.8vw,56px) 60px}.app-footer{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:22px;border-top:1px solid var(--line);background:var(--surface);color:var(--muted);padding:38px clamp(18px,3.8vw,56px) 34px;text-align:center}.app-footer-brand,.app-footer-meta{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px 12px}.app-footer-brand .brand-logo{width:min(270px,70vw);height:auto}.app-footer-meta>*+*:before{margin-right:12px;color:var(--line-strong);content:"·"}.app-footer-meta a{color:var(--muted);font-weight:700;text-decoration:none}.app-footer-meta a:hover{color:var(--primary)}.app-footer-status{display:inline-flex;align-items:center}.app-footer-status i{width:8px;height:8px;margin-right:7px;border-radius:999px;background:var(--success, #3aa76d)}.help-page{display:grid;gap:24px;width:min(1180px,100%);margin:0 auto}.public-help-shell{min-height:100vh;padding:clamp(18px,4vw,48px);background:var(--background)}.help-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:230px;padding:clamp(28px,5vw,58px);border:1px solid color-mix(in srgb,var(--primary) 20%,var(--line));border-radius:26px;background:linear-gradient(135deg,var(--surface) 0%,color-mix(in srgb,var(--primary) 11%,var(--surface)) 100%);box-shadow:var(--shadow)}.help-hero:after{position:absolute;right:-90px;bottom:-130px;width:330px;height:330px;border-radius:50%;background:color-mix(in srgb,var(--primary) 10%,transparent);content:""}.help-hero-copy{position:relative;z-index:1;max-width:760px}.help-hero h1{margin:12px 0 10px;font-size:clamp(36px,5vw,62px);letter-spacing:-.045em;line-height:.98}.help-hero p{max-width:690px;margin:0;color:var(--muted);font-size:clamp(17px,2vw,21px);line-height:1.55}.help-hero-mark{position:relative;z-index:1;display:grid;flex:0 0 110px;width:110px;height:110px;place-items:center;border-radius:30px;color:#fff;background:var(--primary);box-shadow:0 22px 50px color-mix(in srgb,var(--primary) 34%,transparent);transform:rotate(4deg)}.help-role-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:8px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.help-role-tabs:has(>button:only-child){grid-template-columns:1fr}.help-role-tabs button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;border:0;border-radius:13px;color:var(--muted);background:transparent;font:inherit;font-weight:850;cursor:pointer;transition:.18s ease}.help-role-tabs button:hover{color:var(--text);background:var(--surface-soft)}.help-role-tabs button.is-active{color:#fff;background:var(--primary);box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 24%,transparent)}.help-section-intro{display:flex;align-items:center;gap:18px;padding:12px 4px}.help-section-icon{display:grid;flex:0 0 58px;width:58px;height:58px;place-items:center;border-radius:17px;color:var(--primary);background:var(--primary-soft)}.help-section-intro span{color:var(--primary);font-size:13px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.help-section-intro h2{max-width:850px;margin:4px 0 0;font-size:clamp(21px,3vw,30px);line-height:1.22}.help-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.help-steps article{position:relative;display:grid;grid-template-rows:auto 1fr auto;min-height:245px;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 12px 34px color-mix(in srgb,var(--text) 6%,transparent)}.help-step-number{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;color:var(--primary);background:var(--primary-soft);font-weight:950}.help-steps h3{margin:24px 0 8px;font-size:19px}.help-steps p{margin:0;color:var(--muted);line-height:1.55}.help-steps article>svg{justify-self:end;margin-top:18px;color:var(--success)}.help-import-note{display:flex;align-items:center;gap:16px;padding:20px 22px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));border-radius:18px;color:var(--text);background:var(--primary-soft)}.help-import-note>svg{flex:0 0 auto;color:var(--primary)}.help-import-note div{display:grid;min-width:0;gap:6px}.help-import-note code{overflow-x:auto;color:var(--muted);font-size:13px;white-space:nowrap}.help-answers{padding:clamp(22px,4vw,38px);border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:var(--shadow)}.help-answers-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:24px}.help-answers-heading h2{margin:5px 0 0;font-size:clamp(25px,3vw,36px)}.help-search{display:flex;align-items:center;gap:10px;width:min(380px,100%);min-height:48px;padding:0 15px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.help-search svg{flex:0 0 auto;color:var(--muted)}.help-search input{width:100%;border:0;outline:0;color:var(--text);background:transparent;font:inherit}.help-accordion{display:grid;gap:10px}.help-accordion article{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--surface-soft)}.help-accordion article.is-open{border-color:color-mix(in srgb,var(--primary) 35%,var(--line));background:color-mix(in srgb,var(--primary) 5%,var(--surface))}.help-accordion article button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:58px;padding:14px 18px;border:0;color:var(--text);background:transparent;font:inherit;font-weight:850;text-align:left;cursor:pointer}.help-accordion article button svg{flex:0 0 auto;transition:transform .18s ease}.help-accordion article.is-open button svg{color:var(--primary);transform:rotate(180deg)}.help-accordion article p{margin:0;padding:0 52px 18px 18px;color:var(--muted);line-height:1.65}.help-empty{display:grid;justify-items:center;gap:8px;padding:36px;color:var(--muted);text-align:center}.help-empty strong{color:var(--text)}.help-cta{display:flex;align-items:center;gap:16px;padding:22px 26px;border-radius:20px;color:#fff;background:linear-gradient(120deg,var(--primary),color-mix(in srgb,var(--primary) 68%,#111827))}.help-cta>div{display:grid;flex:1;gap:3px}.help-cta span{color:#ffffffc2}.help-cta .button{color:var(--primary);background:#fff}.privacy-page{display:grid;gap:22px;width:min(1120px,100%);margin:0 auto}.privacy-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:clamp(28px,5vw,52px);border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));border-radius:25px;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--primary) 9%,var(--surface)));box-shadow:var(--shadow)}.privacy-hero>div:first-child{max-width:760px}.privacy-hero h1{margin:11px 0 10px;font-size:clamp(35px,5vw,58px);letter-spacing:-.04em;line-height:1}.privacy-hero p{margin:0;color:var(--muted);font-size:clamp(16px,2vw,20px);line-height:1.55}.privacy-hero-icon{display:grid;flex:0 0 94px;width:94px;height:94px;place-items:center;border-radius:27px;color:#fff;background:var(--primary);box-shadow:0 18px 42px color-mix(in srgb,var(--primary) 28%,transparent)}.privacy-summary{padding:20px 24px;border-left:4px solid var(--primary);border-radius:10px;background:var(--primary-soft)}.privacy-summary strong{font-size:18px}.privacy-summary p{margin:6px 0 0;color:var(--muted);line-height:1.6}.privacy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.privacy-grid article{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:15px;padding:23px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 10px 30px color-mix(in srgb,var(--text) 5%,transparent)}.privacy-grid article>span{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;color:var(--primary);background:var(--primary-soft)}.privacy-grid h2{margin:2px 0 8px;font-size:19px}.privacy-grid p{margin:0;color:var(--muted);line-height:1.65}.privacy-contact{display:flex;align-items:center;gap:15px;padding:21px 24px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.privacy-contact>svg{flex:0 0 auto;color:var(--primary)}.privacy-contact>div{display:grid;gap:4px}.privacy-contact span{color:var(--muted)}.privacy-contact a{color:var(--primary);font-weight:800}.privacy-back{justify-self:start}@media(max-width:760px){.privacy-hero-icon{display:none}.privacy-grid{grid-template-columns:1fr}.privacy-contact{align-items:flex-start}}.starter-test-page{display:grid;gap:20px;width:min(980px,100%);margin:0 auto}.starter-test-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow)}.starter-test-header h1{margin:9px 0 8px;font-size:clamp(29px,4vw,44px)}.starter-test-header p{margin:0;color:var(--muted);line-height:1.55}.starter-test-header>strong{display:flex;align-items:center;gap:8px;flex:0 0 auto;padding:13px 16px;border-radius:13px;color:var(--primary);background:var(--primary-soft);font-size:21px;font-variant-numeric:tabular-nums}.starter-test-header>strong.is-warning{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.starter-test-questions{display:grid;gap:14px}.starter-test-questions>article{display:grid;gap:18px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.starter-test-questions header{display:flex;align-items:flex-start;gap:13px}.starter-test-questions header>span{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border-radius:10px;color:var(--primary);background:var(--primary-soft);font-weight:950}.starter-test-questions header small{color:var(--primary);font-weight:900;text-transform:uppercase}.starter-test-questions h2{margin:3px 0 0;font-size:19px;line-height:1.35}.starter-test-questions textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);color:var(--text);padding:14px;font:inherit;line-height:1.55}.starter-test-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.starter-test-options label{display:flex;align-items:center;gap:10px;min-height:48px;border:1px solid var(--line);border-radius:11px;padding:10px 13px;cursor:pointer}.starter-test-options label:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.starter-code{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#111827}.starter-code>span{display:flex;align-items:center;gap:7px;padding:9px 13px;color:#cbd5e1;font-size:12px;font-weight:900}.starter-code textarea{resize:vertical;border:0;border-radius:0;background:#0b1020;color:#e5e7eb;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.starter-test-submit{justify-self:end}.starter-test-result{display:grid;justify-items:center;gap:16px;padding:clamp(30px,6vw,64px);border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:var(--shadow);text-align:center}.starter-test-result>svg{color:var(--success)}.starter-test-result h1{margin:0;font-size:clamp(29px,4vw,43px)}.starter-test-result>p{max-width:680px;margin:0;color:var(--muted);font-size:18px;line-height:1.6}.starter-test-privacy{display:flex;align-items:center;gap:9px;padding:13px 16px;border-radius:12px;color:var(--primary);background:var(--primary-soft);font-weight:850}.starter-test-solutions{display:grid;gap:9px;width:min(720px,100%);text-align:left}.starter-test-solutions article{padding:14px;border:1px solid var(--line);border-radius:12px}.starter-test-solutions pre{overflow-x:auto;margin:9px 0 0;color:var(--muted);white-space:pre-wrap}@media(max-width:680px){.starter-test-header{align-items:flex-start;flex-direction:column;padding:22px}.starter-test-options{grid-template-columns:1fr}.starter-test-questions>article{padding:18px}}@media(max-width:980px){.help-steps{grid-template-columns:repeat(2,1fr)}.help-steps article{min-height:210px}}@media(max-width:680px){.help-page{gap:18px}.help-hero{min-height:auto;padding:28px 22px;border-radius:20px}.help-hero-mark{display:none}.help-role-tabs{grid-template-columns:1fr}.help-role-tabs button{justify-content:flex-start;padding:0 18px}.help-steps{grid-template-columns:1fr}.help-steps article{min-height:0}.help-answers-heading{align-items:stretch;flex-direction:column}.help-search{width:100%}.help-cta{align-items:flex-start;flex-wrap:wrap}.help-cta .button{width:100%}}@media(max-width:820px){.app-footer{padding-block:30px}}.dashboard-page,.creator-page,.review-page{align-content:start;max-width:1500px;gap:28px}.teaching-grade-toolbar{max-width:1500px;margin-inline:auto;margin-bottom:28px}.teaching-grade-toolbar.library-toolbar{align-items:center;flex-wrap:wrap;gap:18px}.teaching-grade-toolbar>label{position:relative;display:grid;gap:8px;width:240px;max-width:100%;font-size:14px}.teaching-grade-toolbar>label:after{content:"";position:absolute;right:16px;bottom:19px;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);pointer-events:none}.teaching-grade-toolbar select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-height:44px;padding:10px 42px 10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-size:16px;font-weight:400;line-height:1.4;cursor:pointer}.teaching-grade-toolbar select:hover{border-color:var(--primary)}@media(max-width:640px){.teaching-grade-toolbar{margin-bottom:20px}.teaching-grade-toolbar>label,.teaching-grade-toolbar>.button{width:100%}}.hero-panel,.info-panel,.task-card,.metric-card,.assignment-panel,.editor-stage,.preview-panel,.python-graphics-panel,.python-runtime-panel,.sql-inspector-panel,.pseudo-diagram-panel,.python-activity-panel,.review-form,.review-summary,.task-form,.state-panel,.loading-skeleton,.data-foundation-panel,.future-roadmap-panel{border:1px solid rgba(79,119,170,.14);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-card)}.hero-panel{min-height:160px;padding:30px}.hero-panel h1{max-width:820px;color:var(--text);font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.hero-panel p,.state-panel p,.empty-state p,.task-card p,.assignment-panel p,.exam-row p,.future-roadmap-intro p,.future-roadmap-card p,.future-roadmap-card small{color:var(--muted)}.hero-panel p{font-size:var(--page-subtitle-size);line-height:1.35}.hero-photo-panel{display:grid;place-items:center;align-self:stretch;flex:0 0 min(34vw,430px);min-height:170px;border-left:1px solid var(--line);padding-left:clamp(24px,4vw,72px)}.hero-photo-panel--student{place-items:center end;flex-basis:min(28vw,360px);min-height:128px}.hero-photo-panel--student .user-photo--hero{width:clamp(92px,8vw,124px);height:clamp(92px,8vw,124px);border-width:4px}.student-main-info{display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,5vw,72px);min-height:112px}.student-main-info-identity{display:flex;align-items:center;gap:clamp(14px,2vw,22px);min-width:0}.student-main-info-identity h1{margin:0;color:var(--text);font-size:clamp(28.5px,3.6vw,43.5px);line-height:1.05;letter-spacing:0;white-space:nowrap}.student-main-info .user-photo--hero{width:clamp(82px,7vw,108px);height:clamp(82px,7vw,108px);border:1px solid var(--line);background:var(--surface);box-shadow:0 16px 34px #4f77aa1f}.account-welcome-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(520px,.68fr);align-items:center}.account-welcome-panel .student-activity-summary--main{justify-self:end;width:min(100%,640px)}.account-welcome-actions{display:flex;flex-wrap:wrap;grid-column:2;justify-content:flex-end;gap:10px;margin-top:-6px}.student-activity-summary{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));align-items:start;gap:10px;max-width:900px;margin-top:20px}.student-activity-summary--main{align-self:start;flex:0 1 620px;margin-top:0}.student-activity-summary span{align-self:start;display:grid;gap:4px;min-height:58px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);padding:10px 12px;font-size:13px;font-weight:800;line-height:1.25}.student-activity-summary strong{color:var(--primary);font-size:11px;font-weight:900;letter-spacing:.03em;text-transform:uppercase}.hero-panel--compact,.hero-panel--teacher-compact{min-height:0;padding:22px 28px}.hero-panel--compact h1,.hero-panel--teacher-compact h1{font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.hero-panel--compact p,.hero-panel--teacher-compact p{max-width:760px;margin-top:8px;font-size:var(--page-subtitle-size);line-height:1.35}.hero-class-switch{display:grid;flex:0 0 220px;gap:6px;align-self:center;color:var(--muted);font-size:12px;font-weight:900}.hero-class-switch select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);font:inherit;font-size:15px;font-weight:900;padding:0 34px 0 12px}.section-kicker{color:var(--primary);font-size:13px;text-transform:none}.admin-cell-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:14px}.admin-cell{display:grid;gap:12px;min-height:138px;border:1px solid rgba(79,119,170,.12);border-radius:8px;background:var(--surface);color:var(--text);padding:18px;text-align:left;box-shadow:var(--shadow-card);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.admin-cell:hover,.admin-cell.is-active{border-color:#4f77aa57;box-shadow:0 18px 40px #4f77aa29;transform:translateY(-2px)}.admin-cell.is-active{background:linear-gradient(180deg,var(--surface),var(--surface-high))}.admin-cell-icon{display:grid;width:46px;height:46px;place-items:center;border-radius:8px;background:var(--surface-higher);color:var(--primary)}.admin-cell-icon--combo{grid-template-columns:repeat(2,1fr);gap:2px;padding:8px}.admin-cell strong,.admin-cell small{display:block}.admin-cell strong{color:var(--text);font-size:16px;line-height:1.25}.admin-cell small{margin-top:4px;color:var(--muted);font-size:12px;font-weight:800}.choice-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;background:#20202957;padding:20px}.app-dialog-backdrop--workspace{inset:auto;z-index:20;border-radius:14px;background:color-mix(in srgb,var(--background) 76%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);overflow:hidden}.app-dialog-backdrop--workspace .app-dialog{width:min(460px,calc(100% - 32px));box-shadow:0 20px 55px #14253938}.choice-dialog{display:grid;gap:18px;width:min(100%,560px);border:1px solid rgba(79,119,170,.18);border-radius:8px;background:var(--surface);box-shadow:0 24px 70px #2020292e;padding:22px}.choice-dialog--classes{width:min(100%,720px)}.choice-dialog--code-editor{width:min(100%,860px);max-height:min(90vh,860px);overflow:auto}.choice-dialog--student-exams{width:min(100%,900px)}.choice-dialog--promotion{width:min(100%,820px);max-height:min(90vh,820px);overflow:auto}.choice-dialog--grade-closure{width:min(100%,1040px);max-height:min(94vh,920px);overflow:auto}.grade-closure-table .gradebook-head,.grade-closure-table .gradebook-row{grid-template-columns:minmax(190px,.8fr) minmax(220px,.8fr) minmax(280px,1.2fr)}.grade-closure-fields,.grade-closure-fields label{display:grid;gap:6px;min-width:0}.grade-closure-fields{gap:10px}.grade-closure-fields label{color:var(--muted);font-size:12px;font-weight:800}.grade-closure-fields input{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);padding:9px 10px}.grade-closure-fields label:first-child input{max-width:90px;font-size:18px;font-weight:900;text-align:center}.closure-result{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:14px;min-width:0}.closure-result-grade{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--primary);color:#fff;font-size:21px;line-height:1}.closure-result-note{display:block;min-width:0;color:var(--muted);font-size:14px;line-height:1.4}.closure-result-note.has-justification{border-left:3px solid var(--primary);color:var(--text);padding:7px 0 7px 12px}.closure-dialog-actions{flex-wrap:wrap;gap:12px}.closure-dialog-actions .button{min-height:50px;gap:10px;padding:12px 18px;font-size:16px;font-weight:850}.closure-dialog-actions .button svg{flex:0 0 auto;width:28px;height:28px;stroke-width:2.25}.gradebook-actions .button svg,.choice-dialog--grade-closure .choice-dialog-actions .button svg{flex:0 0 auto;width:28px;height:28px;stroke-width:2.25}.choice-dialog h2{margin:0;color:var(--text);font-size:24px}.promotion-dialog-header,.promotion-student-controls,.promotion-dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.promotion-student-controls{flex-wrap:wrap}.promotion-count{display:inline-grid;place-items:center;min-width:46px;min-height:34px;border:1px solid var(--line);border-radius:999px;background:var(--surface-high);color:var(--primary);font-weight:800}.promotion-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:12px}.promotion-route span{display:grid;gap:3px;min-width:0}.promotion-route strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.promotion-route small,.promotion-note,.promotion-student-row small{color:var(--muted);font-size:12px;font-weight:400}.promotion-form{display:grid;gap:14px}.promotion-form label:not(.promotion-option):not(.promotion-student-row),.promotion-field-grid label{display:grid;gap:6px}.promotion-form label>span,.promotion-student-controls strong{color:var(--muted);font-size:12px;font-weight:800}.promotion-summary{color:var(--muted);font-size:12px;font-weight:800}.promotion-form input[type=text],.promotion-form input:not([type]),.promotion-form select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:0 10px}.promotion-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.promotion-student-list{display:grid;gap:8px;max-height:min(42vh,320px);overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:8px}.promotion-student-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) minmax(150px,190px);align-items:center;gap:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface);padding:9px 10px}.promotion-student-mode{min-width:150px}.promotion-student-row span{display:grid;gap:2px;min-width:0}.promotion-student-row strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.promotion-option{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:700}.promotion-option--confirm{border:1px solid rgba(79,119,170,.24);border-radius:8px;background:var(--surface-high);padding:10px 12px}.promotion-note{margin:0;border-left:3px solid var(--primary);border-radius:8px;background:var(--surface-high);padding:10px 12px}.choice-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.choice-card-grid--classes{max-height:min(62vh,520px);overflow:auto;padding-right:2px}.choice-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:94px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:14px;text-align:left}.choice-card:hover{border-color:#4f77aa47;background:var(--surface-strong)}.choice-card:disabled{cursor:not-allowed;opacity:.56}.choice-card:disabled:hover{border-color:var(--line);background:var(--surface)}.choice-card strong,.choice-card small{display:block}.choice-card small{margin-top:4px;color:var(--muted);font-size:12px;font-weight:800;line-height:1.35}.choice-card--editor small{font-weight:400}.choice-card--editor .admin-cell-icon{background:#4f77aa;color:#fff}.choice-card .choice-card-note{color:var(--primary)}.choice-dialog-actions{display:flex;justify-content:flex-end}.editor-close-dialog{width:min(100%,720px)}.editor-close-dialog-actions{flex-wrap:nowrap;gap:12px}.editor-close-dialog-actions .button{flex:0 1 auto;white-space:nowrap}@media(max-width:600px){.editor-close-dialog-actions{align-items:stretch;flex-direction:column}.editor-close-dialog-actions .button{justify-content:center;width:100%}}.app-dialog{width:min(560px,calc(100vw - 28px));gap:18px}.app-dialog-header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px}.app-dialog-icon{display:inline-grid;width:46px;height:46px;place-items:center;border:1px solid rgba(79,119,170,.22);border-radius:999px;background:#4f77aa1a;color:var(--primary)}.app-dialog--danger .app-dialog-icon{border-color:#c75f6247;background:#c75f621a;color:var(--danger)}.app-dialog-message{margin:0;color:var(--text);font-size:15px;line-height:1.55;white-space:pre-line}.app-dialog-field{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:900}.app-dialog-actions{gap:10px}.student-exam-history-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.student-exam-history-header>div{display:grid;gap:8px}.student-exam-history-count{display:inline-flex;align-items:baseline;flex:0 0 auto;gap:7px;border:1px solid var(--line);border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:9px 14px}.student-exam-history-count strong{font-size:14px;line-height:1}.student-exam-history-count small{font-size:14px;font-weight:800;line-height:1}.student-exam-history-summary{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:10px}.student-exam-history-summary span{display:grid;gap:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:12px}.student-exam-history-summary strong{color:var(--text);font-size:24px;line-height:1}.student-exam-history-summary small{color:var(--muted);font-size:12px;font-weight:400}.student-exam-history-summary.exam-finish-summary{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,3fr)}.student-exam-history-summary.exam-finish-summary span{min-width:0}.student-exam-history-list{display:grid;gap:8px;max-height:min(56vh,520px);overflow:auto;padding-right:4px}.student-exam-history-row{display:grid;grid-template-columns:minmax(220px,1fr) auto 86px 96px auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px}.student-exam-history-title,.student-exam-history-grade,.student-exam-history-points{display:grid;gap:3px;min-width:0}.student-exam-history-title strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.student-exam-history-title small,.student-exam-history-grade small,.student-exam-history-points small{color:var(--muted);font-size:12px;font-weight:400}.student-exam-history-grade,.student-exam-history-points{justify-items:end}.student-exam-history-grade strong,.student-exam-history-points strong{color:var(--primary);font-size:20px;line-height:1}.gradebook-panel{display:grid;gap:20px}.gradebook-heading-title{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.gradebook-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px}.manual-grade-form{display:grid;gap:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:16px}.manual-grade-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.manual-grade-form label,.manual-grade-student-row{display:grid;gap:7px;color:var(--text);font-weight:900}.manual-grade-form input,.manual-grade-form select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-weight:800;padding:0 12px}.manual-grade-bulk{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.manual-grade-student-list{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.manual-grade-student-head,.manual-grade-student-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;align-items:center;gap:14px;padding:10px 12px}.manual-grade-student-head{background:var(--surface);color:var(--primary);font-size:12px;font-weight:900;text-transform:uppercase}.manual-grade-student-row{border-top:1px solid var(--line)}.manual-grade-student-row span{display:grid;gap:3px;min-width:0}.manual-grade-student-row small{color:var(--muted);font-size:12px;font-weight:400}.manual-grade-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px}.manual-grade-actions>span{margin-right:auto;color:var(--muted);font-size:13px;font-weight:800}.class-success-list{display:grid;gap:18px}.class-success-panel{display:grid;gap:16px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.class-success-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.class-success-header h3{display:flex;align-items:center;gap:8px;margin:4px 0 0;color:var(--text);font-size:20px}.class-success-header h3 svg{color:var(--primary)}.class-success-controls{display:flex;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap;gap:10px}.class-success-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:900}.class-success-controls select{min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);font:inherit;font-weight:800;padding:0 34px 0 10px}.class-success-view-tabs{display:flex;align-items:center;gap:4px;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:3px}.class-success-view-tabs button{min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:12px;font-weight:900;line-height:1.2;padding:0 10px}.class-success-view-tabs button:hover,.class-success-view-tabs button.is-active{background:var(--primary-soft);color:var(--primary)}.class-success-toggle{display:flex!important;min-height:38px;align-items:center;gap:8px!important;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text)!important;padding:0 12px}.class-success-toggle input{accent-color:var(--primary)}.class-success-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.class-success-summary span{display:grid;gap:3px;min-width:0;border-left:3px solid var(--primary);padding:4px 0 4px 10px}.class-success-summary strong{color:var(--text);font-size:22px;line-height:1}.class-success-summary small{color:var(--muted);font-size:12px;font-weight:900}.class-success-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(190px,.7fr);align-items:stretch;gap:16px}.class-success-body--wide{grid-template-columns:1fr}.class-success-chart-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong)}.class-success-chart{display:block;width:100%;height:auto}.class-success-grid-line{stroke:var(--line);stroke-width:1}.class-success-axis-line{stroke:#4f77aa61;stroke-width:1.5}.class-success-axis-label,.class-success-bar-value,.class-success-year-label{fill:var(--muted);font-size:12px;font-weight:900}.class-success-bar-value{fill:var(--text)}.class-success-year-label{fill:var(--primary)}.class-success-bar{fill:#4f77aa6b}.class-success-bar--selected,.class-student-average-bar{fill:var(--primary)}.class-student-average-bar--empty{fill:var(--surface-higher)}.class-student-average-label{fill:var(--text);font-size:11px}.class-student-average-count{fill:var(--muted);font-size:10px;font-weight:400}.class-success-distribution{display:grid;align-content:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px}.class-success-distribution--empty{place-items:center;min-height:100%}.class-success-distribution--empty small{color:var(--muted);font-size:12px;font-weight:900;text-align:center}.class-success-grade-row{display:grid;grid-template-columns:24px minmax(0,1fr) 34px;align-items:center;gap:8px}.class-success-grade-row strong{color:var(--text);font-size:14px}.class-success-grade-row small{color:var(--muted);font-size:12px;font-weight:900;text-align:right}.class-success-grade-bar{display:block;height:9px;overflow:hidden;border-radius:999px;background:var(--surface-higher)}.class-success-grade-bar span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.gradebook-class-list{display:grid;gap:18px}.gradebook-class{display:grid;gap:12px}.gradebook-class-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.gradebook-class-heading h3{margin:0;color:var(--text);font-size:20px}.gradebook-class-heading span{color:var(--muted);font-size:12px;font-weight:900}.gradebook-batch-actions{display:grid;gap:8px}.gradebook-batch-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid rgba(220,150,40,.24);border-radius:8px;background:color-mix(in srgb,var(--warning) 12%,var(--surface));padding:10px 12px}.gradebook-batch-row>span{display:grid;gap:2px;min-width:0}.gradebook-batch-row strong{overflow:hidden;color:var(--text);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.gradebook-batch-row small{color:var(--muted);font-size:12px;font-weight:700}.gradebook-table{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.gradebook-head,.gradebook-row{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(260px,1.4fr) minmax(120px,.35fr);align-items:center;gap:14px;padding:12px 14px}.gradebook-head{background:var(--surface-strong);color:var(--primary);font-size:12px;font-weight:900;text-transform:uppercase}.gradebook-row{border-top:1px solid var(--line)}.gradebook-student{display:flex;align-items:center;min-width:0;gap:10px}.gradebook-student>span,.gradebook-average{display:grid;gap:3px;min-width:0}.gradebook-student strong,.gradebook-average strong{color:var(--text)}.gradebook-student small,.gradebook-grades>small,.gradebook-average small{color:var(--muted);font-size:12px;font-weight:400}.gradebook-grades{display:flex;flex-wrap:wrap;gap:8px}.grade-chip{display:inline-grid;min-width:52px;min-height:42px;place-items:center;border:1px solid rgba(79,119,170,.2);border-radius:8px;background:var(--surface-high);color:var(--primary);padding:5px 8px}.grade-chip:hover{border-color:#4f77aa66;background:var(--primary-soft)}body .grade-chip--excluded,body .grade-chip--excluded:hover{background:#f2f3f5;border-color:#d9dde3;color:#69717e}body .grade-chip--excluded strong,body .grade-chip--excluded small{color:inherit}:root[data-theme=dark] body .grade-chip--excluded{background:#292e36;border-color:#454c57;color:#b0b7c2}.grade-chip--manual{background:color-mix(in srgb,var(--warning) 12%,var(--surface));border-color:#dc962847}.grade-chip--editable{position:relative;grid-template-columns:1fr 22px;column-gap:6px;justify-items:center;padding-right:4px}.grade-chip--editable strong,.grade-chip--editable small{grid-column:1}.grade-chip-delete{display:grid;grid-column:2;grid-row:1 / span 2;width:22px;height:22px;place-items:center;border:0;border-radius:6px;background:transparent;color:#a13d2d;cursor:pointer}.grade-chip-delete:hover,.grade-chip-delete:focus-visible{background:#a13d2d1a}.grade-chip-delete:disabled{cursor:not-allowed;opacity:.45}.grade-chip strong{color:var(--text);font-size:18px;line-height:1}.grade-chip small{color:var(--primary);font-size:11px;font-weight:400;line-height:1}.metrics-row{gap:18px}.metrics-row--wide{grid-template-columns:repeat(4,minmax(0,1fr))}.metrics-row--with-editor{grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:1300px){.metrics-row--with-editor{grid-template-columns:repeat(4,minmax(0,1fr)) repeat(2,minmax(220px,.95fr))}}.dashboard-columns--student{grid-template-columns:minmax(0,1fr)}.student-dashboard-page{align-content:start;grid-auto-rows:max-content}.student-dashboard-page>.student-main-info,.student-dashboard-page>.dashboard-columns--student{align-self:start;min-height:0}.metric-card{min-height:132px;padding:22px}.metric-card--action{font:inherit;cursor:pointer;text-align:left;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease}.metric-card--action:hover{border-color:color-mix(in srgb,var(--primary) 42%,var(--line));transform:translateY(-1px)}.metric-card--action:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.metric-card--editor{display:grid;align-content:center;justify-items:center;gap:8px;background:var(--surface-higher);text-align:center}.metric-card--editor .metric-card-icon{color:var(--primary)}.metric-card.metric-card--editor>span{color:var(--text);font-size:15px;font-weight:900;opacity:1}.metric-card--editor small{color:var(--muted)}.metric-card span{color:var(--muted);text-transform:none}.metric-card strong{color:var(--text)}.metric-card small,.metric-card--success small,.metric-card--success span,.metric-card--accent small,.metric-card--accent span{color:var(--primary)}.data-foundation-panel{background:var(--surface)}.data-foundation-panel h2,.section-heading h2,.info-panel h2,.future-roadmap-intro h2,.assignment-panel h1,.runtime-heading h2,.exam-row h3,.task-card h3{color:var(--text)}.data-foundation-item,.future-roadmap-summary span,.future-roadmap-card,.student-progress-grid>span,.student-progress-grid>button,.assignment-timeline,.check-panel,.check-help,.change-summary-box,.objective-box,.save-status,.save-history,.sample-output,.test-row,.run-history,.exam-meta-grid span,.creator-hero-status,.local-draft-box{border-color:var(--line);background:var(--surface-strong)}.data-foundation-grid svg,.sidebar-icon,.creator-hero-status svg{color:var(--primary)}.data-foundation-grid span,.dashboard-filter span,.future-roadmap-summary small,.student-progress-grid small,.assignment-timeline>strong,.check-help strong,.change-summary-box strong,.save-status strong,.save-history strong,.exam-meta-grid strong{color:var(--muted);text-transform:none}.data-foundation-grid strong,.student-progress-grid strong,.assignment-timeline span.is-done,.student-task-timeline span.is-done,.save-status strong,.save-history strong,.creator-hero-status span,.panel-toolbar span,.library-filter-bar strong,.task-row-title strong,.assignment-row strong,.compact-list strong,.attention-row strong,.student-access-row strong,.goal-row strong{color:var(--text)}.data-foundation-item--action{border-color:#4f77aa57;background:var(--surface-high);box-shadow:none}.data-foundation-item--action:hover{border-color:#4f77aa85;background:var(--surface-higher)}.data-foundation-item--highlight svg,.data-foundation-item--highlight span,.data-foundation-item--highlight small,.data-foundation-item--highlight strong{color:var(--primary)}.empty-state{border-color:var(--line);background:color-mix(in srgb,var(--surface) 72%,transparent)}.empty-state strong{color:var(--text)}.task-grid{gap:22px}.task-card{min-height:280px;border-top:0;padding:22px}.task-card:hover,.metric-card:hover{box-shadow:0 22px 48px #4f77aa24}.task-card-top strong{color:var(--primary)}.difficulty,.language-chip,.tag-row span,.status-badge,.roadmap-pill,.roadmap-status,.task-state-badge{border-radius:999px;background:var(--surface-high);color:var(--primary)}.language-chip,.status-badge--submitted,.roadmap-pill{background:var(--primary-soft);color:var(--primary)}.status-badge--success,.status-badge--returned,.status-badge--progress,.roadmap-status,.task-state-badge--published,.task-state-badge--template{background:var(--secondary-soft);color:#486f96}.status-badge--returned,.status-badge--progress,.task-state-badge--draft{background:#d9953724;color:#9d671c}.task-state-badge--archived{background:#c75f621f;color:var(--danger)}.student-save-summary,.feedback-snippet,.workflow-mini--submitted,.workflow-notice--locked,.exam-row__stats span,.exam-editor-notice,.grade-preview-box{border-color:#4f77aa2e;background:var(--surface-high);color:var(--muted)}.feedback-snippet strong,.feedback-box h2,.exam-editor-notice strong,.grade-preview-box strong{color:var(--primary)}.compact-list>div,.attention-row,.assignment-row,.submission-table-row,.student-access-row,.goal-row,.exam-row,.returned-task-row,.check-row{border-color:var(--line);background:var(--surface)}.compact-list>div,.student-save-summary,.feedback-snippet,.student-access-row,.goal-row,.exam-row,.attention-row,.assignment-row{border-left-color:var(--primary)}.student-access-row--banned{border-color:#c75f626b;border-left-color:var(--danger);background:#c75f6214}.returned-task-alert{border-color:#d995373d;background:#d995371a}.returned-task-alert strong,.returned-task-alert>svg{color:#9d671c}.section-count,.attention-count{border-color:var(--line);background:var(--surface-high);color:var(--primary)}.library-search,.dashboard-filter select,.student-access-row select,.task-form input,.task-form textarea,.task-form select,.review-form input,.review-form textarea,.runtime-body textarea,.input-shell,.input-shell input{border-color:var(--line);background:var(--surface);color:var(--text)}label{color:var(--text)}.input-shell{background:var(--surface-strong)}.form-error{border-color:#c75f6238;background:#c75f6214;color:var(--danger)}.form-success{border-color:#4f77aa38;background:var(--primary-soft);color:var(--primary)}.library-filter-bar button,.lesson-chip,.submission-filter-bar button,.student-workspace-tabs button,.topic-chip-list span,.auth-mode-switch button,.role-grid button{border-color:var(--line);background:var(--surface);color:var(--muted)}.library-filter-bar button:hover,.library-filter-bar button.is-active,.lesson-chip:hover,.submission-filter-bar button:hover,.submission-filter-bar button.is-active,.student-workspace-tabs button:hover,.student-workspace-tabs button.is-active,.topic-chip-list span.is-completed,.auth-mode-switch button:hover,.auth-mode-switch button.is-active,.role-grid button:hover,.role-grid button.is-active{border-color:#4f77aa47;background:var(--primary-soft);color:var(--primary)}.submission-filter-bar strong{background:var(--surface);color:var(--primary)}.submission-table{border-color:var(--line);background:var(--surface)}.submission-table-head{color:var(--primary)}.submission-table-row--selected{border-color:#4f77aa61;background:var(--surface-high)}.submission-table-row--submitted:not(.submission-table-row--selected){border-color:#d9953757;border-left:4px solid var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--surface))}.submission-table input[type=checkbox],.checkbox-row input{accent-color:var(--primary)}.creator-page .task-form,.exam-manager .task-form,.goal-form{max-width:none;border:0;background:transparent;box-shadow:none;padding:0}.creator-page .task-form>label,.creator-page .task-form>.form-grid,.creator-page .task-form>.assignment-fieldset,.exam-manager .task-form>label,.exam-manager .task-form>.form-grid,.exam-manager .task-form>.assignment-fieldset,.goal-form>label,.goal-form>.form-grid{border:1px solid rgba(79,119,170,.14);border-radius:8px;background:var(--surface);padding:18px;box-shadow:var(--shadow-card)}.creator-page .task-form>.form-actions,.creator-page .task-form>.form-error,.exam-manager .task-form>.form-submit,.goal-form>.form-submit{margin-top:4px}.assignment-fieldset,.grading-control-box{border-color:#4f77aa24;background:var(--surface)}.assignment-fieldset legend,.grading-control-box legend{color:var(--primary)}.checkbox-row{border-color:var(--line);background:var(--surface-strong)}.code-textarea{background:var(--surface-strong)}.exam-manager{gap:24px}.exam-list-panel{align-self:start}.exam-row{border-left-width:0;padding:18px;box-shadow:0 12px 28px #4f77aa14}.exam-row__stats span{color:var(--primary)}.exam-row-heading{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.exam-meta-grid--summary{grid-template-columns:repeat(5,minmax(0,1fr))}.exam-row--needs-review{border-color:#d9953757;border-left-color:var(--warning);border-left-width:4px;background:color-mix(in srgb,var(--warning) 10%,var(--surface));box-shadow:0 18px 38px #d9953729}.exam-row--needs-review .exam-review-flag{background:#d9953729;color:#9d671c}.exam-row--needs-review .exam-meta-grid span{border-color:#d9953738;background:color-mix(in srgb,var(--warning) 6%,var(--surface))}.exam-row__actions .is-rotated{transform:rotate(180deg)}.exam-presence-panel{grid-column:1 / -1;display:grid;gap:14px;border-top:1px solid var(--line-soft);padding-top:16px}.exam-presence-heading,.exam-presence-heading>span:first-child,.exam-presence-student,.exam-presence-progress{display:grid;gap:3px}.exam-presence-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center}.exam-presence-heading strong{display:flex;align-items:center;gap:8px;font-size:18px}.exam-presence-heading small,.exam-presence-student small,.exam-presence-progress small{color:var(--muted)}.exam-presence-counter{border-radius:999px;background:color-mix(in srgb,var(--success) 14%,var(--surface));color:var(--success);padding:7px 11px;font-size:12px;font-weight:900}.exam-presence-list{display:grid;gap:8px}.exam-presence-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,auto) 110px auto;align-items:center;gap:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-strong);padding:11px 12px}.exam-presence-row.is-online{border-color:color-mix(in srgb,var(--success) 42%,var(--line));box-shadow:inset 3px 0 0 var(--success)}.exam-presence-state{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:850}.exam-presence-state.is-online{color:var(--success)}.exam-presence-progress strong{color:var(--primary)}.editor-page{gap:18px;height:auto;min-height:0}.editor-stage,.preview-panel,.python-graphics-panel,.python-runtime-panel,.sql-inspector-panel,.pseudo-diagram-panel,.python-activity-panel,.review-summary,.review-form{overflow:hidden}.review-exam-answers{border-color:#4f77aa24;background:var(--surface);box-shadow:var(--shadow-card)}.review-page .review-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,auto);align-items:start;gap:20px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;padding:0}.review-summary-title{min-width:0;width:fit-content;max-width:760px;background:transparent;padding:0}.review-summary-title .section-kicker{color:var(--primary);font-size:15px;letter-spacing:.04em}.review-summary-title h1{margin:8px 0 0;color:var(--text);font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.review-summary-title p{margin:8px 0 0;color:var(--muted);font-size:var(--page-subtitle-size);line-height:1.35}.review-summary-side{display:grid;justify-items:end;gap:14px;min-width:0}.review-summary-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;min-width:0;background:transparent;padding:0}.review-summary-actions .button{min-height:44px;padding-inline:14px}.review-summary-actions .task-meta--wrap{display:flex;flex-wrap:nowrap;align-items:center;gap:22px;margin-top:0;white-space:nowrap}.review-summary-actions .language-chip,.review-summary-actions .status-badge{min-height:auto;padding:0;background:transparent;color:var(--primary);font-size:13px;line-height:1}.review-summary-actions .task-meta--wrap>span:not(.language-chip):not(.status-badge){color:var(--muted);font-size:15px;font-weight:600}.review-page .review-switcher{display:inline-flex;align-items:center;justify-content:flex-end;min-width:174px;min-height:38px;gap:24px;background:transparent;color:var(--muted);padding:0}.review-page .review-switcher span{color:var(--text);font-size:17px;font-weight:900}.review-page .review-switcher .icon-button{width:38px;height:38px;color:var(--muted)}@media(max-width:1100px){.review-page .review-summary{grid-template-columns:1fr}.review-summary-side,.review-summary-actions{justify-items:start;justify-content:flex-start}}@media(max-width:720px){.review-summary-title{width:100%}.review-summary-title h1{font-size:var(--page-title-size)}.review-summary-actions{width:100%;flex-wrap:wrap}.review-summary-actions .task-meta--wrap{flex-wrap:wrap;white-space:normal}}.assignment-panel{overflow:visible}.assignment-panel--standalone{border:0;border-radius:0;background:transparent;box-shadow:none;padding:0}.assignment-panel--standalone .assignment-summary--standalone{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.assignment-panel--standalone .assignment-header,.assignment-panel--standalone .standalone-editor-title-row{display:contents}.assignment-panel--standalone .section-kicker{display:none}.assignment-panel--standalone h1{align-self:center;font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.assignment-panel--standalone .standalone-editor-actions{justify-self:end}.editor-toolbar,.panel-toolbar{border-bottom-color:var(--line);background:var(--surface)}.file-tabs button{color:var(--muted)}.file-tabs button.is-active{border-color:var(--line);background:var(--surface-high);color:var(--primary)}.save-indicator{border-color:var(--line);background:var(--surface-high);color:var(--muted)}.save-indicator--saving,.save-indicator--saved{border-color:#4f77aa47;color:var(--primary)}.save-indicator--error{border-color:#c75f6247;color:var(--danger)}.save-indicator--locked{border-color:#d9953747;color:var(--warning)}.monaco-shell,.console-panel{background:var(--surface-strong)}.console-line{color:var(--text)}.console-line span,.console-tabs span.is-active,.console-tabs button:hover{color:var(--primary)}.sample-output pre{color:var(--text)}.login-screen{background:var(--background)}.login-card{border-color:#4f77aa29;background:var(--surface);box-shadow:var(--shadow-soft)}.login-brand{color:var(--primary)}.auth-mode-switch,.role-grid{background:var(--surface-high)}.settings-page{display:grid;gap:28px;max-width:1320px;margin:0 auto}.settings-hero{align-items:stretch}.settings-hero-main{display:grid;flex:1 1 auto;gap:28px;align-content:center;min-width:0}.settings-account-summary{display:grid;grid-template-columns:minmax(220px,300px) minmax(560px,1fr);gap:28px;align-items:center;max-width:1160px}.settings-account-heading{display:inline-flex;align-items:center;gap:18px;color:var(--text);font-size:18px;font-weight:900}.settings-account-heading svg{color:var(--primary)}.settings-preview-card{display:grid;align-content:start;align-self:center;flex:0 1 auto;gap:7px;min-width:280px;width:max-content;max-width:100%;min-height:0;box-sizing:border-box;border:1px solid rgba(79,119,170,.16);border-radius:8px;background:var(--surface);padding:26px;box-shadow:var(--shadow-card)}.settings-preview-card svg{color:var(--primary)}.settings-preview-card span{color:var(--muted);font-size:12px;font-weight:900}.settings-preview-card strong{color:var(--text);font-size:20px;overflow-wrap:anywhere}.settings-preview-card small{color:var(--muted);font-weight:800}.settings-preview-card a,.settings-link-preview{color:var(--primary);font-weight:800;text-decoration:none;overflow-wrap:anywhere}.photo-upload-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;border:1px solid rgba(79,119,170,.16);border-radius:8px;background:var(--surface-strong);padding:16px}.photo-upload-body{display:grid;gap:7px}.photo-upload-body strong{color:var(--text)}.photo-upload-body span{color:var(--muted);font-size:13px;line-height:1.45}.photo-upload-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.photo-upload-actions .button{cursor:pointer}.task-cover-upload{display:grid;grid-template-columns:minmax(260px,.45fr) minmax(0,1fr);gap:18px;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:14px}.task-cover-upload--gallery-only{grid-template-columns:1fr;padding:20px}.task-cover-upload-body{display:grid;gap:8px}.task-cover-upload-body strong{color:var(--text);font-size:18px}.task-cover-upload-body span{color:var(--muted);line-height:1.45}.task-cover-gallery{display:grid;grid-template-columns:repeat(10,minmax(118px,1fr));gap:10px;margin-top:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.task-cover-upload--gallery-only .task-cover-gallery{grid-template-columns:repeat(10,minmax(118px,1fr));width:100%}.task-cover-gallery-option{display:grid;gap:6px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--primary);cursor:pointer;font:inherit;font-weight:800;padding:6px;text-align:center;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.task-cover-gallery-option:hover,.task-cover-gallery-option:focus-visible{border-color:#4f77aa8c;box-shadow:0 10px 22px #4f77aa1f;transform:translateY(-1px)}.task-cover-gallery-option--selected{border-color:var(--primary);box-shadow:0 0 0 2px #4f77aa2e}.task-cover-gallery-option img{width:100%;aspect-ratio:16 / 9;border-radius:6px;object-fit:cover}.task-cover-gallery-option span{overflow:hidden;color:var(--primary);font-size:12px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}@media(max-width:720px){.task-cover-upload{grid-template-columns:1fr}}@media(max-width:1020px){.login-screen{padding:clamp(12px,2.5vw,24px)}.login-layout{grid-template-columns:minmax(170px,.42fr) minmax(300px,.58fr);width:min(100%,720px)}.login-visual{min-height:clamp(360px,68vh,430px);border-radius:8px 0 0 8px}.login-card{min-height:clamp(360px,68vh,430px);border-left:0;border-radius:0 8px 8px 0;padding:24px 22px 18px}.login-brand{margin-bottom:12px}.brand-logo--login{height:72px}.role-grid{margin-bottom:16px}.login-form{gap:10px}.login-card .input-shell{min-height:44px}.login-card .login-submit{min-height:48px}.system-line{gap:8px;margin-top:16px;font-size:11px}}@media(max-width:560px){.login-screen{padding:12px}.login-layout{grid-template-columns:minmax(96px,.34fr) minmax(250px,.66fr);width:min(100%,500px)}.login-visual{min-height:0;height:auto;border-radius:8px 0 0 8px}.login-card{min-height:auto;border-left:0;border-radius:0 8px 8px 0;padding:18px 14px 14px}.login-brand{gap:5px;margin-bottom:10px}.brand-logo--login{height:58px}.login-brand p{font-size:9px}.login-card .form-copy h2{font-size:15.5px}.login-card .form-copy p{font-size:13px}.login-card label{font-size:12px}.login-card .input-shell{min-height:42px;padding:0 12px}.login-card .login-submit{min-height:46px;font-size:16px}.system-line{margin-top:12px;font-size:10px}}@media(max-width:380px){.login-layout{grid-template-columns:minmax(0,430px)}.login-visual{height:clamp(112px,34vw,140px);border-right:1px solid rgba(79,119,170,.16);border-bottom:0;border-radius:8px 8px 0 0}.login-card{border-top:0;border-left:1px solid rgba(51,65,85,.72);border-radius:0 0 8px 8px;padding:20px 14px 16px}}.settings-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:22px;align-items:start}.settings-panel{display:grid;gap:18px;border:1px solid rgba(79,119,170,.14);border-radius:8px;background:var(--surface);padding:22px;box-shadow:var(--shadow-card)}.settings-panel--wide,.settings-feedback--wide,.settings-actions--wide{grid-column:1 / -1}.settings-feedback--wide p{margin:0}.settings-panel input,.settings-panel textarea,.settings-panel select{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:12px}.settings-panel textarea{resize:vertical}.settings-grade-tabs{display:grid;grid-template-columns:repeat(4,minmax(44px,1fr));gap:8px}.settings-grade-tab{min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer;font:inherit;font-weight:900}.settings-grade-tab--active{border-color:var(--primary);background:var(--primary);color:#fff}.settings-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-editor-heading>div{display:flex;flex-wrap:wrap;gap:8px}.settings-editor-heading>div:first-child{display:grid;gap:3px}.settings-editor-heading small{color:var(--muted);font-weight:700}.settings-editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.settings-editor-option{display:flex;align-items:center;gap:10px;min-height:48px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:11px 12px;color:var(--text);font-weight:800}.settings-editor-option input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--primary)}.settings-grading-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.settings-grading-scale label{display:grid;grid-template-columns:1fr;gap:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:12px}.settings-grading-scale span{color:var(--text);font-weight:900}.settings-grading-scale small{color:var(--muted);font-weight:700}.choice-dialog-empty{grid-column:1 / -1;margin:0;color:var(--muted);font-weight:800;text-align:center}.settings-account-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.settings-account-facts span{display:grid;gap:3px;min-height:58px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);padding:10px;font-size:13px}.settings-account-facts strong{color:var(--primary);font-size:11px;text-transform:uppercase}.settings-hint,.settings-link-preview{display:flex;align-items:flex-start;gap:10px;border:1px solid rgba(79,119,170,.16);border-radius:8px;background:var(--surface-high);padding:12px;color:var(--muted);line-height:1.45}.settings-hint svg,.settings-link-preview svg{flex:0 0 auto;color:var(--primary);margin-top:2px}.settings-theme-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:13px}.settings-theme-row>span:nth-child(2){display:grid;gap:3px}.settings-theme-row strong{color:var(--text)}.settings-theme-row small{color:var(--muted);line-height:1.35}.settings-theme-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:8px;background:var(--surface-higher);color:var(--primary)}.theme-switch{position:relative;display:inline-flex}.theme-switch input{position:absolute;width:1px;height:1px;opacity:0}.theme-switch>span{position:relative;display:block;width:48px;height:26px;border:1px solid var(--line);border-radius:999px;background:var(--surface-higher);cursor:pointer;transition:background-color .16s ease,border-color .16s ease}.theme-switch>span:after{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--muted);content:"";transition:background-color .16s ease,transform .16s ease}.theme-switch input:checked+span{border-color:var(--primary);background:var(--primary-soft)}.theme-switch input:checked+span:after{background:var(--primary);transform:translate(22px)}.theme-switch input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}.settings-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:1380px){.admin-cell-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:1100px){.topbar-search{order:3;flex-basis:100%;max-width:none}.metrics-row--wide,.admin-cell-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-manager,.editor-page,.review-workspace,.settings-layout,.settings-account-summary{grid-template-columns:1fr;height:auto}.settings-account-facts,.settings-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-test-question,.exam-test-footer{width:100%}.exam-test-header{align-items:flex-start;flex-direction:column}.exam-test-header-stats{flex-basis:auto;width:100%}.exam-test-workspace{grid-template-columns:minmax(0,1fr)}.exam-test-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr));grid-column:1;grid-row:auto}.exam-test-timer-panel--sticky{top:96px;grid-template-columns:minmax(0,1fr) minmax(120px,.8fr)}.exam-test-timer-panel--sticky small{grid-column:1 / -1;white-space:normal}.exam-test-main{grid-column:1;grid-row:auto}.exam-start-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-presence-row{grid-template-columns:minmax(0,1fr) auto}.student-progress-body{grid-template-columns:1fr;gap:22px}.student-progress-right{border-left:0;border-top:1px solid var(--line);padding-top:18px;padding-left:0}.student-main-info{align-items:flex-start;flex-direction:column;justify-content:flex-start;gap:20px}.account-welcome-panel{grid-template-columns:1fr}.student-main-info .student-activity-summary{width:100%;max-width:none}.account-welcome-panel .student-activity-summary--main,.account-welcome-actions{justify-self:stretch;width:100%}.account-welcome-actions{grid-column:1;justify-content:flex-start;margin-top:0}.hero-photo-panel{width:100%;min-height:auto;border-left:0;border-top:1px solid var(--line);padding-top:24px;padding-left:0}.hero-photo-panel--student{place-items:center}.editor-stage{min-height:640px}}@media(max-width:900px),(min-width:700px)and (max-width:1180px)and (orientation:portrait){.student-dashboard-page{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;gap:18px;min-height:0}.student-dashboard-page>.student-main-info,.student-dashboard-page>.student-study-summary,.student-dashboard-page>.dashboard-columns--student{align-self:start;height:auto;min-height:0;margin-top:0;margin-bottom:0}.student-main-info{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;justify-content:flex-start;min-height:0}.student-dashboard-page>.student-main-info>.student-main-info-identity,.student-dashboard-page>.student-main-info>.student-activity-summary{width:100%}.student-main-info-identity{gap:14px}.student-main-info-identity h1{font-size:clamp(24px,4.35vw,36px)}.student-main-info .user-photo--hero{width:clamp(64px,9vw,86px);height:clamp(64px,9vw,86px);box-shadow:0 10px 22px #4f77aa1f}.student-main-info .student-activity-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.student-activity-summary--main span{gap:6px;min-height:0;padding:10px 12px}.student-progress-panel{padding:18px}.student-progress-view-switch{display:flex;gap:4px;width:100%;margin-bottom:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:4px}.student-progress-view-switch button{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;gap:7px;min-height:38px;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:0 10px;font:inherit;font-size:13px;font-weight:900;cursor:pointer}.student-progress-view-switch button:hover,.student-progress-view-switch button.is-active{background:var(--surface);color:var(--primary);box-shadow:0 8px 18px #4f77aa1f}.student-progress-overview{grid-template-columns:1fr;gap:0}.student-progress-summary-side,.student-progress-success-side{display:none}.student-progress-summary-side.is-compact-active,.student-progress-success-side.is-compact-active{display:block}.student-progress-success-side{border-left:0;border-top:0;padding-top:0;padding-left:0}.student-progress-summary-side .topic-chip-list{margin-top:18px}.student-journey-overview{margin-top:28px}}@media(max-width:680px){.settings-grade-tabs{grid-template-columns:repeat(4,minmax(44px,1fr))}.settings-editor-heading{align-items:flex-start;flex-direction:column}.settings-editor-grid,.settings-grading-scale{grid-template-columns:1fr}}@media(max-width:720px){.topbar{gap:12px;padding:12px 16px}.topnav,.topbar-actions{width:100%;overflow-x:auto}.topbar-actions{flex-wrap:nowrap}.notification-popover{position:fixed;top:92px;right:14px;left:14px;width:auto;max-height:calc(100vh - 112px);overflow:auto}.notification-layout{grid-template-columns:1fr;max-height:none}.notifications-page-heading{align-items:stretch;flex-direction:column}.notifications-page-heading .button{justify-content:center;width:100%}.notifications-page-actions{align-items:stretch;flex-direction:column;width:100%}.notification-compose{grid-template-columns:minmax(0,1fr);padding:14px}.notification-compose .section-heading,.notification-compose .is-wide{grid-column:auto}.notifications-page-panel{padding:14px}.notification-layout--page{min-height:0}.notification-layout--page .notification-detail{position:static;min-height:0}.user-pill{min-width:180px}.content{padding:20px 14px 42px}.exam-start-hero,.exam-start-panel--rules,.exam-question-navigator{grid-template-columns:1fr}.exam-start-hero{justify-items:start}.exam-start-grid,.exam-test-header-stats{grid-template-columns:1fr}.exam-question-navigator{align-items:stretch;flex-direction:column}.exam-question-navigator__list{justify-content:flex-start}.exam-test-sidebar{grid-template-columns:minmax(0,1fr)}.exam-test-timer-panel--sticky{top:76px;grid-template-columns:minmax(0,1fr);gap:7px;padding:10px 12px}.exam-test-timer-panel--sticky .exam-test-timer-heading{min-width:0}.exam-test-timer-panel--sticky small{display:none}.exam-start-actions{align-items:stretch;flex-direction:column-reverse}.exam-start-actions .button,.exam-start-button{width:100%}.hero-panel{padding:22px}.hero-class-switch{width:100%;flex-basis:auto}.user-photo--hero{width:128px;height:128px}.photo-upload-card{grid-template-columns:1fr;justify-items:start}.student-activity-summary{grid-template-columns:1fr}.student-main-info-identity{align-items:flex-start}.student-main-info-identity h1{font-size:clamp(25.5px,7.5vw,34.5px);white-space:normal}.student-main-info .user-photo--hero{width:76px;height:76px}.admin-cell-grid,.metrics-row,.metrics-row--wide,.exam-step-summary,.form-grid,.task-library-primary-row,.task-library-secondary-row,.data-foundation-grid,.exam-test-layout,.exam-test-header-stats,.exam-meta-grid,.class-detail-meta,.task-card.task-card--archive,.task-archive-meta,.student-exam-history-row,.student-exam-history-summary,.student-workspace-tabs,.student-progress-grid,.manual-grade-form-grid,.settings-account-facts,.manual-grade-student-head,.manual-grade-student-row{grid-template-columns:1fr}.student-exam-history-grade,.student-exam-history-points{justify-items:start}.exam-presence-heading,.exam-presence-row{grid-template-columns:1fr}.exam-presence-counter{justify-self:start}.exam-presence-row .button{width:100%}.exam-test-question--programming .exam-programming-answer{grid-template-columns:1fr}.exam-test-footer{align-items:stretch;flex-direction:column}.exam-test-footer-actions,.exam-test-footer-actions .button{width:100%}.programming-language-options{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-cell{min-height:112px}.system-audit-row,.system-audit-row--log{grid-template-columns:1fr;align-items:start}.choice-card-grid,.question-review-controls,.gradebook-head,.gradebook-row,.question-review-status{grid-template-columns:1fr}.gradebook-head{display:none}.gradebook-row{align-items:start}.gradebook-batch-row{grid-template-columns:1fr;align-items:stretch}.gradebook-batch-row .button{justify-content:center;width:100%}.class-success-header,.class-success-controls,.class-success-toggle{align-items:stretch}.class-success-header,.class-success-controls,.class-success-body{grid-template-columns:1fr}.class-success-header,.class-success-controls{display:grid}.class-success-view-tabs{width:100%}.class-success-view-tabs button{flex:1 1 0}.class-success-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:721px)and (max-width:1280px){.topbar--unified{display:grid;grid-template-columns:minmax(190px,.62fr) minmax(260px,1.38fr) auto;grid-template-rows:auto auto;align-items:center;gap:12px clamp(12px,2vw,28px);min-height:176px;padding:20px clamp(24px,3.6vw,48px)}.topbar--unified .brand{grid-column:1;grid-row:1 / span 2;justify-self:start}.topbar--unified .brand-logo--topbar{width:clamp(190px,28vw,320px);height:92px}.topbar--unified .topbar-search{grid-column:2;grid-row:1;justify-self:stretch;width:100%;max-width:none;min-height:56px;order:initial;flex-basis:auto;box-sizing:border-box}.topbar--unified .topbar-create{grid-column:3;grid-row:1;min-height:56px;align-self:stretch;padding-inline:clamp(14px,2vw,22px)}.topbar--unified .topbar-actions{grid-column:2 / 4;grid-row:2;gap:clamp(8px,1.2vw,12px);justify-content:flex-end;width:100%;margin-left:0;overflow:visible;flex-wrap:nowrap}.topbar--unified .icon-button,.topbar--unified .theme-toggle-button{width:clamp(44px,5vw,48px);height:clamp(44px,5vw,48px);flex-basis:clamp(44px,5vw,48px);background:var(--surface-high);border-color:var(--line)}.topbar--unified .topbar-action-link{min-height:48px;border-color:var(--line);background:var(--surface-high);padding:0 clamp(12px,1.8vw,18px);font-size:clamp(14px,1.6vw,16px)}.topbar--unified .user-pill{width:auto;max-width:clamp(210px,24vw,290px);min-height:56px;order:initial;border:1px solid transparent;border-left:0;border-radius:8px;background:var(--surface-high);padding:8px 10px}.topbar--unified .user-pill strong{max-width:clamp(120px,16vw,210px)}}@media(min-width:721px)and (max-width:720px)and (orientation:landscape){.topbar--unified{display:grid;grid-template-columns:minmax(168px,.42fr) minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:10px 18px;min-height:132px;padding:12px 18px}.topbar--unified .brand{grid-column:1;grid-row:1 / span 2;justify-self:start}.topbar--unified .brand-logo--topbar{width:clamp(168px,24vw,210px);height:56px}.topbar--unified .topbar-search{display:none}.topbar--unified .topbar-actions{grid-column:2;grid-row:2;width:100%;margin-left:0;overflow-x:auto;padding-bottom:2px;flex-wrap:nowrap;justify-content:flex-end}.topbar--unified .icon-button,.topbar--unified .theme-toggle-button{width:44px;height:44px;flex:0 0 44px;background:var(--surface-high);border-color:var(--line)}.topbar--unified .topbar-action-link{min-height:44px;flex:0 0 auto;border-color:var(--line);background:var(--surface-high);padding:0 12px;white-space:nowrap}.topbar--unified .user-pill{order:initial;width:auto;max-width:164px;min-height:48px;flex:0 0 auto;border:1px solid transparent;border-left:0;border-radius:8px;background:var(--surface-high);padding:7px 10px}.topbar--unified .user-pill strong{max-width:66px}.topbar--unified .notification-popover{position:fixed;top:142px;right:14px;left:14px;width:auto;max-height:calc(100vh - 158px)}}@media(max-width:720px){.topbar--unified{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-height:0;padding:14px}.topbar--unified .brand{justify-self:start;max-width:100%}.topbar--unified .brand-logo--topbar{width:clamp(168px,48vw,220px);height:52px}.topbar--unified .topbar-search{display:none}.topbar--unified .topbar-create{width:100%;min-height:46px}.topbar--unified .topbar-actions{width:100%;margin-left:0;overflow-x:auto;padding-bottom:2px;flex-wrap:nowrap;justify-content:flex-start}.topbar--unified .topbar-actions::-webkit-scrollbar{height:6px}.topbar--unified .icon-button,.topbar--unified .theme-toggle-button{width:46px;height:46px;flex:0 0 46px;background:var(--surface-high);border-color:var(--line)}.topbar--unified .topbar-action-link{min-height:46px;flex:0 0 auto;border-color:var(--line);background:var(--surface-high);padding:0 14px;white-space:nowrap}.topbar--unified .topbar-actions>.button--primary{min-height:46px;flex:0 0 auto;padding:0 14px;white-space:nowrap}.topbar--unified .user-pill{order:initial;width:auto;max-width:190px;min-height:50px;flex:0 0 auto;border:1px solid transparent;border-left:0;border-radius:8px;background:var(--surface-high);padding:7px 10px}.topbar--unified .user-pill strong{max-width:86px}.topbar--unified .notification-popover{top:136px;max-height:calc(100vh - 152px)}}:root[data-theme=dark] body{background:var(--background)}:root[data-theme=dark] .brand-logo{filter:invert(1) hue-rotate(180deg) saturate(.9) brightness(1.08);mix-blend-mode:screen}:root[data-theme=dark] .app-busy-overlay{background:color-mix(in srgb,var(--background) 72%,transparent)}:root[data-theme=dark] .topnav button{color:var(--muted)}:root[data-theme=dark] .app-launcher-badge,:root[data-theme=dark] .notification-badge,:root[data-theme=dark] .student-latest-card-icon{border-color:var(--surface)}:root[data-theme=dark] .scratch-palette-block{border-color:color-mix(in srgb,var(--scratch-block-color) 42%,var(--line));background:color-mix(in srgb,var(--scratch-block-color) 20%,var(--surface))}:root[data-theme=dark] .scratch-palette-block:hover{background:color-mix(in srgb,var(--scratch-block-color) 28%,var(--surface))}:root[data-theme=dark] .scratch-script-block{border-color:color-mix(in srgb,var(--scratch-block-color) 36%,var(--line))}:root[data-theme=dark] .scratch-script-block-heading>span{background:color-mix(in srgb,var(--scratch-block-color) 22%,var(--surface))}:root[data-theme=dark] .scratch-stage{background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.16),transparent 28%),linear-gradient(180deg,color-mix(in srgb,var(--scratch-stage-bg) 34%,var(--surface)),var(--surface-strong))}:root[data-theme=dark] .student-latest-card-fallback{background:radial-gradient(circle at 18% 30%,rgba(121,199,180,.2),transparent 21%),radial-gradient(circle at 82% 18%,rgba(227,182,109,.16),transparent 18%),linear-gradient(135deg,var(--surface-high),var(--surface-strong))}:root[data-theme=dark] .status-badge--success,:root[data-theme=dark] .status-badge--returned,:root[data-theme=dark] .status-badge--progress,:root[data-theme=dark] .roadmap-status,:root[data-theme=dark] .task-state-badge--published,:root[data-theme=dark] .task-state-badge--template{color:var(--secondary)}:root[data-theme=dark] .status-badge--returned,:root[data-theme=dark] .status-badge--progress,:root[data-theme=dark] .task-state-badge--draft,:root[data-theme=dark] .notification-count-pill,:root[data-theme=dark] .returned-task-alert strong,:root[data-theme=dark] .returned-task-alert>svg,:root[data-theme=dark] .exam-row--needs-review .exam-review-flag{color:var(--warning)}:root[data-theme=dark] .grade-chip-delete{color:var(--danger)}:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder,:root[data-theme=dark] .topbar-search input::placeholder{color:#8292a7;opacity:1}:root[data-theme=dark] iframe,:root[data-theme=dark] .python-graphics-frame img{color-scheme:light}.algorithmization-page,.algorithm-lesson-page,.programmer-journey-page{display:grid;gap:28px;width:min(100%,1500px);margin:0 auto}.journey-profile-hero,.journey-card,.journey-class-picker,.journey-stat-card,.journey-metric-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card)}.journey-page-heading,.form-page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.journey-page-heading{display:flex}.journey-page-heading h1,.form-page-heading h1,.journey-profile-hero h1,.journey-section-heading h2,.journey-class-picker h2{margin:4px 0 8px}.journey-page-heading h1{margin:4px 0 8px;font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.journey-page-heading p,.form-page-heading p,.journey-profile-hero p,.journey-section-heading p{margin:0;color:var(--muted)}.journey-page-heading p{max-width:820px;font-size:var(--page-subtitle-size);line-height:1.35}.journey-settings-open{flex:0 0 auto}.form-page-heading h1{margin:4px 0 8px;font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.form-page-heading p{font-size:var(--page-subtitle-size);line-height:1.35}.form-page-heading-meta{display:grid;flex:0 0 auto;gap:5px;justify-items:end;max-width:320px;padding-bottom:4px;text-align:right}.form-page-heading-meta span{color:var(--primary);font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.form-page-heading-meta small{color:var(--muted);font-weight:700}.form-page-heading-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-bottom:4px}.journey-level-badge{display:grid;flex:0 0 auto;place-items:center;overflow:visible;border:0;background:transparent;color:var(--primary);box-shadow:none}.journey-level-badge img{display:block;width:100%;height:100%;object-fit:contain;padding:0;filter:drop-shadow(0 14px 20px rgba(40,63,92,.18))}.journey-level-badge--tiny{width:38px;height:38px}.journey-level-badge--small{width:56px;height:56px}.journey-level-badge--medium{width:76px;height:76px}.journey-level-badge--hero{width:clamp(188px,14vw,232px);height:clamp(188px,14vw,232px)}.journey-level-emblem{justify-self:center}.journey-profile-hero{display:grid;grid-template-columns:minmax(190px,260px) minmax(0,1fr) auto;align-items:center;gap:clamp(28px,4vw,58px);overflow:hidden;padding:clamp(22px,2.5vw,30px) clamp(28px,4.2vw,60px)}.journey-profile-copy{min-width:0;max-width:720px}.journey-profile-copy h1{margin-top:6px;font-size:clamp(38px,3.6vw,54px);line-height:1.02;letter-spacing:-.045em}.journey-xp-total,.journey-detail-xp{display:grid;justify-items:center;min-width:130px;border-radius:18px;background:var(--primary);color:#fff;padding:20px}.journey-xp-total strong,.journey-detail-xp strong{font-size:36px;line-height:1}.journey-xp-total span,.journey-detail-xp span{margin-top:6px;font-weight:800}.journey-progress{display:grid;gap:8px;margin-top:18px;max-width:760px}.journey-progress>div:first-child{display:flex;justify-content:space-between;gap:16px;font-size:16px}.journey-progress>div:first-child span,.journey-progress small{color:var(--muted)}.journey-progress-track,.journey-table-progress{height:12px;overflow:hidden;border-radius:999px;background:var(--surface-high)}.journey-progress-track span,.journey-table-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary))}.journey-stat-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.journey-stat-card{display:grid;gap:8px;min-width:0;padding:18px}.journey-stat-card svg{color:var(--primary)}.journey-stat-card strong{font-size:28px}.journey-stat-card span{color:var(--muted);font-size:13px;font-weight:700}.journey-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.journey-card{min-width:0;padding:24px}.journey-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.journey-section-heading>svg{color:var(--primary)}.journey-certificate-schedule{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:10px}.journey-certificate-schedule label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.journey-certificate-schedule input{min-height:42px;border:1px solid var(--line);border-radius:12px;background:var(--surface-high);color:var(--text);padding:0 12px;font:inherit;font-weight:800}.journey-certificate-schedule .button{min-height:42px;padding:0 14px}.journey-certificate-message{margin:-8px 0 18px;color:var(--muted);font-size:13px;font-weight:800}.journey-level-list,.journey-event-list,.journey-certificate-list,.journey-stagnation-list{display:grid;gap:8px}.journey-certificate-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line-soft);border-radius:12px;background:var(--surface-high);padding:10px 12px}.journey-certificate-row>div{display:grid;gap:3px}.journey-certificate-row strong{color:var(--text);font-size:16px}.journey-certificate-row small{color:var(--muted);font-weight:700}.journey-level-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line-soft);border-radius:10px;background:var(--surface-high);padding:12px;opacity:.62}.journey-level-row>.journey-level-badge{margin:-5px 0}.journey-level-row div{display:grid;gap:3px}.journey-level-row small{color:var(--muted)}.journey-level-row.is-reached{border-color:color-mix(in srgb,var(--primary) 38%,var(--line));background:var(--primary-soft);opacity:1}.journey-level-row.is-reached>.journey-level-badge{filter:saturate(1.06)}.journey-level-row.is-reached>svg{color:var(--success)}.journey-event-row{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:14px;border-bottom:1px solid var(--line-soft);padding:12px 0}.journey-event-row>span{border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:7px 9px;text-align:center;font-weight:900}.journey-event-row>span.is-negative{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.journey-event-row div{display:grid;gap:4px}.journey-event-row small{color:var(--muted)}.journey-empty{border:1px dashed var(--line);border-radius:10px;color:var(--muted);padding:24px;text-align:center}.journey-empty--page{min-height:300px;display:grid;place-items:center}.journey-class-picker{display:grid;gap:24px;padding:22px 24px}.journey-class-tabs{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px}.journey-class-tabs button{display:grid;flex:0 0 190px;gap:3px;min-height:82px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--text);padding:14px 16px;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.journey-class-tabs button:hover{border-color:color-mix(in srgb,var(--primary) 50%,var(--line));transform:translateY(-1px)}.journey-class-tabs button.is-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 15%,transparent)}.journey-class-tabs button>span{color:var(--text);font-size:18px;font-weight:900}.journey-class-tabs button small{color:var(--muted);font-weight:700}.journey-class-tabs button strong{margin-top:5px;color:var(--primary);font-size:11px;text-transform:uppercase}.journey-class-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.journey-metric-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 12px;padding:20px}.journey-metric-card svg{grid-row:1 / 3;color:var(--primary)}.journey-metric-card span{color:var(--muted);font-weight:700}.journey-metric-card strong{font-size:30px}.journey-distribution{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.journey-distribution div{display:grid;gap:6px;justify-items:center;border-radius:10px;background:var(--surface-high);padding:12px 6px;text-align:center}.journey-distribution-label{color:var(--muted);font-size:11px;font-weight:800}.journey-distribution strong{font-size:24px}.journey-stagnation-list button{display:flex;justify-content:space-between;gap:12px;width:100%;border:1px solid var(--line-soft);border-radius:9px;background:var(--surface-high);color:var(--text);padding:11px 12px;text-align:left}.journey-stagnation-list button small{color:var(--muted)}.journey-table-wrap{overflow-x:auto}.journey-table{width:100%;border-collapse:collapse}.journey-table th,.journey-table td{border-bottom:1px solid var(--line-soft);padding:12px;text-align:left}.journey-table th{color:var(--muted);font-size:12px;text-transform:uppercase}.journey-table tbody tr{cursor:pointer}.journey-table tbody tr:hover{background:var(--surface-high)}.journey-table td button{border:0;background:transparent;color:var(--primary);padding:0;font-weight:900}.journey-table td .journey-certificate-action{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--primary);padding:9px 12px;font-size:13px;line-height:1;white-space:nowrap}.journey-table td .journey-certificate-action:not(:disabled):hover{border-color:#4f77aa57;background:var(--surface-high)}.journey-table td .journey-certificate-action:disabled{background:var(--surface-high);color:var(--muted);cursor:not-allowed;opacity:.52}.journey-table-progress{width:120px;height:8px}.journey-table-level{display:inline-flex;align-items:center;gap:8px;font-weight:900}.journey-student-detail{display:grid;gap:18px}.journey-student-detail-backdrop{z-index:55;align-items:start;overflow:auto;padding:28px}.journey-student-detail--dialog{position:relative;width:min(100%,1480px);max-height:calc(100vh - 56px);margin:auto;overflow:auto;padding:28px 32px}.journey-student-detail-close{position:absolute;top:16px;right:16px;z-index:1}.journey-student-detail-hero{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(360px,1.7fr) auto;align-items:center;gap:28px}.journey-student-detail-title h2{margin:6px 0 8px;font-size:28px;line-height:1.1}.journey-student-detail-title p{margin:0;color:var(--muted);font-size:19px}.journey-student-detail-hero .journey-progress{width:100%;max-width:none;margin:0}.journey-student-detail-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.95fr);gap:18px;align-items:start}.journey-student-detail-left{display:grid;gap:18px}.journey-student-detail-left .journey-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.journey-student-detail-left .journey-stat-card{min-height:132px;padding:19px}.journey-student-detail-history>.journey-card{height:100%;min-height:520px}.journey-student-detail-history .journey-event-list{max-height:760px;overflow:auto}.journey-detail-xp{min-width:96px;min-height:96px;align-content:center;padding:15px 18px}.journey-detail-xp strong{font-size:34px}.journey-detail-actions{display:grid;grid-template-columns:1fr;gap:16px;max-width:none}.journey-detail-actions--two{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-mentor-control,.journey-manual-xp{display:grid;align-content:start;gap:12px;border-radius:12px;background:var(--surface-high);padding:18px}.journey-mentor-control label,.journey-manual-xp label{display:grid;gap:7px}.journey-mentor-control label>span,.journey-manual-xp label>span{color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.03em;text-transform:uppercase}.programmer-journey-page input,.programmer-journey-page textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:11px 12px;font:inherit;outline:0}.programmer-journey-page textarea{min-height:96px;resize:vertical}.programmer-journey-page input:focus,.programmer-journey-page textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}.journey-mentor-control h3,.journey-manual-xp h3{margin:0}.journey-mentor-control textarea{min-height:128px}.journey-manual-xp .button[type=submit]{justify-content:center;width:100%}.journey-mentor-control>div,.journey-settings-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.gamification-review-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.journey-settings{display:grid;gap:22px}.journey-settings-backdrop{z-index:55;align-items:start;overflow:auto;padding:28px}.journey-settings--dialog{width:min(100%,1080px);max-height:min(90vh,860px);margin:auto;overflow:auto;padding:22px}.journey-settings>.journey-section-heading{margin:0}.journey-settings-close{color:var(--primary)}.journey-settings-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--text);padding:15px 16px;text-align:left}.journey-settings-toggle.is-active{border-color:color-mix(in srgb,var(--primary) 36%,var(--line));background:var(--primary-soft)}.journey-settings-toggle>span:last-child{display:grid;gap:3px}.journey-settings-toggle small{color:var(--muted)}.journey-switch{position:relative;display:block;width:46px;height:26px;border-radius:999px;background:var(--line);transition:background .16s ease}.journey-switch span{position:absolute;top:4px;left:4px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:0 2px 5px #20202933;transition:transform .16s ease}.journey-settings-toggle.is-active .journey-switch{background:var(--primary)}.journey-settings-toggle.is-active .journey-switch span{transform:translate(20px)}.journey-settings-subheading{display:flex;align-items:end;justify-content:space-between;gap:20px;border-top:1px solid var(--line-soft);padding-top:20px}.journey-settings-subheading h3{margin:2px 0 0;font-size:20px}.journey-settings-subheading small{max-width:440px;color:var(--muted);text-align:right}.journey-settings-xp{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.journey-setting-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);padding:14px}.journey-setting-card>span{min-height:32px;color:var(--muted);font-size:12px;font-weight:900;line-height:1.3;text-transform:uppercase}.journey-setting-card>.journey-setting-level-title{display:flex;align-items:center;gap:9px;min-height:38px}.journey-input-with-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.programmer-journey-page .journey-input-with-suffix input{min-width:0;border:0;border-radius:0;background:transparent;box-shadow:none;padding-right:6px;font-weight:900}.journey-input-with-suffix strong{align-self:stretch;display:grid;place-items:center;min-width:44px;border-left:1px solid var(--line-soft);background:var(--primary-soft);color:var(--primary);font-size:11px}.journey-input-with-suffix:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}.journey-setting-card input:disabled{color:var(--muted);cursor:not-allowed;opacity:.7}.journey-grade-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;border-radius:10px;background:var(--surface-high);padding:5px}.journey-grade-tabs button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:46px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-weight:800;line-height:1;text-align:center}.journey-grade-tabs button.is-active{border-color:var(--line);background:var(--surface);color:var(--primary);box-shadow:var(--shadow-card)}.journey-grade-tabs button strong{font-size:18px}.journey-level-settings-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.journey-settings-actions span{color:var(--muted);font-weight:700}.journey-settings--dialog .journey-settings-toggle{border-radius:12px;padding:13px 14px}.journey-settings--dialog .journey-settings-subheading{padding-top:16px}.journey-settings--dialog .journey-settings-subheading h3{font-size:18px}.journey-settings--dialog .journey-settings-xp{grid-template-columns:repeat(4,minmax(0,1fr))}.journey-settings--dialog .journey-setting-card{gap:8px;padding:12px}.journey-settings--dialog .journey-setting-card>span{min-height:auto}.journey-settings--dialog .journey-input-with-suffix{border-radius:10px}.journey-settings--dialog .journey-grade-tabs{border-radius:12px}.journey-settings--dialog .journey-level-settings-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1180px){.journey-student-detail-hero{grid-template-columns:minmax(220px,.8fr) minmax(320px,1.4fr) auto;gap:18px}.journey-student-detail-body{grid-template-columns:1fr}.journey-student-detail-history>.journey-card{min-height:auto}.journey-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.journey-settings-xp{grid-template-columns:repeat(3,minmax(0,1fr))}.journey-level-settings-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:820px){.journey-student-detail-hero{grid-template-columns:1fr auto}.journey-student-detail-hero .journey-progress{grid-column:1 / -1;order:3}.journey-student-detail-left .journey-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-profile-hero{grid-template-columns:minmax(132px,176px) minmax(0,1fr);gap:22px}.journey-level-badge--hero{width:176px;height:176px}.journey-xp-total{grid-column:1 / -1}.journey-two-column,.journey-detail-actions{grid-template-columns:1fr}.journey-class-metrics,.journey-stat-grid,.journey-settings-xp{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-class-picker{padding:20px}.journey-settings-subheading{align-items:flex-start;flex-direction:column;gap:6px}.journey-settings-subheading small{text-align:left}.journey-level-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.journey-page-heading,.form-page-heading{align-items:stretch;flex-direction:column}.journey-settings-open{justify-content:center;width:100%}.journey-settings-backdrop,.journey-student-detail-backdrop{padding:14px}.journey-settings--dialog{max-height:calc(100vh - 28px);padding:18px}.journey-student-detail--dialog{max-height:calc(100vh - 28px);padding:22px 18px}.journey-page-heading h1{font-size:27px}.journey-page-heading p{font-size:16px}.form-page-heading-actions{justify-content:flex-start}.form-page-heading-meta{justify-items:start;max-width:none;text-align:left}.journey-profile-hero{align-items:start;grid-template-columns:1fr;justify-items:start}.journey-level-emblem{justify-self:start}.journey-level-badge--hero{width:142px;height:142px}.journey-stat-grid,.journey-class-metrics,.journey-settings-xp,.journey-level-settings-grid,.gamification-review-box,.journey-student-detail-hero{grid-template-columns:1fr}.journey-detail-xp{justify-self:start}.journey-student-detail-left .journey-stat-grid{grid-template-columns:1fr}.journey-certificate-row{grid-template-columns:auto minmax(0,1fr)}.journey-certificate-row .button{grid-column:1 / -1;justify-content:center}.journey-grade-tabs button{display:grid;gap:0}}.algorithm-lesson-hero,.algorithm-access-panel,.algorithm-content-card,.algorithm-demo-card,.algorithm-locked-state{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card)}.algorithm-lesson-page{gap:20px}.algorithm-lesson-page :is(.algorithm-lesson-hero,.algorithm-content-card,.algorithm-demo-card){padding:clamp(20px,2.5vw,30px);box-shadow:none;gap:20px}.algorithm-lesson-page :is(.algorithm-lesson-hero,.algorithm-section-heading){display:flex;align-items:flex-start;gap:16px}.algorithm-lesson-page :is(.algorithm-lesson-icon,.algorithm-heading-icon){width:44px;height:44px;border-radius:10px}.algorithm-lesson-page :is(.algorithm-lesson-icon,.algorithm-heading-icon) svg{width:22px;height:22px}.algorithm-lesson-page :is(.algorithm-lesson-hero,.algorithm-section-heading)>div{min-width:0}.algorithm-lesson-page .section-kicker{font-size:14px;font-weight:400;letter-spacing:0}.algorithm-lesson-page .algorithm-lesson-hero h1{margin:4px 0 12px;font-size:clamp(26px,2.4vw,32px);font-weight:400;line-height:1.25;letter-spacing:-.02em}.algorithm-lesson-page .algorithm-section-heading h2{margin:4px 0 8px;font-size:clamp(22px,2vw,26px);font-weight:400;line-height:1.35}.algorithm-lesson-page :is(.algorithm-lesson-hero p,.algorithm-section-heading p,.algorithm-principles li){font-size:17px;font-weight:400;line-height:1.65}.algorithm-lesson-page .algorithm-principles{margin:0;padding-left:24px}.algorithm-lesson-hero{display:flex;align-items:center;gap:22px;min-height:170px;padding:clamp(24px,4vw,42px)}.algorithm-lesson-hero h1{margin:4px 0 10px;font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.algorithm-lesson-hero p,.algorithm-section-heading p{max-width:900px;margin:0;color:var(--muted);font-size:16px;line-height:1.7}.algorithm-lesson-hero p{font-size:var(--page-subtitle-size);line-height:1.35}.algorithm-lesson-icon{display:grid;place-items:center;flex:0 0 auto;width:72px;height:72px;border-radius:18px;background:var(--primary-soft);color:var(--primary)}.algorithm-access-panel,.algorithm-content-card,.algorithm-demo-card{display:grid;gap:22px;padding:clamp(20px,3vw,30px)}.algorithm-access-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;display:grid;place-items:center;background:#0f151e8f;padding:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.algorithm-access-dialog{position:relative;width:min(1320px,100%);max-height:min(820px,calc(100vh - 48px));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 28px 80px #0f151e47;overflow:auto}.algorithm-access-dialog .algorithm-access-panel{border:0;box-shadow:none}.algorithm-access-dialog-close{position:absolute;top:18px;right:18px;z-index:1;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--muted)}.algorithm-access-dialog-close:hover{border-color:var(--primary);color:var(--primary)}.algorithm-section-heading{display:flex;align-items:flex-start;gap:14px}.algorithm-section-heading h2,.algorithm-list-heading h2{margin:3px 0 5px;font-size:clamp(22px,2.5vw,30px)}.algorithm-list-heading h2{font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.algorithm-heading-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:var(--primary-soft);color:var(--primary)}.algorithm-access-list{display:grid;gap:14px}.algorithm-access-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-4px -2px 0;padding:4px 2px 12px;background:var(--surface)}.algorithm-access-grade-tabs{display:flex;gap:7px}.algorithm-access-grade-tabs button{display:grid;gap:2px;min-width:106px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--text);padding:9px 13px;text-align:left}.algorithm-access-grade-tabs button:hover:not(:disabled){border-color:var(--primary)}.algorithm-access-grade-tabs button.is-active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 24%,transparent)}.algorithm-access-grade-tabs button:disabled{cursor:default;opacity:.45}.algorithm-access-grade-tabs small{color:inherit;font-size:10px;opacity:.72}.algorithm-access-search{display:flex;align-items:center;gap:8px;width:min(280px,100%);border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--muted);padding:0 12px}.algorithm-access-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.algorithm-access-search input{width:100%;border:0;outline:0;background:transparent;padding:11px 0;color:var(--text)}.algorithm-access-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:10px;background:var(--primary-soft);padding:12px 15px;color:var(--primary)}.algorithm-access-summary>div{display:flex;align-items:baseline;gap:10px}.algorithm-access-summary span,.algorithm-access-summary small{color:var(--muted);font-size:12px}.algorithm-access-category{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.algorithm-access-category-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);background:var(--surface-higher);padding:9px 16px}.algorithm-access-category-heading>strong{color:var(--primary);font-size:12px}.algorithm-access-category-heading>span{display:grid;min-width:22px;height:22px;place-items:center;border-radius:999px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:900}.algorithm-access-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:70px;padding:10px 14px 10px 18px;background:var(--surface-strong)}.algorithm-access-row+.algorithm-access-row{border-top:1px solid var(--line)}.algorithm-access-row>div{display:grid;gap:3px}.algorithm-access-row>div>small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.algorithm-access-switch{position:relative;display:grid;grid-template-columns:28px 78px;gap:1px 9px;align-items:center;min-width:132px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:7px 10px;cursor:pointer}.algorithm-access-switch.is-enabled{border-color:color-mix(in srgb,var(--primary) 35%,var(--line));background:var(--primary-soft)}.algorithm-access-switch input{position:absolute;opacity:0;pointer-events:none}.algorithm-access-switch>span{grid-row:1 / span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--surface-higher);color:transparent}.algorithm-access-switch.is-enabled>span{background:var(--primary);color:#fff}.algorithm-access-switch>strong{font-size:11px}.algorithm-access-switch small{color:var(--muted);font-size:9px}.algorithm-access-switch i{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:999px;background:var(--primary);animation:algorithm-pulse .8s ease-in-out infinite alternate}@keyframes algorithm-pulse{to{opacity:.25;transform:scale(.72)}}.algorithm-access-empty{margin:0;color:var(--muted)}.algorithm-list-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.algorithm-list-actions{display:flex;align-items:center;gap:10px}.algorithm-list-count{border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:7px 12px;font-size:13px;font-weight:800}.algorithm-category-list{display:grid;gap:34px}.algorithm-category-section{display:grid;gap:14px}.algorithm-category-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:11px}.algorithm-category-heading h3,.algorithm-category-heading p{margin:0}.algorithm-category-heading h3{font-size:clamp(19px,2vw,24px)}.algorithm-category-heading p{margin-top:5px;color:var(--muted);font-size:13px}.algorithm-category-heading>span{display:grid;min-width:30px;height:30px;place-items:center;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:900}.algorithm-category-empty{border:1px dashed var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 72%,transparent);color:var(--muted);padding:16px;font-size:13px;text-align:center}.algorithm-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.algorithm-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:280px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:22px;text-align:left;box-shadow:var(--shadow-card);transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.algorithm-card:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));transform:translateY(-3px);box-shadow:var(--shadow-soft)}.algorithm-card-number{position:absolute;top:18px;right:18px;color:var(--muted);font:700 12px/1 JetBrains Mono,monospace}.algorithm-card-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:22px;border-radius:15px;background:var(--primary-soft);color:var(--primary)}.algorithm-card>strong{font-size:19px;line-height:1.3}.algorithm-card p{margin:10px 0 24px;color:var(--muted);font-size:14px;line-height:1.55}.algorithm-card-link{display:inline-flex;align-items:center;gap:4px;margin-top:auto;color:var(--primary);font-size:13px;font-weight:800}.algorithm-locked-state{display:grid;justify-items:center;gap:10px;padding:52px 24px;text-align:center}.algorithm-locked-state>span{display:grid;place-items:center;width:60px;height:60px;border-radius:18px;background:var(--primary-soft);color:var(--primary)}.algorithm-locked-state h3,.algorithm-locked-state p{margin:0}.algorithm-locked-state p{max-width:620px;color:var(--muted)}.algorithm-back-button{display:inline-flex;align-items:center;justify-self:start;gap:8px;border:0;background:transparent;color:var(--primary);padding:4px 0;font-weight:800}.algorithm-lesson-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.algorithm-content-editor{display:grid;gap:clamp(22px,2.4vw,30px);width:min(100%,1320px);margin-inline:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);padding:clamp(22px,3.2vw,40px)}.algorithm-content-editor-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.algorithm-content-editor-heading h2{margin:5px 0 0;color:var(--text);font-size:clamp(24px,2.2vw,32px);line-height:1.15;letter-spacing:-.025em}.algorithm-content-editor .algorithm-access-dialog-close{position:static;flex:0 0 auto}.algorithm-content-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.algorithm-content-editor-grid label{display:grid;align-content:start;gap:8px;color:var(--text);font-size:15px;font-weight:400}.algorithm-content-editor-grid label.is-wide{grid-column:1 / -1}.algorithm-content-editor-grid textarea{min-height:118px;resize:vertical}.algorithm-content-editor-grid input,.algorithm-content-editor-grid textarea,.algorithm-content-asset-preview input{width:100%;min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--text);padding:12px 14px;font-size:17px;font-weight:400;line-height:1.5;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.algorithm-content-editor-grid input{min-height:48px}.algorithm-content-editor-grid input:hover,.algorithm-content-editor-grid textarea:hover,.algorithm-content-asset-preview input:hover{border-color:color-mix(in srgb,var(--primary) 42%,var(--line))}.algorithm-content-editor-grid input:focus,.algorithm-content-editor-grid textarea:focus,.algorithm-content-asset-preview input:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-soft)}.algorithm-content-editor-grid textarea.is-code{min-height:220px;background:color-mix(in srgb,var(--surface-strong) 82%,var(--background-deep));font:400 17px/1.65 JetBrains Mono,monospace;-moz-tab-size:2;tab-size:2}.algorithm-content-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.algorithm-content-assets>section{display:grid;align-content:start;gap:12px;min-height:154px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:18px}.algorithm-content-assets>section>strong{display:flex;align-items:center;gap:7px}.algorithm-content-assets p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.algorithm-content-assets .button{justify-self:start}.algorithm-content-asset-preview{display:grid;grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:10px}.algorithm-content-asset-preview img{width:100px;height:72px;border-radius:7px;object-fit:cover}.algorithm-content-file-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.algorithm-content-file-row>span{display:flex;align-items:center;min-width:0;gap:7px;overflow-wrap:anywhere;font-size:12px;font-weight:800}.algorithm-content-editor-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line);padding-top:20px}.algorithm-content-editor-actions .button{min-height:44px}.algorithm-content-reset{margin-left:auto;color:var(--danger)}.algorithm-lesson-media{display:grid;gap:8px;margin:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);padding:14px}.algorithm-lesson-media img{width:100%;max-height:520px;border-radius:calc(var(--radius) - 2px);object-fit:contain;background:var(--surface-strong)}.algorithm-lesson-media figcaption{color:var(--muted);font-size:12px;text-align:center}.algorithm-lesson-attachment{display:flex;align-items:center;justify-self:start;gap:11px;border:1px solid var(--primary);border-radius:var(--radius);background:var(--primary-soft);color:var(--primary);padding:11px 14px;text-decoration:none}.algorithm-lesson-attachment span{display:grid;gap:2px}.algorithm-lesson-attachment small{color:var(--muted)}.algorithm-learning-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.algorithm-principles{display:grid;gap:3px;margin:0;padding-left:24px;list-style:disc}.algorithm-principles li{padding-left:4px;color:var(--muted);font-size:16px;line-height:1.55}.algorithm-principles.is-detailed{gap:10px}.algorithm-principles.is-detailed li{max-width:980px;color:var(--text-subtle, var(--muted))}.algorithm-principles li::marker{color:var(--primary);font-size:1.15em}.algorithm-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.algorithm-code-grid--single{grid-template-columns:minmax(0,1fr)}.algorithm-code-grid>div{min-width:0}.algorithm-code-grid>div>strong{display:block;margin-bottom:8px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.algorithm-code-grid pre{min-height:210px;margin:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--background-deep);padding:16px;overflow:auto;color:var(--text);font:13px/1.7 JetBrains Mono,monospace;white-space:pre}.algorithm-demo-layout{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);gap:24px;align-items:start}.algorithm-demo-layout>div:first-child{display:grid;gap:18px}.algorithm-demo-input{display:grid;gap:7px}.algorithm-demo-input span{font-size:13px;font-weight:800}.algorithm-demo-input input,.algorithm-demo-input select,.algorithm-demo-input textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--text);padding:0 12px}.algorithm-demo-input textarea{min-height:92px;padding-top:10px;padding-bottom:10px;resize:vertical}.algorithm-demo-controls{display:flex;flex-wrap:wrap;gap:9px}.algorithm-demo-controls .button{flex:0 0 auto;padding-inline:12px;white-space:nowrap}.sorting-copy-button{margin-left:auto}.algorithm-demo-timeline{display:grid;gap:8px;margin:0;padding:0;list-style:none}.algorithm-demo-timeline li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;align-items:center;min-height:58px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:9px 12px;opacity:.64;transition:border-color .18s ease,background-color .18s ease,opacity .18s ease,transform .18s ease}.algorithm-demo-timeline li>span{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:var(--surface-higher);color:var(--muted);font-size:12px;font-weight:900}.algorithm-demo-timeline li div{display:grid;gap:3px}.algorithm-demo-timeline li small{color:var(--muted);font-family:JetBrains Mono,monospace}.algorithm-demo-timeline li.is-active,.algorithm-demo-timeline li.is-complete{opacity:1}.algorithm-demo-timeline li.is-active{border-color:var(--primary);background:var(--primary-soft);transform:translate(3px)}.algorithm-demo-timeline li.is-active>span,.algorithm-demo-timeline li.is-complete>span{background:var(--primary);color:var(--surface)}.branch-demo{display:grid;justify-items:center;gap:14px;padding:14px}.branch-demo>span{border:2px solid var(--line);background:var(--surface-strong);padding:12px 20px;font-weight:900;transform:rotate(-2deg)}.branch-demo>span.is-active{border-color:var(--primary);background:var(--primary-soft)}.branch-demo>div{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.branch-demo strong{border:1px solid var(--line);border-radius:var(--radius);padding:11px;color:var(--muted);font-size:12px;text-align:center}.branch-demo strong.is-selected{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.loop-demo{display:flex;flex-wrap:wrap;gap:8px}.loop-demo span{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--muted);font:800 13px/1 JetBrains Mono,monospace}.loop-demo span.is-active{border-color:var(--primary);background:var(--primary);color:var(--surface)}.while-demo,.accumulator-demo{display:grid;place-items:center;min-height:116px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.while-demo span,.accumulator-demo strong{color:var(--primary);font:800 42px/1 JetBrains Mono,monospace}.while-demo small,.accumulator-demo small{color:var(--muted)}.while-demo.is-finished{border-color:var(--primary);background:var(--primary-soft)}.algorithm-demo-input-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.validation-demo{display:flex;align-items:center;gap:10px;min-height:58px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--muted);padding:12px 14px}.validation-demo.is-valid{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.validation-demo.is-invalid{border-color:color-mix(in srgb,var(--danger) 55%,var(--line));background:color-mix(in srgb,var(--danger) 9%,var(--surface));color:var(--danger)}.function-demo{display:grid;grid-template-columns:1fr repeat(2,minmax(0,.85fr));gap:8px}.function-demo span{display:grid;place-items:center;min-height:52px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--muted);padding:8px;font:700 11px/1.35 JetBrains Mono,monospace;text-align:center;opacity:.62}.function-demo span.is-active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);opacity:1}.list-demo{display:flex;flex-wrap:wrap;gap:7px}.list-demo>span{display:grid;grid-template-rows:30px 14px;place-items:center;min-width:46px;border:1px solid var(--line);border-radius:9px;background:var(--surface-strong);color:var(--muted);overflow:hidden;transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}.list-demo>span strong{font:800 14px/1 JetBrains Mono,monospace}.list-demo>span small{align-self:stretch;width:100%;background:var(--surface-higher);padding-top:2px;font:700 9px/1 JetBrains Mono,monospace;text-align:center}.list-demo>span.is-visited{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.list-demo>span.is-match{background:var(--primary);color:var(--surface)}.list-demo>span.is-match small{background:color-mix(in srgb,var(--primary) 78%,#000);color:#fff}.sorting-bar-chart{display:flex;align-items:end;gap:7px;min-height:190px;border:1px solid var(--line);border-radius:var(--radius);background:repeating-linear-gradient(to top,transparent 0,transparent 39px,var(--line-soft) 40px),var(--surface-strong);padding:14px 12px 10px}.algorithm-demo-layout--sorting{grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);gap:28px}.sorting-visualization{min-width:0}.algorithm-demo-layout--sorting .sorting-bar-chart{gap:3px;min-height:260px;padding-inline:10px}.algorithm-demo-layout--sorting .sorting-bar-chart>span{grid-template-rows:minmax(172px,1fr) 22px;min-width:0;height:226px}.algorithm-demo-layout--sorting .sorting-bar-chart i{width:min(100%,28px)}.algorithm-demo-layout--sorting .sorting-bar-chart strong{font-size:9px}.sorting-status{display:grid;gap:4px;min-height:62px;border-left:3px solid var(--primary);border-radius:0 var(--radius) var(--radius) 0;background:var(--primary-soft);padding:10px 13px}.sorting-status small{color:var(--muted);font:12px/1.5 JetBrains Mono,monospace}.sorting-code{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--background-deep)}.sorting-code-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 16px}.sorting-code-heading span{font-size:13px;font-weight:900}.sorting-code-heading small,.algorithm-code-language-switch button{border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:4px 9px;font-weight:800}.algorithm-code-language-switch{display:inline-flex;align-items:center;gap:4px;border-radius:999px;background:var(--surface-strong);padding:3px}.algorithm-code-language-switch button{border:0;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:12px}.algorithm-code-language-switch button[aria-selected=true]{background:var(--primary-soft);color:var(--primary)}.algorithm-code-language-switch button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.sorting-code pre{margin:0;padding:12px 0;overflow-x:auto;color:var(--text);font:13px/1.85 JetBrains Mono,monospace}.sorting-code code,.sorting-code code>span{display:block}.sorting-code code>span{display:grid;grid-template-columns:42px max-content;min-width:max-content;border-left:3px solid transparent;padding-right:18px;transition:background-color .18s ease,border-color .18s ease}.sorting-code code>span.is-active{border-left-color:var(--primary);background:color-mix(in srgb,var(--primary) 16%,var(--background-deep))}.sorting-code code i{color:var(--muted);text-align:center;font-style:normal;-webkit-user-select:none;user-select:none}.sorting-code code b{font-weight:500;white-space:pre}.algorithm-execution-code{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.algorithm-execution-code pre{max-height:390px}.algorithm-execution-status{display:grid;gap:3px;border-top:1px solid var(--line);border-left:3px solid var(--primary);background:var(--primary-soft);padding:10px 13px}.algorithm-execution-status small{color:var(--muted);font:12px/1.5 JetBrains Mono,monospace}.sorting-bar-chart>span{display:grid;grid-template-rows:minmax(120px,1fr) 22px;align-items:end;justify-items:center;flex:1 1 0;min-width:24px;height:160px}.sorting-bar-chart i{width:min(100%,48px);min-height:8px;border-radius:6px 6px 2px 2px;background:color-mix(in srgb,var(--primary) 72%,var(--surface));transition:height .42s ease,background-color .18s ease,transform .18s ease}.sorting-bar-chart>span.is-active i{background:var(--primary);transform:translateY(-2px)}.sorting-bar-chart strong{color:var(--text);font:800 11px/1 JetBrains Mono,monospace}.occurrence-counter{display:flex;align-items:center;justify-content:space-between;min-height:56px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:9px 14px}.occurrence-counter small{color:var(--muted);font-weight:800}.occurrence-counter strong{color:var(--primary);font:800 28px/1 JetBrains Mono,monospace}.advanced-demo-result{display:grid;gap:4px;min-height:58px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:10px 14px}.advanced-demo-result small{color:var(--muted);font-weight:800}.advanced-demo-result strong{color:var(--primary);font:800 18px/1.35 JetBrains Mono,monospace;overflow-wrap:anywhere}.binary-search-demo>span.is-outside{opacity:.28;transform:scale(.92)}.dictionary-demo{display:grid;gap:7px}.dictionary-demo>span{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:9px 11px}.dictionary-demo>span strong{color:var(--primary);font:800 12px/1 JetBrains Mono,monospace}.dictionary-demo>span small{color:var(--muted)}.dictionary-demo>span.is-match{border-color:var(--primary);background:var(--primary-soft)}.text-window-demo{min-height:54px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--text);padding:15px;font:700 14px/1.6 JetBrains Mono,monospace;overflow-wrap:anywhere}.text-window-demo--center{text-align:center;letter-spacing:.08em}.text-window-demo mark{border-radius:4px;background:color-mix(in srgb,var(--warning) 28%,transparent);color:var(--text);padding:2px}.text-window-demo mark.is-match{background:var(--primary);color:#fff}.password-rules-demo{display:grid;gap:7px}.password-rules-demo span{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--muted);padding:9px 11px;font-size:12px;font-weight:800}.password-rules-demo span.is-checked{border-color:var(--danger);color:var(--danger)}.password-rules-demo span.is-valid{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.parsed-table-demo{display:grid;gap:5px}.parsed-table-demo>span{display:grid;grid-template-columns:1fr 70px 70px;gap:8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);padding:8px 10px}.parsed-table-demo>span strong,.parsed-table-demo>span small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parsed-table-demo>span small{color:var(--muted)}.parsed-table-demo>span.is-invalid{border-color:var(--danger)}.parsed-table-demo>span.is-match{border-color:var(--primary);background:var(--primary-soft)}.parsed-table-demo--wide>span{grid-template-columns:minmax(110px,1fr) 90px minmax(120px,1fr)}.parsed-table-demo>small{color:var(--muted)}.frequency-demo{display:flex;flex-wrap:wrap;gap:7px;min-height:48px;align-content:flex-start}.frequency-demo>span{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;background:var(--surface-strong);padding:7px 10px}.frequency-demo>span small{color:var(--primary);font-weight:900}.frequency-demo>small{color:var(--muted)}.matrix-demo{display:grid;grid-template-columns:repeat(3,54px);gap:6px}.matrix-demo>span{display:grid;place-items:center;height:54px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--muted);font:800 14px/1 JetBrains Mono,monospace}.matrix-demo>span small{color:var(--muted);font-size:8px}.matrix-demo>span.is-visited{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.matrix-demo>span.is-origin{border-color:var(--warning);background:color-mix(in srgb,var(--warning) 16%,var(--surface));color:var(--warning)}.matrix-demo>span.is-neighbor,.matrix-demo>span.is-match{border-color:var(--primary);background:var(--primary);color:#fff}.matrix-demo>span.is-neighbor small,.matrix-demo>span.is-match small{color:#ffffffc7}.matrix-demo>span.is-robot{border-color:var(--primary);background:var(--primary);color:#fff;font-size:22px;box-shadow:0 8px 18px var(--primary-soft)}.recursion-stack{display:flex;min-height:54px;flex-direction:column-reverse;gap:4px}.recursion-stack span{border:1px solid var(--primary);border-radius:6px;background:var(--primary-soft);color:var(--primary);padding:7px 10px;font:700 11px/1.2 JetBrains Mono,monospace;text-align:center}.recursion-stack small{color:var(--muted)}.algorithm-demo-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tree-demo{display:grid;grid-template-columns:repeat(4,46px);justify-content:center;gap:18px 22px;padding:14px}.tree-demo span{display:grid;place-items:center;width:46px;height:46px;border:2px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-weight:900}.tree-demo span:nth-child(1){grid-column:2 / 4;justify-self:center}.tree-demo span:nth-child(2){grid-column:1 / 3;justify-self:center}.tree-demo span:nth-child(3){grid-column:3 / 5;justify-self:center}.tree-demo span:nth-child(4){grid-column:1}.tree-demo span:nth-child(5){grid-column:2}.tree-demo span:nth-child(6){grid-column:4}.tree-demo span.is-visited{border-color:var(--primary);background:var(--primary);color:var(--surface)}.state-machine-demo{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.state-machine-demo span{display:grid;place-items:center;min-height:52px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--muted);font-size:11px;font-weight:900;opacity:.42}.state-machine-demo span.is-active{opacity:1;transform:translateY(-2px)}.state-machine-demo span.is-červená{border-color:#c75f62;background:#c75f6224;color:#c75f62}.state-machine-demo span.is-zelená{border-color:#2f9b78;background:#2f9b7824;color:#2f9b78}.state-machine-demo span.is-oranžová{border-color:var(--warning);background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning)}.graph-demo{display:grid;grid-template-columns:repeat(3,46px);justify-content:center;gap:18px 30px;padding:14px}.graph-demo span{position:relative;z-index:1;display:grid;place-items:center;width:46px;height:46px;border:2px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-weight:900}.graph-demo span.is-visited{border-color:var(--primary);background:var(--primary);color:var(--surface)}.graph-demo span small{font:800 9px/1 JetBrains Mono,monospace}.graph-representation-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.graph-representation-layout>section{display:grid;align-content:start;gap:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:12px}.graph-representation-layout>section>strong,.weighted-graph-legend{color:var(--muted);font-size:12px;font-weight:900}.graph-adjacency-list{display:grid;gap:5px}.graph-adjacency-list span{display:grid;grid-template-columns:28px 1fr;align-items:center;min-height:32px;border-radius:7px;background:var(--surface-higher);color:var(--muted);opacity:.42}.graph-adjacency-list span.is-visible{color:var(--text);opacity:1}.graph-adjacency-list b{text-align:center}.graph-adjacency-list small{font:700 11px/1.3 JetBrains Mono,monospace}.adjacency-matrix-demo{display:grid;grid-template-columns:repeat(5,28px);justify-content:center;gap:4px}.adjacency-matrix-demo>b,.adjacency-matrix-demo>span{display:grid;place-items:center;width:28px;height:28px;border-radius:5px;font:800 11px/1 JetBrains Mono,monospace}.adjacency-matrix-demo>b{color:var(--primary)}.adjacency-matrix-demo>span:not(:first-child){background:var(--surface-higher);color:var(--muted);opacity:.35}.adjacency-matrix-demo>span.is-visible{background:var(--primary-soft);color:var(--primary);opacity:1}.weighted-graph-legend{border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:10px 12px;text-align:center}.graph-demo--weighted{grid-template-columns:repeat(4,52px)}.graph-demo--weighted span{display:flex;flex-direction:column;width:52px;height:52px;line-height:1}.graph-demo--weighted span small{margin-top:4px;font:800 10px/1 JetBrains Mono,monospace}.dependency-demo{display:flex;align-items:center;justify-content:center;gap:7px;min-height:84px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:12px}.dependency-demo span{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:9px 11px;color:var(--muted);font-weight:900}.dependency-demo span.is-visited{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.dependency-demo>small{color:var(--muted);font-weight:900}.dependency-demo>small.is-cycle{color:var(--danger)}.dependency-demo--wrap{flex-wrap:wrap}.dependency-demo span.is-solution{border-color:var(--secondary);background:color-mix(in srgb,var(--secondary) 14%,var(--surface));color:var(--secondary)}.dependency-demo span.is-eliminated{border-color:var(--line);background:var(--surface-higher);color:var(--muted);opacity:.45;text-decoration:line-through}.dependency-demo span>small{font:800 9px/1 JetBrains Mono,monospace}.gaussian-matrix-demo{display:grid;grid-template-columns:repeat(3,64px);justify-content:center;gap:7px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:18px}.gaussian-matrix-demo span{display:grid;place-items:center;height:42px;border-radius:7px;background:var(--surface-higher);color:var(--text);font:800 14px/1 JetBrains Mono,monospace}.gaussian-matrix-demo span.is-result{border-left:2px solid var(--primary);color:var(--primary)}.astar-grid{display:grid;grid-template-columns:repeat(5,44px);justify-content:center;gap:4px;padding:12px}.astar-grid span{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);font-weight:900}.astar-grid span.is-obstacle{border-color:var(--text);background:var(--text)}.astar-grid span.is-expanded{border-color:var(--warning);background:color-mix(in srgb,var(--warning) 18%,var(--surface))}.astar-grid span.is-path{border-color:var(--primary);background:var(--primary);color:var(--surface)}.attention-matrix-demo{display:grid;grid-template-columns:minmax(70px,1fr) repeat(3,minmax(58px,1fr));gap:5px;overflow-x:auto}.attention-matrix-demo>b,.attention-matrix-demo>span{display:grid;place-items:center;min-height:42px;border-radius:6px;padding:5px;text-align:center;font-size:10px}.attention-matrix-demo>b{color:var(--primary)}.attention-matrix-demo>span:not(:first-child){border:1px solid var(--line);background:var(--surface-higher);color:var(--muted)}.attention-matrix-demo>span.is-visible{border-color:var(--primary);background:var(--primary-soft);color:var(--text);font-weight:900}.schedule-demo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:12px}.schedule-demo>span{display:grid;gap:7px;min-height:72px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:10px}.schedule-demo small{color:var(--muted);font-size:10px;font-weight:800}.schedule-demo strong{align-self:end;color:var(--primary)}.schedule-demo.has-conflict{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface))}.schedule-demo.has-conflict strong{color:var(--danger)}.algorithm-cycle-toggle{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:var(--text);font-size:13px;font-weight:800}.algorithm-cycle-toggle input{width:17px;height:17px;accent-color:var(--primary)}.dependency-demo+.validation-demo{margin-top:10px}.collision-demo{display:grid;gap:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);padding:12px}.collision-demo>div{position:relative;height:30px;border-radius:6px;background:var(--surface-higher);overflow:hidden}.collision-demo>div span{position:absolute;top:3px;display:grid;place-items:center;height:24px;border-radius:5px;background:var(--primary);color:#fff;font:800 11px/1 JetBrains Mono,monospace}.collision-demo>div+div span{background:var(--warning)}.collision-demo.has-collision{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface))}@media(max-width:1180px){.algorithm-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.algorithm-learning-grid{grid-template-columns:1fr}}@media(max-width:800px){.algorithm-lesson-hero{align-items:flex-start}.algorithm-access-row,.algorithm-demo-layout,.algorithm-code-grid,.algorithm-content-assets,.algorithm-content-editor-grid{grid-template-columns:1fr}.algorithm-content-editor-grid label.is-wide{grid-column:auto}.algorithm-access-toolbar,.algorithm-access-summary{align-items:stretch;flex-direction:column}.algorithm-access-grade-tabs{overflow-x:auto;padding-bottom:3px}.algorithm-access-search{width:100%}.algorithm-code-grid pre{min-height:0}.algorithm-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.algorithm-demo-layout--sorting{grid-template-columns:1fr}}@media(max-width:560px){.algorithm-lesson-hero{display:grid}.algorithm-list-heading{align-items:flex-start;flex-direction:column}.algorithm-list-actions{width:100%}.algorithm-list-actions .button{flex:1}.algorithm-access-dialog-backdrop{align-items:end;padding:10px}.algorithm-access-dialog{max-height:calc(100vh - 20px)}.algorithm-card-grid{grid-template-columns:1fr}.algorithm-card{min-height:230px}.algorithm-access-switch{min-width:0}.algorithm-lesson-toolbar{align-items:flex-start;flex-direction:column}.algorithm-content-asset-preview{grid-template-columns:1fr}.algorithm-content-reset{margin-left:0}.algorithm-demo-input-row,.function-demo{grid-template-columns:1fr}.sorting-copy-button{width:100%;margin-left:0}}.scratch-classic-workbench{position:relative;z-index:1;display:grid;grid-template-columns:minmax(680px,1fr) minmax(350px,410px);gap:8px;height:var(--scratch-workbench-height, max(660px, calc(100dvh - 230px) ));min-height:660px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--background-deep);box-shadow:var(--shadow-card)}.scratch-export-bar{border-color:var(--line)}.scratch-classic-workbench:not(.is-testing){grid-template-columns:minmax(0,1fr)}.editor-page--scratch:fullscreen,.editor-page--scratch.is-app-fullscreen{grid-template-rows:auto minmax(0,1fr);align-content:stretch}.editor-page--scratch:fullscreen .scratch-classic-workbench,.editor-page--scratch.is-app-fullscreen .scratch-classic-workbench{height:100%;min-height:0}.scratch-classic-editor{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;overflow:hidden;background:var(--surface)}.scratch-mode-tabs{display:flex;align-items:end;gap:3px;min-height:46px;border-bottom:1px solid var(--line);background:var(--surface-high);padding:5px 8px 0}.scratch-mode-tabs button{display:inline-flex;align-items:center;gap:7px;min-height:40px;border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;background:transparent;color:var(--muted);padding:0 14px;font-weight:900}.scratch-mode-tabs button.is-active{border-color:var(--line);background:var(--surface);color:var(--primary)}.scratch-mode-tabs .scratch-test-toggle{align-self:center;margin:0 2px 5px auto;min-height:34px;border:1px solid var(--primary);border-radius:8px;background:var(--primary-soft);color:var(--primary)}.scratch-mode-tabs .scratch-test-toggle.is-active{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.scratch-code-layout{display:grid;grid-template-columns:86px 225px minmax(360px,1fr);min-width:0;min-height:0;overflow:hidden}.scratch-category-rail{display:grid;align-content:start;gap:2px;overflow-y:auto;border-right:1px solid var(--line);background:var(--surface);padding:8px 4px}.scratch-category-rail button{display:grid;justify-items:center;gap:4px;min-height:58px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);padding:5px 2px;font-size:9px;font-weight:900}.scratch-category-rail button i{width:18px;height:18px;border:3px solid var(--surface);border-radius:999px;background:var(--scratch-category-color);box-shadow:0 0 0 1px color-mix(in srgb,var(--scratch-category-color) 72%,var(--line))}.scratch-category-rail button.is-active{border-color:var(--line);background:var(--primary-soft);color:var(--text)}.scratch-category-rail button.is-active i{box-shadow:0 0 0 2px var(--scratch-category-color)}.scratch-block-flyout{display:grid;align-content:start;gap:9px;min-width:0;overflow-y:auto;border-right:1px solid var(--line);background:var(--surface-strong);padding:14px 11px}.scratch-block-flyout-heading{display:grid;gap:3px;margin-bottom:3px}.scratch-block-flyout-heading strong{color:var(--text);font-size:15px}.scratch-block-flyout-heading small{color:var(--muted);font-size:9px}.scratch-block-flyout .scratch-palette-block{display:flex;align-items:center;flex-wrap:wrap;gap:5px;width:fit-content;max-width:100%;min-height:36px;border:1px solid color-mix(in srgb,var(--scratch-block-color) 78%,#1f304c);border-radius:6px;background:var(--scratch-block-color);box-shadow:inset 0 -2px #00000021;color:#fff;padding:7px 9px;font-size:10px;font-weight:900}.scratch-block-flyout .scratch-palette-block:hover{filter:brightness(1.06);transform:translateY(-1px)}.scratch-block-flyout .scratch-palette-block em{max-width:70px;overflow:hidden;border-radius:999px;background:#fffffff0;color:#33445e;padding:3px 6px;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.scratch-block-flyout .scratch-palette-block--event{border-radius:15px 15px 6px 6px;cursor:default}.scratch-flyout-empty{border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);padding:14px 10px;font-size:10px;line-height:1.45}.scratch-script-canvas{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;overflow:hidden;background-color:var(--background);background-image:radial-gradient(circle,color-mix(in srgb,var(--primary) 24%,transparent) 1px,transparent 1.2px);background-size:20px 20px}.scratch-canvas-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);padding:9px 13px}.scratch-canvas-heading span{display:inline-flex;align-items:center;gap:7px;color:var(--text);font-size:11px;font-weight:900}.scratch-canvas-heading small{color:var(--muted);font-weight:800}.scratch-canvas-scroll{min-width:0;min-height:0;overflow:auto;padding:64px 70px 120px}.scratch-script-stack{display:grid;justify-items:start;width:max-content;min-width:270px;transform:scale(var(--scratch-script-zoom));transform-origin:top left}.scratch-event-hat{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;min-height:44px;border:1px solid #d99f00;border-radius:22px 22px 6px 6px;background:#ffbf00;box-shadow:inset 0 -2px #00000024;color:#493900;padding:8px 16px 8px 12px;font-size:12px}.scratch-classic-editor .scratch-script-block{position:relative;z-index:1;display:block;width:fit-content;max-width:560px;min-width:235px;margin-top:-1px;border:1px solid color-mix(in srgb,var(--scratch-block-color) 78%,#1f304c);border-left:1px solid color-mix(in srgb,var(--scratch-block-color) 78%,#1f304c);border-radius:6px;background:var(--scratch-block-color);box-shadow:inset 0 -2px #00000024;color:#fff;cursor:grab;padding:6px 7px}.scratch-classic-editor .scratch-script-block:before{position:absolute;top:-1px;left:28px;width:34px;height:5px;border-radius:0 0 6px 6px;background:color-mix(in srgb,var(--scratch-block-color) 82%,#20304a);content:""}.scratch-classic-editor .scratch-script-block.is-active{border-color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--warning) 70%,transparent),inset 0 -2px #00000024;transform:none}.scratch-classic-editor .scratch-script-block.is-dragging{cursor:grabbing;opacity:.55}.scratch-classic-editor .scratch-script-block-heading{display:flex;align-items:center;gap:7px}.scratch-classic-editor .scratch-block-grip{flex:0 0 auto;opacity:.62}.scratch-classic-editor .scratch-script-block-heading strong{flex:0 0 auto;color:#fff;font-size:11px;white-space:nowrap}.scratch-classic-editor .scratch-block-fields{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.scratch-classic-editor .scratch-block-fields label{display:inline-flex;align-items:center;gap:3px;color:#ffffffe0;font-size:9px}.scratch-classic-editor .scratch-block-fields input,.scratch-classic-editor .scratch-block-fields select{width:62px;min-height:24px;border:1px solid rgba(31,48,76,.22);border-radius:999px;background:#fff;color:#33445e;padding:2px 7px;font-size:10px;font-weight:800}.scratch-classic-editor .scratch-block-fields select{width:auto;max-width:150px;cursor:pointer}.scratch-classic-editor .scratch-block-fields input[type=text]{width:130px}.scratch-classic-editor .scratch-block-fields input[type=color]{width:32px;padding:2px}.scratch-classic-editor .scratch-script-block-actions{display:flex;gap:2px;margin-left:auto;opacity:0;transition:opacity .12s ease}.scratch-classic-editor .scratch-script-block:hover .scratch-script-block-actions,.scratch-classic-editor .scratch-script-block:focus-within .scratch-script-block-actions{opacity:1}.scratch-classic-editor .scratch-script-block-actions button{width:23px;height:23px;border:0;background:#1f304c2e;color:#fff}.scratch-classic-editor .scratch-empty-state{min-width:280px;min-height:110px;margin-top:12px;border-color:var(--line);background:color-mix(in srgb,var(--surface) 82%,transparent)}.scratch-canvas-controls{position:absolute;z-index:4;left:14px;bottom:14px;display:grid;gap:5px}.scratch-canvas-controls button{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--primary);box-shadow:var(--shadow-card)}.scratch-asset-editor{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:0;overflow:hidden}.scratch-asset-sidebar{display:grid;align-content:start;gap:8px;overflow-y:auto;border-right:1px solid var(--line);background:var(--surface-strong);padding:12px}.scratch-asset-sidebar button{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--primary);padding:11px;text-align:left}.scratch-asset-sidebar button.is-active{border-color:var(--primary);background:var(--primary-soft)}.scratch-asset-sidebar button span{display:grid;gap:3px}.scratch-asset-sidebar small{color:var(--muted)}.scratch-costume-canvas,.scratch-sound-placeholder{display:grid;align-content:center;justify-items:center;gap:18px;overflow:auto;background-color:var(--background);background-image:linear-gradient(45deg,var(--surface-high) 25%,transparent 25%),linear-gradient(-45deg,var(--surface-high) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--surface-high) 75%),linear-gradient(-45deg,transparent 75%,var(--surface-high) 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;padding:30px}.scratch-costume-preview{color:var(--scratch-costume-color);filter:drop-shadow(0 18px 22px rgba(31,48,76,.2))}.scratch-costume-canvas label{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:8px 12px;font-size:11px;font-weight:900}.scratch-sound-placeholder{background:var(--background);color:var(--muted);text-align:center}.scratch-sound-placeholder h3,.scratch-sound-placeholder p{margin:0}.scratch-sound-placeholder p{max-width:360px;line-height:1.6}.scratch-classic-stage-panel{display:grid;grid-template-rows:auto auto auto minmax(130px,1fr) auto;align-content:start;min-width:0;min-height:0;overflow:hidden;border-left:1px solid var(--line);background:var(--surface-high)}.scratch-classic-stage-panel .scratch-stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;border-bottom:1px solid var(--line);background:var(--surface);padding:5px 9px}.scratch-run-controls{display:flex;align-items:center;gap:5px}.scratch-run-controls button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:999px;background:transparent}.scratch-run-controls button.is-flag{color:#2f9b78}.scratch-run-controls button.is-stop{color:var(--danger)}.scratch-run-controls button:hover:not(:disabled){background:var(--surface-high)}.scratch-run-controls button:disabled{opacity:.35}.scratch-classic-stage-wrap{background:var(--surface);padding:8px}.scratch-classic-stage{width:100%;min-height:0;aspect-ratio:4 / 3;border-color:var(--line);border-radius:5px}.scratch-sprite-properties{display:grid;grid-template-columns:minmax(110px,1.6fr) repeat(4,minmax(48px,.72fr));gap:5px;border-block:1px solid var(--line);background:var(--surface);padding:8px}.scratch-sprite-properties label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px;min-width:0;color:var(--muted);font-size:9px;font-weight:900}.scratch-sprite-properties label.is-name{grid-template-columns:1fr}.scratch-sprite-properties input{min-width:0;min-height:28px;border:1px solid var(--line);border-radius:999px;background:var(--surface-strong);padding:3px 7px;font-size:10px}.scratch-target-pane{display:grid;grid-template-columns:minmax(0,1fr) 76px;min-height:0;overflow:hidden;background:var(--surface-high)}.scratch-target-list{display:flex;align-content:start;gap:8px;overflow:auto;padding:9px}.scratch-target-card,.scratch-backdrop-card{display:grid;justify-items:center;align-content:center;gap:5px;min-width:82px;min-height:78px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:6px;font-size:9px}.scratch-target-card.is-active{border:2px solid var(--primary);background:var(--primary-soft)}.scratch-target-thumbnail{display:grid;width:45px;height:42px;place-items:center;border-radius:7px;background:var(--surface-strong);color:var(--scratch-thumbnail-color)}.scratch-backdrop-card{min-width:0;border-radius:0}.scratch-backdrop-card>span{display:grid;width:42px;height:42px;place-items:center;border-radius:7px;background:var(--surface-strong);color:var(--primary)}.scratch-backdrop-card input{width:34px;height:22px;padding:1px}.scratch-classic-log{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);background:var(--surface);padding:7px 10px;color:var(--muted);font-size:9px}.scratch-classic-log strong{color:var(--primary)}@media(max-width:1400px){.scratch-classic-workbench{grid-template-columns:minmax(620px,1fr) 360px}.scratch-code-layout{grid-template-columns:76px 195px minmax(330px,1fr)}.scratch-canvas-scroll{padding-inline:42px}}@media(max-width:1100px){.scratch-classic-workbench{grid-template-columns:1fr;height:auto;min-height:0;overflow:visible}.scratch-classic-editor{min-height:650px}.scratch-classic-stage-panel{min-height:690px;border-top:1px solid var(--line);border-left:0}.scratch-classic-stage-wrap{justify-self:center;width:min(100%,520px)}}@media(max-width:720px){.scratch-mode-tabs button{flex:1;justify-content:center;padding-inline:6px}.scratch-code-layout{grid-template-columns:1fr;grid-template-rows:auto 180px minmax(420px,1fr);overflow:visible}.scratch-category-rail{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.scratch-category-rail button{flex:0 0 72px}.scratch-block-flyout{display:flex;align-items:flex-start;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.scratch-block-flyout-heading{flex:0 0 130px}.scratch-block-flyout .scratch-palette-block{flex:0 0 auto}.scratch-asset-editor{grid-template-columns:1fr}.scratch-asset-sidebar{display:flex;border-right:0;border-bottom:1px solid var(--line)}.scratch-sprite-properties{grid-template-columns:repeat(2,minmax(0,1fr))}.scratch-sprite-properties label.is-name{grid-column:1 / -1}}.curriculum-page{display:grid;gap:28px}.curriculum-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.curriculum-hero h1{margin:4px 0 8px;color:var(--text);font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.curriculum-hero p{max-width:820px;margin:0;color:var(--muted);font-size:var(--page-subtitle-size);line-height:1.35}.student-curriculum-hint p{margin:6px 0 0}.curriculum-hero-status,.student-curriculum-hint{align-items:center;display:flex;gap:12px}.curriculum-hero-status{flex:0 0 auto;padding-bottom:4px;color:var(--text);font-size:1rem;font-weight:700}.curriculum-hero-status svg{color:var(--primary)}.curriculum-page .curriculum-metrics-row{grid-template-columns:repeat(6,minmax(150px,1fr));overflow-x:auto;padding-bottom:2px}.curriculum-toolbar{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(220px,1.5fr) repeat(6,minmax(120px,1fr)) auto}.curriculum-toolbar select,.curriculum-search input{min-height:42px}.curriculum-search{align-items:center;display:flex;gap:8px}.curriculum-search input{width:100%}.curriculum-view-toggle,.curriculum-editor-tabs{display:flex;gap:6px}.curriculum-view-toggle button,.curriculum-editor-tabs button{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--text);display:inline-flex;gap:6px;min-height:38px;padding:0 12px}.curriculum-view-toggle button.is-active,.curriculum-editor-tabs button.is-active{border-color:var(--primary);color:var(--primary);font-weight:800}.curriculum-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) minmax(280px,360px)}.curriculum-sidebar{display:grid;gap:18px}.curriculum-tree{display:grid;gap:12px}.curriculum-tree-node{border-left:3px solid var(--line);display:grid;gap:8px;padding-left:12px}.curriculum-tree-node>button,.curriculum-orphan-row,.curriculum-table-row,.curriculum-mini-list button,.curriculum-inline-list button,.curriculum-gap-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--text);text-align:left}.curriculum-tree-node>button,.curriculum-mini-list button,.curriculum-inline-list button{align-items:center;display:flex;gap:10px;min-height:44px;padding:10px 12px}.curriculum-tree-node>button span,.curriculum-mini-list button span{display:grid;gap:2px}.curriculum-tree-children{display:grid;gap:8px;margin-left:18px}.curriculum-tree-node--rvp{border-left-color:#2563eb}.curriculum-tree-node--svp{border-left-color:#16a34a}.curriculum-tree-node--unit{border-left-color:#d97706}.curriculum-tree-node--activity{border-left-color:#7c3aed}.curriculum-tree-evidence{display:flex;flex-wrap:wrap;gap:6px;margin-left:18px}.curriculum-mini-gap{color:var(--muted);font-size:.9rem;padding:8px 0}.curriculum-evidence-chip{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--text);display:inline-flex;gap:6px;padding:6px 10px}.curriculum-evidence-chip.is-verified{border-color:#16a34a;color:#166534}.curriculum-table{display:grid;gap:8px}.curriculum-table-head,.curriculum-table-row{display:grid;gap:10px;grid-template-columns:.7fr .7fr 1.2fr 1.4fr .8fr;padding:10px 12px}.curriculum-table-head{color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.curriculum-table-row small{color:var(--muted);display:block;margin-top:2px}.curriculum-detail-empty,.curriculum-detail,.curriculum-gap-list,.curriculum-mini-list,.curriculum-inline-list{display:grid;gap:10px}.curriculum-detail h2{margin:0}.curriculum-detail dl{display:grid;gap:8px;margin:0}.curriculum-detail dl div{display:flex;gap:12px;justify-content:space-between}.curriculum-detail dt{color:var(--muted)}.curriculum-detail dd{margin:0;text-align:right}.curriculum-detail-chain{color:var(--muted);display:grid;gap:6px}.curriculum-gap-row{display:grid;gap:4px;padding:10px 12px}.curriculum-gap-row--critical{border-color:#dc2626}.curriculum-gap-row--high{border-color:#d97706}.curriculum-gap-row--medium{border-color:#2563eb}.curriculum-gap-row span{color:var(--muted);font-size:.9rem}.curriculum-editor{display:grid;gap:16px}.curriculum-editor-grid{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}.curriculum-mini-list,.curriculum-inline-list{max-height:420px;overflow:auto}.curriculum-inline-list{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-top:12px}.student-curriculum-hint{margin-bottom:14px}.curriculum-page{width:min(100%,1500px);margin:0 auto;gap:24px}.curriculum-page .curriculum-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,360px);align-items:center;min-height:260px;overflow:hidden;border:1px solid color-mix(in srgb,var(--primary) 20%,var(--line));border-radius:20px;background:radial-gradient(circle at 86% 12%,color-mix(in srgb,var(--primary) 15%,transparent),transparent 33%),linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--primary) 5%,var(--surface-strong)));box-shadow:0 24px 60px #4f77aa1c;padding:clamp(26px,4vw,48px)}.curriculum-page .curriculum-hero:after{position:absolute;z-index:-1;right:-90px;bottom:-145px;width:330px;height:330px;border:1px solid color-mix(in srgb,var(--primary) 12%,transparent);border-radius:50%;content:""}.curriculum-hero-copy{display:grid;gap:18px}.curriculum-hero-title{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:18px}.curriculum-hero-icon,.curriculum-overview-icon,.curriculum-tab-icon,.curriculum-form-heading>span{display:inline-grid;place-items:center;flex:0 0 auto;border-radius:12px;background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary)}.curriculum-hero-icon{width:58px;height:58px;border:1px solid color-mix(in srgb,var(--primary) 14%,var(--line))}.curriculum-page .curriculum-hero h1{margin:0 0 7px}.curriculum-page .curriculum-hero p{max-width:720px;font-size:clamp(16px,1.25vw,19px);line-height:1.55}.curriculum-hero-badges{display:flex;flex-wrap:wrap;gap:9px;padding-left:76px}.curriculum-hero-badges span,.curriculum-workspace-status{display:inline-flex;align-items:center;gap:8px;width:fit-content;border:1px solid color-mix(in srgb,var(--primary) 14%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--muted);padding:8px 12px;font-size:13px;font-weight:750}.curriculum-hero-badges svg,.curriculum-workspace-status svg{color:var(--primary)}.curriculum-progress-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:var(--shadow-card);padding:20px}.curriculum-progress-ring{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:conic-gradient(var(--primary) var(--curriculum-progress),var(--surface-higher) 0)}.curriculum-progress-ring:before{grid-area:1 / 1;width:72px;height:72px;border-radius:50%;background:var(--surface);content:""}.curriculum-progress-ring>span{z-index:1;grid-area:1 / 1;display:grid;text-align:center}.curriculum-progress-ring strong{color:var(--text);font-size:21px;line-height:1}.curriculum-progress-ring small{margin-top:4px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.curriculum-progress-card>div:last-child{display:grid;gap:5px}.curriculum-progress-label{color:var(--primary);font-size:12px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.curriculum-progress-card>div:last-child>strong{color:var(--text);font-size:21px}.curriculum-progress-card>div:last-child>small{color:var(--muted);line-height:1.45}.curriculum-overview{display:grid;grid-template-columns:minmax(0,1.75fr) repeat(2,minmax(220px,.7fr));gap:14px}.curriculum-overview-card{min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-card);color:var(--text);padding:20px}.curriculum-overview-card--map{display:grid;gap:18px}.curriculum-overview-heading{display:flex;align-items:center;gap:12px}.curriculum-overview-icon{width:42px;height:42px}.curriculum-overview-heading small,.curriculum-overview-card--action small,.curriculum-form-heading small,.curriculum-existing-heading small{display:block;margin-bottom:3px;color:var(--primary);font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.curriculum-overview-heading h2{margin:0;font-size:18px}.curriculum-chain{display:grid;grid-template-columns:repeat(2,minmax(0,1fr) auto) minmax(0,1fr);align-items:center;gap:9px}.curriculum-chain>svg{color:var(--primary);opacity:.72}.curriculum-chain button{display:grid;grid-template-columns:1fr auto;align-items:end;gap:1px 8px;min-width:0;border:1px solid var(--line);border-radius:11px;background:var(--surface-strong);color:var(--text);padding:12px;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.curriculum-chain button:hover{border-color:var(--primary);background:var(--primary-soft);transform:translateY(-1px)}.curriculum-chain button small{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.curriculum-chain button strong{grid-row:1 / 3;grid-column:2;font-size:26px;line-height:1}.curriculum-chain button span{overflow:hidden;color:var(--primary);font-size:11px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}button.curriculum-overview-card--action{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;font:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}button.curriculum-overview-card--action:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:0 18px 38px #4f77aa26;transform:translateY(-2px)}.curriculum-overview-card--action>span:nth-child(2){display:grid}.curriculum-overview-card--action strong{margin:2px 0;font-size:32px;line-height:1}.curriculum-overview-card--action b{color:var(--muted);font-size:12px;font-weight:700;line-height:1.4}.curriculum-overview-card--action>svg{color:var(--primary)}.curriculum-overview-card--action.is-warning .curriculum-overview-icon{background:color-mix(in srgb,var(--warning) 14%,var(--surface));color:var(--warning)}.curriculum-overview-card--action.is-complete .curriculum-overview-icon{background:color-mix(in srgb,var(--success) 14%,var(--surface));color:var(--success)}.curriculum-page .form-success,.curriculum-page .form-error{margin:0;border-radius:12px}.curriculum-page .curriculum-editor{gap:0;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 24px 60px #4f77aa1a}.curriculum-workspace-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:28px 30px 24px}.curriculum-workspace-heading h2{margin:4px 0 6px;color:var(--text);font-size:clamp(23px,2vw,30px);letter-spacing:-.025em}.curriculum-workspace-heading p{margin:0;color:var(--muted);line-height:1.5}.curriculum-workspace-status{flex:0 0 auto;background:var(--primary-soft);color:var(--text)}.curriculum-page .curriculum-editor-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-strong);padding:12px}.curriculum-page .curriculum-editor-tabs button{position:relative;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;min-height:76px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--muted);padding:10px;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,color .16s ease}.curriculum-page .curriculum-editor-tabs button:hover{border-color:var(--line);background:var(--surface);color:var(--text)}.curriculum-page .curriculum-editor-tabs button.is-active{border-color:color-mix(in srgb,var(--primary) 34%,var(--line));background:var(--surface);box-shadow:0 8px 20px #4f77aa1a;color:var(--text)}.curriculum-page .curriculum-editor-tabs button.is-active:after{position:absolute;right:11px;bottom:-1px;left:11px;height:3px;border-radius:3px 3px 0 0;background:var(--primary);content:""}.curriculum-tab-index{color:color-mix(in srgb,var(--muted) 65%,transparent);font-size:10px;font-weight:850}.curriculum-tab-icon{width:36px;height:36px;border-radius:10px}.curriculum-tab-copy{display:grid;min-width:0;gap:3px}.curriculum-tab-copy strong{overflow:hidden;color:inherit;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.curriculum-tab-copy small{overflow:hidden;color:var(--muted);font-size:10px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.curriculum-tab-count{display:grid;place-items:center;min-width:26px;height:26px;border-radius:999px;background:var(--surface-higher);color:var(--primary);font-size:11px;font-weight:850}.curriculum-editor-surface{background:var(--surface-strong);padding:clamp(18px,2.5vw,30px)}.curriculum-page .curriculum-editor-grid{gap:18px;grid-template-columns:minmax(0,1fr) minmax(270px,340px)}.curriculum-page .management-form{width:100%;max-width:none;border-radius:15px;box-shadow:none;padding:clamp(20px,2.5vw,28px)}.curriculum-page .management-form>label,.curriculum-page .management-form>.form-grid{min-width:0}.curriculum-page .management-form label{gap:7px;color:var(--text);font-size:13px;font-weight:800}.curriculum-page .management-form input,.curriculum-page .management-form select{min-height:46px;border-radius:9px;background:var(--surface-strong)}.curriculum-page .management-form input:focus,.curriculum-page .management-form select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.curriculum-form-heading{display:flex;align-items:flex-start;gap:14px;border-bottom:1px solid var(--line);padding-bottom:18px}.curriculum-form-heading>span{width:45px;height:45px}.curriculum-form-heading h2{margin:1px 0 4px;color:var(--text);font-size:21px}.curriculum-form-heading p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.curriculum-page .form-submit{min-height:44px;border-radius:9px;padding-inline:18px}.curriculum-existing-panel{display:grid;align-content:start;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.curriculum-existing-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:18px}.curriculum-existing-heading h3{margin:0;color:var(--text);font-size:16px}.curriculum-existing-heading>span{display:grid;place-items:center;min-width:32px;height:32px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:850}.curriculum-page .curriculum-mini-list{max-height:none;overflow:visible;padding:10px}.curriculum-page .curriculum-inline-list{max-height:none;overflow:visible}.curriculum-page .curriculum-mini-list button,.curriculum-page .curriculum-inline-list button{border-radius:10px;background:var(--surface-strong);padding:11px 12px;cursor:pointer;transition:border-color .16s ease,background .16s ease}.curriculum-page .curriculum-mini-list button:hover,.curriculum-page .curriculum-inline-list button:hover{border-color:var(--primary);background:var(--primary-soft)}.curriculum-page .curriculum-mini-list button>svg,.curriculum-page .curriculum-inline-list button>svg{flex:0 0 auto;color:var(--primary)}.curriculum-empty-list{margin:0;border:1px dashed var(--line);border-radius:10px;color:var(--muted);padding:18px;font-size:13px;line-height:1.5;text-align:center}@media(max-width:1300px){.curriculum-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.curriculum-overview-card--map{grid-column:1 / -1}.curriculum-page .curriculum-editor-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1100px){.curriculum-toolbar,.curriculum-layout,.curriculum-editor-grid{grid-template-columns:1fr}.curriculum-view-toggle,.curriculum-editor-tabs{flex-wrap:wrap}.curriculum-page .curriculum-hero{grid-template-columns:1fr}.curriculum-progress-card{width:min(100%,460px)}.curriculum-page .curriculum-editor-grid{grid-template-columns:1fr}}@media(max-width:760px){.curriculum-hero{align-items:start;flex-direction:column}.curriculum-page .curriculum-hero{min-height:0;border-radius:15px;padding:22px 18px}.curriculum-hero-title{grid-template-columns:1fr}.curriculum-hero-icon{width:48px;height:48px}.curriculum-hero-badges{display:grid;padding-left:0}.curriculum-hero-badges span{width:100%;border-radius:10px}.curriculum-progress-card{grid-template-columns:1fr;justify-items:start}.curriculum-overview{grid-template-columns:1fr}.curriculum-overview-card--map{grid-column:auto}.curriculum-chain{grid-template-columns:1fr}.curriculum-chain>svg{margin:-3px auto;transform:rotate(90deg)}.curriculum-workspace-heading{align-items:flex-start;flex-direction:column;padding:22px 18px}.curriculum-workspace-status{border-radius:10px}.curriculum-page .curriculum-editor-tabs{grid-template-columns:1fr}.curriculum-page .curriculum-editor-tabs button{min-height:66px}.curriculum-editor-surface{padding:12px}.curriculum-page .management-form{border-radius:12px;padding:18px}.curriculum-table-head{display:none}.curriculum-table-row{grid-template-columns:1fr}.curriculum-tree-children{margin-left:8px}}.code-library-page{display:grid;gap:28px;width:min(100%,1500px);margin:0 auto}.code-library-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.code-library-hero h1{margin:4px 0 8px;color:var(--text);font-size:var(--page-title-size);line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.code-library-hero p{max-width:820px;margin:0;color:var(--muted);font-size:var(--page-subtitle-size);line-height:1.35}.code-library-hero-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.code-library-tabs{display:flex;flex-wrap:wrap;gap:8px}.code-library-tabs button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font:inherit;font-weight:700;cursor:pointer}.code-library-tabs button:hover,.code-library-tabs button.is-active{border-color:color-mix(in srgb,var(--primary) 44%,var(--line));color:var(--text);background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.code-library-section-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.code-library-section-card{display:grid;grid-template-rows:auto 1fr auto;gap:14px;min-height:236px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.code-library-section-icon{display:inline-grid;width:44px;height:44px;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary)}.code-library-section-card h3,.code-library-item-card h3,.code-library-detail-panel h2,.code-library-browser-toolbar h2{margin:0;color:var(--text)}.code-library-section-card p,.code-library-item-card p{margin:8px 0 0;color:var(--muted);line-height:1.55}.code-library-section-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:.9rem;font-weight:700}.code-library-browser{display:grid;gap:16px}.code-library-browser-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.code-library-result-count{display:inline-grid;min-width:42px;height:42px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-weight:800}.code-library-filters{display:grid;grid-template-columns:minmax(260px,1.6fr) repeat(3,minmax(160px,1fr));gap:12px;align-items:end}.code-library-filters label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:.82rem;font-weight:800}.code-library-filters label:not(.code-library-search) svg{display:none}.code-library-filters input,.code-library-filters select,.code-library-dialog input,.code-library-dialog select,.code-library-dialog textarea{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit}.code-library-filters input,.code-library-filters select,.code-library-dialog input,.code-library-dialog select{padding:0 12px}.code-library-dialog textarea{padding:10px 12px;resize:vertical}.code-library-search{position:relative}.code-library-search svg{position:absolute;left:12px;bottom:12px;color:var(--muted)}.code-library-search input{padding-left:38px}.code-library-content-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.code-library-item-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.code-library-item-with-detail{display:grid;gap:12px}.code-library-detail-panel.code-library-detail-panel--inline{position:static;display:grid}.code-library-item-card,.code-library-detail-panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.code-library-item-card{display:grid;gap:10px;padding:16px}.code-library-item-card.is-selected{border-color:color-mix(in srgb,var(--primary) 52%,var(--line));background:color-mix(in srgb,var(--primary) 6%,var(--surface))}.code-library-item-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.code-library-meta-row,.code-library-detail-meta,.code-library-tag-row,.code-library-detail-actions{display:flex;flex-wrap:wrap;gap:8px}.code-library-meta-row span,.code-library-detail-meta span,.code-library-tag-row span{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:0 9px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface) 80%,var(--surface-strong));color:var(--muted);font-size:.78rem;font-weight:800}.code-library-detail-panel{position:sticky;top:92px;display:grid;gap:16px;padding:18px}.code-library-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.code-library-detail-header p,.code-library-detail-content{margin:8px 0 0;color:var(--muted);line-height:1.6}.code-library-code-block{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#111827}.code-library-code-block-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.12);color:#e5e7eb;font-weight:800}.code-library-code-block-header small{color:#93c5fd}.code-library-code{max-height:430px;margin:0;overflow:auto;padding:14px;color:#d1d5db;font-size:.9rem;line-height:1.55;white-space:pre}.code-library-code-line{display:inline}.code-token--keyword{color:#93c5fd;font-weight:800}.code-token--string{color:#86efac}.code-token--number{color:#fbbf24}.code-token--comment{color:#94a3b8;font-style:italic}.code-library-algorithms-view{display:grid;gap:18px}.code-library-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;padding:clamp(16px,3vw,34px);background:#0f172a70}.code-library-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:0;width:min(1180px,100%);height:min(880px,calc(100vh - 48px));max-height:calc(100vh - 32px);overflow:hidden;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 24px 70px #0f172a42}.code-library-dialog-header,.code-library-dialog-actions{display:flex;align-items:center;gap:12px;background:var(--surface);padding:18px 22px}.code-library-dialog-header{justify-content:space-between;border-bottom:1px solid var(--line)}.code-library-dialog-title{display:grid;gap:3px;min-width:0}.code-library-dialog-title h2,.code-library-dialog-title p{margin:0}.code-library-dialog-title h2{overflow-wrap:anywhere;font-size:22px;line-height:1.25}.code-library-dialog-title p{overflow:hidden;color:var(--muted);font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.code-library-dialog-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px}.code-library-dialog-error{margin:0 0 18px}.code-library-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,340px);align-items:start;gap:24px}.code-library-editor-main,.code-library-editor-sidebar{display:grid;align-content:start;gap:22px;min-width:0}.code-library-editor-sidebar{border-left:1px solid var(--line);padding-left:24px}.code-library-editor-section{display:grid;gap:14px;min-width:0}.code-library-editor-section+.code-library-editor-section{border-top:1px solid var(--line);padding-top:22px}.code-library-editor-section-heading{display:flex;align-items:center;gap:9px;color:var(--primary)}.code-library-editor-section-heading h3{margin:0;color:var(--text);font-size:16px;line-height:1.3}.code-library-editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.code-library-editor-fields .is-wide{grid-column:1 / -1}.code-library-dialog label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:850}.code-library-dialog input,.code-library-dialog select,.code-library-dialog textarea{border-radius:6px;font-size:14px;font-weight:650;line-height:1.45}.code-library-dialog textarea{min-height:86px}.code-library-source-field>span{display:flex;align-items:center;justify-content:space-between;gap:10px}.code-library-source-field>span small{color:var(--primary);font-size:11px;font-weight:850}.code-library-source-field textarea{min-height:280px;-moz-tab-size:2;tab-size:2;background:#0f1f3b;color:#e8f0fb;font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:500;line-height:1.6;white-space:pre}.code-library-dialog-actions{justify-content:flex-end;border-top:1px solid var(--line);box-shadow:0 -8px 24px #4f77aa0f}@media(max-width:980px){.code-library-hero,.code-library-detail-header{align-items:stretch;flex-direction:column}.code-library-hero-actions{justify-content:flex-start}.code-library-content-layout{grid-template-columns:1fr}.code-library-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.code-library-search{grid-column:1 / -1}.code-library-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.code-library-detail-panel{position:static}.code-library-editor-layout{grid-template-columns:minmax(0,1fr)}.code-library-editor-sidebar{border-top:1px solid var(--line);border-left:0;padding-top:22px;padding-left:0}}@media(max-width:640px){.code-library-item-list,.code-library-filters{grid-template-columns:1fr}.code-library-search{grid-column:auto}.code-library-detail-panel,.code-library-item-card,.code-library-section-card{padding:16px}.code-library-tabs button,.code-library-section-card-footer,.code-library-detail-actions .button{width:100%;justify-content:center}.code-library-tabs{display:grid;grid-template-columns:1fr}.code-library-section-grid{grid-template-columns:1fr}.code-library-dialog-backdrop{padding:10px}.code-library-dialog{height:calc(100vh - 20px);max-height:calc(100vh - 20px)}.code-library-dialog-header,.code-library-dialog-actions,.code-library-dialog-scroll{padding:15px}.code-library-dialog-title h2{font-size:19px}.code-library-dialog-actions .button{flex:1 1 0;justify-content:center}.code-library-editor-fields{grid-template-columns:minmax(0,1fr)}.code-library-editor-fields .is-wide{grid-column:auto}}@media(max-width:1280px){.teacher-overview-grid{grid-template-columns:minmax(0,1fr)}.teacher-overview-grid>.data-foundation-panel,.teacher-overview-grid>.attention-panel{width:100%;max-width:100%}}@media(max-width:980px){.attention-row{grid-template-columns:minmax(0,1fr)}}.projects-page,.project-detail{display:grid;gap:22px}.project-editor{width:min(100%,1320px)}.creator-page .project-form{display:grid;gap:18px;max-width:none;border:0;background:transparent;padding:0;box-shadow:none}.project-form-section,.project-builder{display:grid;gap:16px;border:1px solid rgba(79,119,170,.14);border-radius:8px;background:var(--surface);padding:18px;box-shadow:var(--shadow-card)}.project-form-section .section-heading,.project-builder .section-heading{margin-bottom:0}.project-form-section h2,.project-builder h2{font-size:18px}.projects-heading,.project-detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.projects-heading h1,.project-detail-hero h1{display:flex;align-items:center;gap:10px;margin:5px 0 8px}.projects-heading p,.project-detail-hero p,.project-copy-grid p,.project-milestone p{color:var(--muted);line-height:1.6}.project-card-grid,.project-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project-card{position:relative;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}.project-card:hover{border-color:color-mix(in srgb,var(--primary) 50%,var(--line))}.project-card-open{display:grid;align-content:start;gap:12px;width:100%;min-height:100%;border:0;background:transparent;color:var(--text);padding:20px;text-align:left}.project-card-delete{position:absolute;top:16px;right:16px;background:var(--surface)}.project-card .project-status{margin-right:42px}.project-card h2{margin:0}.project-card p{min-height:52px;margin:0;color:var(--muted)}.project-card-open>small{color:var(--muted)}.project-status{justify-self:start;border-radius:999px;background:var(--surface-high);color:var(--primary);padding:5px 9px;font-size:11px;font-weight:900}.project-status.is-active{background:var(--secondary-soft);color:var(--secondary)}.project-status.is-completed{background:var(--primary-soft)}.project-status.is-archived{color:var(--muted)}.project-card-meta{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:12px;font-weight:800}.project-card-meta span{display:inline-flex;align-items:center;gap:6px}.project-detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.project-progress{height:7px;overflow:hidden;border-radius:999px;background:var(--surface-high)}.project-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary))}.project-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-meta-grid>span{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;border:1px solid var(--line);border-radius:10px;padding:14px}.project-meta-grid svg{grid-row:1 / 3;color:var(--primary)}.project-meta-grid small{color:var(--muted)}.project-copy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-copy-grid>section{border:1px solid var(--line);border-radius:12px;padding:18px}.project-copy-grid h2{margin:5px 0 8px}.project-technologies{display:flex;flex-wrap:wrap;gap:8px}.project-technologies span{border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:6px 10px;font-size:12px;font-weight:800}.project-team-card{display:grid;gap:9px;border:1px solid var(--line);border-radius:12px;padding:16px}.project-team-card h3{margin:0 0 4px}.project-team-card>span{display:grid}.project-team-card small{color:var(--muted)}.project-timeline{display:grid;gap:0}.project-milestone{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;position:relative;padding-bottom:22px}.project-milestone:before{content:"";position:absolute;left:17px;top:34px;bottom:0;width:2px;background:var(--line)}.project-milestone:last-child:before{display:none}.project-milestone-marker{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--surface-high);color:var(--primary);font-weight:900}.project-milestone.is-completed .project-milestone-marker{background:var(--secondary-soft);color:var(--secondary)}.project-milestone.is-delayed .project-milestone-marker{background:#c75f621f;color:var(--danger)}.project-milestone h3{margin:3px 0}.project-milestone h3{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.project-milestone small{color:var(--primary);font-weight:800}.project-milestone-grade{display:inline-flex;border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:4px 8px;font-size:11px;font-weight:900}.project-milestone aside,.project-teacher-note{border-left:3px solid var(--primary);background:var(--surface-high);padding:12px 14px;color:var(--muted)}.project-output-links{display:grid;gap:12px}.project-output-submit{display:grid;gap:15px;border:2px solid color-mix(in srgb,var(--primary) 38%,var(--line));border-radius:10px;background:var(--primary-soft);padding:20px;box-shadow:var(--shadow-card)}.project-output-submit>p{margin:0;color:var(--muted);line-height:1.5}.project-output-submit form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-output-submit form .is-wide{grid-column:1 / -1}.project-output-submit input,.project-output-submit textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);padding:11px 12px}.project-output-submit label>small{color:var(--muted);font-weight:700}.project-output-submit .form-actions{margin:0}.project-output-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.project-output-link-grid a{display:flex;align-items:center;gap:11px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--primary);padding:14px;text-decoration:none}.project-output-link-grid a:hover{border-color:var(--primary);background:var(--primary-soft)}.project-output-link-grid a>span{display:grid;min-width:0}.project-output-link-grid strong{color:var(--text)}.project-output-link-grid small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.project-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project-form-grid label{display:grid;gap:7px}.project-form-grid label>small{color:var(--muted);font-weight:700}.project-form-grid .is-wide{grid-column:1 / -1}.project-form-grid--schedule{grid-template-columns:repeat(3,minmax(0,1fr))}.project-fieldset{box-shadow:var(--shadow-card)}.project-fieldset legend{padding:0 7px;color:var(--primary);font-weight:900}.project-fieldset legend span{color:var(--danger)}.project-fieldset-help{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.project-fieldset--error{border-color:color-mix(in srgb,var(--danger) 55%,var(--line))}.project-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.project-check-grid label{display:flex;align-items:center;gap:9px;min-height:44px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);padding:9px 11px}.project-check-grid input{width:auto}.project-builder-card{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:14px}.project-milestone-form{grid-template-columns:minmax(180px,1.4fr) minmax(140px,.7fr) minmax(140px,.7fr) minmax(120px,.55fr)}.project-milestone-form textarea{grid-column:1 / -1}.projects-page{width:min(100%,1500px);margin:0 auto}.project-list-panel{display:grid;gap:16px;align-content:start}.project-list-panel>.section-heading{margin:0}.project-list-panel h1{display:flex;align-items:center;gap:10px;margin:0;color:var(--text);font-size:24px;line-height:1.2}.project-list-heading-actions,.project-list-toolbar,.project-status-filters,.project-row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.project-list-heading-actions{justify-content:flex-end;margin-left:auto}.project-search{width:100%;flex-basis:100%}.project-status-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.project-status-filters button{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;min-height:36px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);padding:0 11px;font:inherit;font-size:13px;font-weight:850}.project-status-filters button:hover,.project-status-filters button.is-active{border-color:#4f77aa57;background:var(--primary-soft);color:var(--primary)}.project-status-filters strong{color:inherit;font-size:12px}.project-list{display:grid;gap:10px}.project-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:14px;transition:border-color .16s ease,box-shadow .16s ease}.project-list-row:hover{border-color:#4f77aa6b;box-shadow:0 10px 24px #4f77aa14}.project-row-open{display:grid;gap:11px;min-width:0;width:100%;border:0;background:transparent;color:var(--text);padding:0;text-align:left}.project-row-heading{display:flex;align-items:center;flex-wrap:wrap;gap:9px;min-width:0}.project-row-heading h2{min-width:0;margin:0;overflow-wrap:anywhere;font-size:18px;line-height:1.25}.project-row-heading>svg{flex:0 0 auto;margin-left:auto;color:var(--muted)}.project-row-open:hover .project-row-heading h2,.project-row-open:hover .project-row-heading>svg{color:var(--primary)}.project-row-open>p{margin:0;overflow:hidden;color:var(--muted);line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.project-row-meta{display:grid;grid-template-columns:minmax(150px,1.3fr) repeat(4,minmax(90px,.7fr));gap:8px}.project-row-meta span{display:grid;gap:3px;min-width:0;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-strong);color:var(--muted);padding:9px 10px;font-size:12px;line-height:1.3}.project-row-meta strong{color:var(--primary);font-size:10px}.project-row-actions{justify-content:flex-end}.project-status{flex:0 0 auto;border-radius:999px;background:var(--surface-high);color:var(--primary);padding:5px 9px;font-size:11px;font-weight:900}.project-status.is-draft{background:#d9953724;color:#9d671c}.project-status.is-ready{background:var(--primary-soft);color:var(--primary)}.project-status.is-active{background:var(--secondary-soft);color:#486f96}.project-status.is-completed{background:#44a38224;color:#267359}.project-status.is-archived{background:var(--surface-high);color:var(--muted)}.project-progress{height:6px;overflow:hidden;border-radius:999px;background:var(--surface-high)}.project-progress span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.project-detail.info-panel{display:grid;gap:0;overflow:hidden;padding:0}.project-detail-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;padding:20px 22px}.project-detail-title{display:grid;gap:6px;min-width:0}.project-detail-title-line{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.project-detail-title h1{margin:0;overflow-wrap:anywhere;color:var(--text);font-size:24px;line-height:1.2}.project-detail-title p{margin:0;color:var(--muted);line-height:1.45}.project-detail-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.project-meta-grid--detail{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 22px}.project-meta-grid--detail>span{min-height:62px;border-radius:6px;background:var(--surface-strong);padding:11px}.project-meta-grid--detail strong{overflow-wrap:anywhere;font-size:13px;line-height:1.35}.project-progress--detail{margin:12px 22px 20px}.project-detail-section{border-top:1px solid var(--line);padding:22px}.project-detail-section>.section-heading{margin-bottom:16px}.project-copy-grid{gap:0}.project-copy-grid>div{min-width:0;padding-right:22px}.project-copy-grid>div+div{border-left:1px solid var(--line);padding-right:0;padding-left:22px}.project-copy-grid h2{margin:5px 0 8px;font-size:18px}.project-copy-grid p,.project-milestone p{color:var(--muted);line-height:1.6}.project-technologies{margin:0 22px 22px}.project-team-list{display:grid;border-top:1px solid var(--line)}.project-team-row{display:grid;grid-template-columns:minmax(150px,.35fr) minmax(0,1fr);gap:18px;border-bottom:1px solid var(--line);padding:13px 0}.project-team-row h3{margin:0;font-size:15px}.project-team-row>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.project-team-row span{display:grid;min-width:0}.project-team-row strong{overflow-wrap:anywhere;font-size:13px}.project-team-row small,.project-empty-copy{color:var(--muted)}.project-empty-copy{margin:0}.project-output-submit{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:22px;box-shadow:none}.project-detail-section.project-teacher-note{border-left:0;background:var(--surface-strong)}.project-form>.form-actions{margin-top:4px}.code-library-import-dialog{display:grid;gap:16px;width:min(720px,100%);max-height:min(82vh,760px);padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-card)}.code-library-import-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.code-library-import-dialog h2{margin:4px 0 0}.code-library-import-dialog header small{display:block;margin-top:5px;color:var(--muted)}.code-library-import-search{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:0 13px;color:var(--muted)}.code-library-import-search input{width:100%;border:0;outline:0;background:transparent;padding:13px 0;color:var(--text)}.code-library-import-list{display:grid;gap:8px;min-height:120px;max-height:430px;overflow:auto}.code-library-import-item{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:13px 14px;color:var(--text);text-align:left}.code-library-import-item:hover{border-color:var(--primary);background:var(--primary-soft)}.code-library-import-item>span:first-child{display:grid;gap:4px;min-width:0}.code-library-import-item small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.code-library-import-note{margin:0;color:var(--muted);font-size:.82rem}.arduino-board-select{display:grid;gap:5px}.arduino-board-select>span{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.arduino-board-select select{min-width:260px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);padding:9px 11px;font-weight:750}@media(max-width:640px){.code-library-import-dialog{max-height:calc(100vh - 20px);padding:16px}.project-list-heading-actions,.project-list-heading-actions .button,.project-list-heading-actions .exam-list-tabs{width:100%}.project-list-heading-actions .exam-list-tabs button{flex:1 1 0;justify-content:center}.project-row-meta{grid-template-columns:minmax(0,1fr)}.project-detail-header{grid-template-columns:auto minmax(0,1fr);padding:16px}.project-detail-actions{grid-column:1 / -1;justify-content:flex-start}.project-meta-grid--detail{margin:0 16px}.project-progress--detail{margin:12px 16px 16px}.project-detail-section,.project-output-submit{padding:18px 16px}.project-technologies{margin:0 16px 18px}}@media(max-width:980px){.project-calendar-day{min-height:48px}.project-calendar-footer{align-items:stretch;flex-direction:column}.project-calendar-footer .button{justify-content:center;width:100%}.project-card-grid,.project-team-grid,.project-meta-grid,.project-copy-grid,.project-output-link-grid,.project-form-grid,.project-form-grid--schedule,.project-check-grid,.project-milestone-form{grid-template-columns:minmax(0,1fr)}.project-form-grid .is-wide,.project-output-submit form .is-wide,.project-milestone-form textarea{grid-column:auto}.project-output-submit form{grid-template-columns:minmax(0,1fr)}.projects-heading,.project-detail-hero{display:grid}.project-list-row{grid-template-columns:minmax(0,1fr)}.project-row-actions{justify-content:flex-start}.project-row-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.project-copy-grid>div{padding-right:0}.project-copy-grid>div+div{border-top:1px solid var(--line);border-left:0;margin-top:18px;padding-top:18px;padding-left:0}.project-team-row,.project-team-row>div{grid-template-columns:minmax(0,1fr)}}.sketchbook-page{display:flex;flex-direction:column;height:calc(100dvh - 180px);min-height:0;overflow:hidden}.sketchbook-page:fullscreen,.sketchbook-page.is-app-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;width:100vw;height:100vh;padding:18px;overflow:hidden;background:var(--background, #f7fbfd);color:var(--text, #202029)}.sketchbook-page:fullscreen::backdrop{background:var(--background, #f7fbfd)}.sketchbook-header{position:relative;z-index:12;display:grid;flex:0 0 auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:14px;overflow:visible}.sketchbook-header h1{align-self:center;margin:0;color:var(--text);font-size:var(--page-title-size);font-weight:900;line-height:var(--page-title-line-height);letter-spacing:var(--page-title-letter-spacing)}.sketchbook-actions{position:relative;z-index:13;display:flex;gap:8px;overflow:visible}.sketchbook-help{position:relative;z-index:3;display:flex;flex:0 0 auto;align-items:center;gap:12px;margin:0 0 12px;padding:11px 14px;border:1px solid var(--line);border-radius:11px;background:var(--primary-soft);color:var(--primary)}.sketchbook-help>div{display:grid;flex:1;gap:2px}.sketchbook-help strong{font-size:12px}.sketchbook-help span{color:var(--muted);font-size:11px}.sketchbook-help>button{display:grid;place-items:center;border:0;background:transparent;color:inherit;cursor:pointer}.sketchbook-export-bar{position:absolute;z-index:8;right:-1px;bottom:-1px;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px 12px 11px 14px;border:1px solid var(--line);border-right:0;border-bottom:0;border-radius:14px 0 0;background:var(--surface);box-shadow:-8px -8px 24px #19324b14}.sketchbook-export-bar>span{margin-right:2px;color:var(--muted);font-size:11px;font-weight:800}.sketchbook-export-bar>button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface-strong);color:var(--primary);font-size:12px;font-weight:900;cursor:pointer}.sketchbook-export-bar>button:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.sketchbook-export-bar>button:disabled{opacity:.45;cursor:not-allowed}.sketchbook-workspace{position:relative;z-index:1;display:grid;flex:1 1 auto;grid-template-columns:220px minmax(0,1fr);min-height:0;border:1px solid var(--line);border-radius:16px;background:var(--surface-strong);box-shadow:var(--shadow);overflow:hidden}.sketchbook-palette{display:flex;flex-direction:column;gap:12px;padding:18px 14px;border-right:1px solid var(--line);background:var(--surface);overflow:auto}.sketchbook-palette>strong{margin-top:3px;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.sketchbook-document-name{display:grid;gap:5px;padding-bottom:5px}.sketchbook-document-name span{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.sketchbook-document-name input{width:100%;min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);font-size:12px;font-weight:800;outline:0}.sketchbook-document-name input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.sketchbook-palette-section{display:grid;gap:8px}.sketchbook-palette-section>strong{color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.sketchbook-palette-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.sketchbook-palette-grid button{display:grid;place-items:center;gap:5px;min-height:74px;padding:8px 4px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--primary);cursor:pointer}.sketchbook-palette-grid button:hover{border-color:var(--primary);transform:translateY(-1px)}.sketchbook-palette-grid span{color:var(--text);font-size:10px;font-weight:800}.sketchbook-tool{display:flex;align-items:center;gap:8px;width:100%;padding:9px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.sketchbook-tool.is-active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.sketchbook-colors{display:flex;flex-wrap:wrap;gap:8px;padding:2px 4px 6px}.sketchbook-colors button{width:25px;height:25px;border:3px solid var(--surface-strong);border-radius:50%;background:var(--edge-color);box-shadow:0 0 0 1px var(--line);cursor:pointer}.sketchbook-colors button[aria-pressed=true]{box-shadow:0 0 0 2px var(--text)}.sketchbook-properties{display:grid;gap:7px;margin-top:4px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong)}.sketchbook-properties label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:800}.sketchbook-properties input{min-width:0;padding:8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text)}.sketchbook-properties button{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;border:0;border-radius:7px;background:#fff0f1;color:#b43e49;font-size:11px;font-weight:800;cursor:pointer}.sketchbook-canvas{position:relative;min-width:0;min-height:0;overflow:hidden;background-color:var(--surface-strong);background-image:radial-gradient(circle,color-mix(in srgb,var(--muted) 22%,transparent) 1px,transparent 1px);background-size:22px 22px}.sketchbook-canvas.is-connecting{cursor:crosshair}.sketchbook-edges{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.sketchbook-edges path{stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.sketchbook-edges text{fill:var(--muted);paint-order:stroke;stroke:var(--surface-strong);stroke-width:4px;font-size:10px;font-weight:800}.sketchbook-node{position:absolute;z-index:2;display:grid;grid-template-rows:48px auto;justify-items:center;align-content:start;gap:5px;width:112px;min-height:76px;padding:0;border:0;background:transparent;color:var(--text);cursor:grab;text-align:center;touch-action:none;-webkit-user-select:none;user-select:none}.sketchbook-node:active{cursor:grabbing}.sketchbook-node>span{display:grid;width:48px;height:48px;place-items:center;color:var(--primary);transition:transform .15s ease,filter .15s ease}.sketchbook-node>span svg{width:36px;height:36px;stroke-width:1.7}.sketchbook-node strong{max-width:108px;overflow-wrap:anywhere;font-size:11px;line-height:1.2}.sketchbook-node:hover>span{transform:translateY(-2px)}.sketchbook-node.is-selected>span{color:var(--primary);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--primary) 45%,transparent))}.sketchbook-node.is-selected strong{color:var(--primary)}.sketchbook-node.is-connect-source>span{color:#e28a32;filter:drop-shadow(0 0 5px #e28a3288)}.sketchbook-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:8px;color:var(--muted);text-align:center;pointer-events:none}.sketchbook-empty svg{color:var(--primary)}.sketchbook-empty strong{color:var(--text);font-size:18px}.sketchbook-empty span{max-width:340px;font-size:12px}.sketchbook-hint{position:absolute;z-index:4;left:50%;bottom:18px;display:flex;align-items:center;gap:14px;transform:translate(-50%);padding:9px 12px;border-radius:999px;background:var(--text);color:var(--surface-strong);font-size:11px;font-weight:800;box-shadow:var(--shadow)}.sketchbook-hint button{display:flex;align-items:center;gap:4px;border:0;background:transparent;color:inherit;cursor:pointer}@media(max-width:760px){.sketchbook-header{align-items:flex-start}.sketchbook-actions{flex-wrap:wrap;justify-content:flex-end}.sketchbook-workspace{grid-template-columns:82px minmax(0,1fr)}.sketchbook-palette{padding:10px 7px}.sketchbook-palette-grid{grid-template-columns:1fr}.sketchbook-palette-grid button{min-height:58px}.sketchbook-palette-grid span,.sketchbook-palette>strong,.sketchbook-tool{font-size:0}.sketchbook-tool,.sketchbook-colors{justify-content:center}.sketchbook-properties{display:none}}.editor-page{position:relative}.editor-file-notice{position:fixed;z-index:80;top:50%;left:50%;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-width:280px;max-width:min(440px,calc(100vw - 32px));transform:translate(-50%,-50%);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 22px 65px #1425393d;padding:15px 17px;pointer-events:none;animation:editor-file-notice-in .18s ease-out}.editor-file-notice>span{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary)}.editor-file-notice>div{display:grid;gap:3px;min-width:0}.editor-file-notice strong{font-size:14px}.editor-file-notice small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}@keyframes editor-file-notice-in{0%{opacity:0;transform:translate(-50%,-46%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.subject-switcher{align-items:center;background:var(--surface, #fff);border:1px solid var(--line);border-radius:10px;display:inline-flex;cursor:pointer;height:42px;justify-content:center;padding:0;position:relative;width:42px}.subject-switcher:hover,.subject-switcher.is-active{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 42%,var(--line));color:var(--primary)}.choice-dialog--subjects{max-height:min(88vh,760px);overflow:auto;width:min(100%,760px)}.choice-dialog--subjects>div:first-child p{color:var(--muted);line-height:1.5;margin:7px 0 0}.subject-choice-card-grid{max-height:min(58vh,500px);overflow:auto;padding:2px}.subject-choice-card{grid-template-columns:auto minmax(0,1fr) auto;min-height:100px;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}.subject-choice-card:hover{box-shadow:var(--shadow-card);transform:translateY(-1px)}.subject-choice-card.is-active{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 52%,var(--line));box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 8%,transparent)}.subject-choice-card.is-active .admin-cell-icon{background:var(--primary);color:#fff}.subject-choice-card-copy{min-width:0}.subject-choice-card-copy strong{line-height:1.3}.subject-choice-selected{align-items:center;color:var(--primary);display:inline-flex;font-size:11px;font-weight:850;gap:4px}.subject-choice-arrow{color:var(--muted)}@media(max-width:640px){.subject-choice-card-grid{grid-template-columns:1fr}.choice-dialog--subjects{padding:18px}}.subject-choice-overlay{align-items:center;background:#0f172aad;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.subject-choice-dialog{background:var(--surface, #fff);border-radius:18px;box-shadow:0 24px 70px #00000040;max-width:34rem;padding:2rem;width:100%}.subject-choice-grid{display:grid;gap:.75rem;margin-top:1.25rem}.python-io-panel{display:grid;grid-template-rows:minmax(200px,1fr) auto;gap:16px;min-height:100%}.python-stdin-disclosure{min-width:0;border-top:1px solid var(--line)}.python-stdin-disclosure summary{padding:12px 0;cursor:pointer;font-weight:700}.python-stdin-disclosure summary:focus-visible{outline:2px solid #4f77aa;outline-offset:2px}.python-stdin-panel{display:grid;gap:8px}.python-stdin-panel label{font-weight:700}.python-stdin-panel p{margin:0;color:var(--muted, #65738a);font-size:12px;line-height:1.6}.python-stdin-panel textarea{box-sizing:border-box;width:100%;min-height:112px;resize:vertical;border:1px solid var(--border, #b9c8d9);border-radius:8px;background:var(--surface, #fff);color:var(--text, #202029);padding:12px;font:14px/1.6 Consolas,monospace;white-space:pre}.python-stdin-panel textarea:focus-visible{outline:2px solid #4f77aa;outline-offset:2px}.python-output-message{margin:0;padding:5px 0;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.65 Consolas,monospace}.python-io-panel .python-terminal{grid-template-rows:auto minmax(160px,1fr)}.python-io-panel .python-terminal-screen{max-height:60vh;overflow:auto}.python-run-button{gap:8px;white-space:nowrap}.python-run-button kbd{font-size:11px;opacity:.8}.editor-page--python .python-activity-toolbar{flex-wrap:wrap;gap:12px}.editor-page--python .python-activity-tabs{flex-wrap:wrap}.editor-page--python .python-activity-tabs button{width:auto;padding:8px 10px;display:inline-flex;gap:6px;font-size:12px}.code-editor-loading{padding:24px;color:var(--text-muted, #65738a)}@media(max-width:1000px){.editor-page--python{grid-template-columns:minmax(0,1fr)}.editor-page--python .editor-stage{min-height:440px}.editor-page--python .workspace-output-column{min-height:360px}.editor-page--python .editor-toolbar{flex-wrap:wrap}}.editor-page--python .editor-toolbar{flex-wrap:wrap}.editor-page--python .editor-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}@media(max-width:1000px){.editor-page--python .assignment-summary--standalone{grid-template-columns:minmax(0,1fr)}.editor-page--python .assignment-panel--standalone .standalone-editor-actions{justify-self:start;flex-wrap:wrap}.editor-page--python .editor-stage{min-height:440px;height:60vh;max-height:640px}.editor-page--python .monaco-shell{min-height:0}}.editor-page--python .editor-file-group{max-width:100%}.editor-page--python .button--ghost{background:var(--surface-high);border-color:var(--line);color:var(--text)}.editor-page--python .file-tabs{max-width:100%}.editor-page--python .standalone-editor-actions .editor-action-button:after{left:auto;right:0;transform:translateY(6px)}.editor-page--python .standalone-editor-actions .editor-action-button:is(:hover,:focus-visible):after{transform:translateY(0)}.editor-page--python .editor-actions{min-width:0;max-width:100%;flex-wrap:wrap}@media(max-width:600px){.editor-page--python .editor-actions{width:100%}.editor-page--python .python-run-button kbd{display:none}.editor-page--python [data-tooltip]:after{display:none}}.review-assessment-panel{gap:24px;padding:clamp(18px,2.4vw,28px)}.review-assessment-panel .review-form-heading{align-items:center}.review-assessment-panel .review-form-heading h2{margin:6px 0 0;font-size:clamp(21px,2vw,26px);font-weight:600;line-height:1.3}.review-assessment-panel .review-grade-row--exam{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}.review-assessment-panel .review-grade-row--exam>.review-grade-column{display:contents}.review-assessment-panel .grade-preview-box{display:flex;flex-direction:column;justify-content:center;gap:8px;min-height:110px;margin:0;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface-high)}.review-assessment-panel .grade-preview-box strong{font-size:clamp(24px,2.3vw,32px);font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--primary)}.review-assessment-panel .grade-preview-box span{font-size:14px;font-weight:400;line-height:1.5;color:var(--muted)}.review-assessment-panel .review-grade-row--exam>.grade-preview-box{order:1}.review-assessment-panel .review-grade-row--exam .review-grade-column>.grade-preview-box{order:2}.review-assessment-panel .review-exclusion-option{order:3;display:flex;align-items:flex-start;justify-content:flex-start;gap:12px;margin:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);cursor:pointer}.review-assessment-panel .review-exclusion-option.is-selected{border-color:var(--primary);background:var(--primary-soft)}.review-assessment-panel .checkbox-row input[type=checkbox]{flex:0 0 20px;width:20px;height:20px;min-height:20px;margin:2px 0 0;padding:0;accent-color:var(--primary)}.review-assessment-panel .review-exclusion-option>span{display:grid;min-width:0;gap:6px}.review-assessment-panel .review-exclusion-option strong{font-size:14px;font-weight:600;line-height:1.5}.review-assessment-panel .review-exclusion-option small,.review-assessment-panel .review-weight-field small,.review-assessment-panel .review-comment-row label small{display:block;font-size:13px;font-weight:400;color:var(--muted);line-height:1.5}.review-assessment-panel .review-weight-field{order:4;display:grid;grid-template-columns:minmax(0,1fr) 90px;align-content:center;align-items:center;gap:8px 16px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);font-size:14px;font-weight:600}.review-assessment-panel .review-weight-field small{grid-column:1 / -1}.review-assessment-panel .review-weight-field input{text-align:center;min-height:44px}.review-assessment-panel .review-comment-row{gap:20px}.review-assessment-panel .review-comment-row label{display:grid;gap:10px;min-width:0;font-size:14px;font-weight:600}.review-assessment-panel .review-comment-row label small{margin-top:4px}.review-assessment-panel textarea{min-height:140px;resize:vertical;font:inherit;font-size:14px;font-weight:400;line-height:1.65;padding:14px}.review-assessment-panel input:not([type=checkbox]),.review-assessment-panel textarea{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}.review-assessment-panel input:focus-visible,.review-assessment-panel textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.review-assessment-panel input:disabled{color:var(--muted);background:var(--surface-high);cursor:not-allowed}.review-assessment-panel .review-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line);padding-top:20px}.review-assessment-panel .review-actions .button{flex:0 1 auto;width:auto;min-height:44px;padding:11px 22px;font-size:14px;font-weight:600;box-shadow:none}@media(max-width:700px){.review-assessment-panel .review-grade-row--exam,.review-assessment-panel .review-comment-row{grid-template-columns:minmax(0,1fr)}.review-assessment-panel .review-actions .button{flex:1 1 100%}.review-assessment-panel textarea,.review-assessment-panel input:not([type=checkbox]){font-size:16px}}.submission-bundle-card--pending{border-top:4px solid var(--warning)}.submission-bundle-card--completed{border-top:4px solid var(--success)}.submission-bundle-card--returned{border-top:4px solid var(--danger)}.submission-bundle-card--progress{border-top:4px solid var(--line)}.submission-bundle-review-status{display:inline-flex;align-items:center;align-self:flex-start;gap:7px;padding:7px 9px;border-radius:6px;font-size:12px;font-weight:600;line-height:1.4}.submission-bundle-review-status svg{flex-shrink:0}.submission-bundle-review-status.is-pending{color:#805015;background:#fff3dc}.submission-bundle-review-status.is-completed{color:#216b53;background:#e9f6ef}.submission-bundle-review-status.is-returned{color:#a53e44;background:#fceff0}.submission-bundle-review-status.is-progress{color:var(--muted);background:var(--surface-high)}.submission-bundle-counts .has-pending strong{color:#805015}.submission-bundle-counts .has-completed strong{color:#216b53}.submission-bundle-other-states{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted)}:root[data-theme=dark] .submission-bundle-review-status.is-pending{color:#f3ce89;background:#3c3020}:root[data-theme=dark] .submission-bundle-review-status.is-completed{color:#94dec2;background:#20392f}:root[data-theme=dark] .submission-bundle-review-status.is-returned{color:#f2abb0;background:#40292e}:root[data-theme=dark] .submission-bundle-counts .has-pending strong{color:#f3ce89}:root[data-theme=dark] .submission-bundle-counts .has-completed strong{color:#94dec2}.web-editor-picker{background:linear-gradient(135deg,#4f80b814,#279d840d)}.web-editor-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.8rem}.web-editor-picker-grid>label{display:grid;grid-template-columns:auto 1fr;gap:.2rem .75rem;align-items:center;min-width:0;padding:1rem;border:1px solid var(--border-color, #d8e3ee);border-radius:16px;background:var(--surface, #fff);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.web-editor-picker-grid>label:hover{transform:translateY(-1px);border-color:#82a8d0}.web-editor-picker-grid>label.is-selected{border-color:#4f80b8;box-shadow:0 0 0 3px #4f80b81f;background:linear-gradient(145deg,#fff,#f2f7fc)}.web-editor-picker-grid input{width:1.15rem;height:1.15rem;margin:0;accent-color:#4f80b8}.web-editor-picker-grid span{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}.web-editor-picker-grid small{color:var(--text-muted, #66788c)}.web-editor-picker-grid>label>small{grid-column:2}.project-code-starters{margin-top:1rem}.project-code-entry{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;background:linear-gradient(120deg,#4f80b81a,#279d8414)}.project-code-entry h2{display:flex;align-items:center;gap:.55rem}.project-code-entry p{margin-bottom:0}.project-web-workspace{margin:1rem 0 1.5rem;overflow:hidden;border:1px solid var(--border-color, #d8e3ee);border-radius:22px;background:var(--surface, #fff)}.project-web-workspace .editor-page{min-height:760px}.project-workspace-switcher{padding:1rem 1.25rem 0}.project-workspace-switcher label{display:grid;grid-template-columns:auto minmax(220px,360px);align-items:center;justify-content:start;gap:.75rem;font-weight:700}@media(max-width:780px){.web-editor-picker-grid{grid-template-columns:1fr}.project-code-entry{align-items:stretch;flex-direction:column}}
