:root{--color-canvas:#08111f;--color-surface:#0e1a2b;--color-surface-raised:#14233a;--color-surface-muted:#1a2b45;--color-text:#f2f6ff;--color-text-muted:#aab9d1;--color-line:#a8bfe22e;--color-primary:#7461ff;--color-primary-strong:#5d46ed;--color-cyan:#2bd9db;--color-success:#45e59a;--color-warning:#ffbc4d;--color-danger:#ff718a;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:.625rem;--radius-md:.875rem;--radius-lg:1.25rem;--shadow-panel:0 18px 48px #0000003d;--focus-ring:0 0 0 3px #7461ff8c;--control-min-size:2.75rem;--page-gutter:1.5rem}@media (width<=47.99rem){:root{--page-gutter:1rem}}@media (width>=80rem){:root{--page-gutter:2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{color:var(--color-text);background:var(--color-canvas);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;--ink:#18212f;--muted:var(--color-text-muted);--line:var(--color-line);--surface:var(--color-surface);--primary:var(--color-primary);--primary-dark:var(--color-primary-strong);--navy:var(--color-text);--success:var(--color-success);--shadow:var(--shadow-panel)}.ui-panel,.ui-card,.ui-state{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:linear-gradient(145deg, var(--color-surface-raised), var(--color-surface));box-shadow:var(--shadow-panel)}.ui-panel{padding:var(--space-5)}@media (width<=47.99rem){.ui-panel,.ui-card,.ui-state{border-radius:var(--radius-md)}.ui-panel,.ui-state{padding:var(--space-4)}}.ui-panel__title,.ui-card__title,.ui-state h2{margin:0 0 var(--space-4);color:var(--color-text);font-size:1.125rem}.ui-card{padding:var(--space-4)}.ui-progress-ring{aspect-ratio:1;background:radial-gradient(circle, var(--color-surface) 59%, transparent 60%), conic-gradient(var(--color-primary) var(--progress), #a9bde02e 0);width:6.75rem;color:var(--color-text);border-radius:50%;place-items:center;font-weight:800;display:grid}.ui-progress{background:#a9bde029;border-radius:999px;height:.5rem;overflow:hidden}.ui-progress__fill{border-radius:inherit;background:linear-gradient(90deg, var(--color-cyan), var(--color-primary));height:100%;transition:width .16s ease-out;display:block}.ui-status-badge{min-height:1.75rem;padding:0 var(--space-3);border:1px solid;border-radius:999px;align-items:center;font-size:.8125rem;font-weight:750;display:inline-flex}.ui-status-badge[data-tone=neutral]{color:var(--color-text-muted)}.ui-status-badge[data-tone=success]{color:var(--color-success)}.ui-status-badge[data-tone=warning]{color:var(--color-warning)}.ui-status-badge[data-tone=danger]{color:var(--color-danger)}.ui-status-badge[data-tone=primary]{color:#b9aeff}.ui-state{gap:var(--space-3);padding:var(--space-6);justify-items:start;display:grid}.ui-state h2,.ui-state p{margin:0}.ui-state p{color:var(--color-text-muted)}.ui-state--loading{color:var(--color-text-muted);align-items:center;display:inline-flex}.ui-state--error{border-color:#ff718a85}.ui-state__action{margin-top:var(--space-2)}.ui-spinner{border:2px solid #a9bde03d;border-top-color:var(--color-cyan);border-radius:50%;width:1.1rem;height:1.1rem;animation:.8s linear infinite ui-spin}.ui-button{min-height:var(--control-min-size);padding:0 var(--space-4);border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;cursor:pointer;border:0;font-weight:750}@keyframes ui-spin{to{transform:rotate(360deg)}}*{box-sizing:border-box}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}html{background:var(--color-canvas)}body{background:radial-gradient(circle at 85% -10%, #5d4df41a, transparent 28rem), var(--color-canvas);min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:#b9aeff}.lms-shell{background:var(--color-canvas);grid-template-columns:16.5rem minmax(0,1fr);min-height:100vh;display:grid}.lms-sidebar{gap:var(--space-8);height:100vh;padding:var(--space-6) var(--space-4);border-right:1px solid var(--color-line);background:linear-gradient(#0d192b 0%,#08111f 100%);flex-direction:column;display:flex;position:sticky;top:0}.lms-brand,.lms-topbar__brand{align-items:center;gap:var(--space-3);color:var(--color-text);letter-spacing:-.03em;font-size:1.13rem;font-weight:800;text-decoration:none;display:inline-flex}.lms-brand strong{color:#a99cff}.lms-brand__mark{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--color-primary), var(--color-cyan));color:#08111f;place-items:center;width:2.25rem;height:2.25rem;font-family:Georgia,serif;font-weight:900;display:grid}.lms-nav,.lms-mobile-nav{gap:var(--space-1);display:grid}.lms-nav__link{min-height:var(--control-min-size);padding:0 var(--space-4);border-radius:var(--radius-sm);color:var(--color-text-muted);border:1px solid #0000;align-items:center;font-weight:650;text-decoration:none;display:flex}.lms-nav__link:hover,.lms-nav__link--active{color:var(--color-text);background:linear-gradient(90deg,#7461ff42,#2bd9db14);border-color:#7461ff80}.lms-sidebar__note{padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-md);color:var(--color-text-muted);margin:auto 0 0;font-size:.875rem;line-height:1.5}.lms-shell__main{min-width:0}.lms-topbar{z-index:10;justify-content:space-between;align-items:center;gap:var(--space-4);min-height:4.75rem;padding:0 var(--page-gutter);border-bottom:1px solid var(--color-line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#08111fe0;display:flex;position:sticky;top:0}.lms-topbar__brand{display:none}.lms-account{align-items:center;gap:var(--space-3);display:inline-flex}.lms-account__role{color:var(--color-text-muted);font-size:.875rem}.lms-account__profile,.lms-account__logout,.lms-menu-button{min-height:var(--control-min-size);padding:0 var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;align-items:center;text-decoration:none;display:inline-flex}.lms-menu-button,.lms-mobile-nav{display:none}.lms-content{width:min(100%,104rem);padding:var(--space-6) var(--page-gutter) 4rem;margin:0 auto}.lms-dashboard{gap:var(--space-5);display:grid}.lms-dashboard__header{justify-content:space-between;align-items:flex-start;gap:var(--space-5);display:flex}.lms-dashboard__header h1{color:var(--color-text);letter-spacing:-.05em;margin:0;font-size:clamp(2rem,4vw,3.25rem)}.lms-dashboard__header p:not(.lms-dashboard__eyebrow){margin:var(--space-2) 0 0;color:var(--color-text-muted)}.lms-dashboard__eyebrow{margin:0 0 var(--space-2);color:var(--color-cyan);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:800}.lms-dashboard__metrics{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.lms-dashboard__metric{gap:var(--space-3);display:grid}.lms-dashboard__metric .ui-card__title{color:var(--color-text-muted);margin-bottom:0;font-size:.875rem}.lms-dashboard__metric p,.lms-dashboard__course p{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.5}.lms-dashboard__value{color:var(--color-text);letter-spacing:-.035em;font-size:1.65rem}.lms-dashboard__layout{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(16rem,.36fr);align-items:start;display:grid}.lms-dashboard__course-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));display:grid}.lms-dashboard__course{gap:var(--space-4);display:grid}.lms-dashboard__course .ui-card__title{margin-bottom:0;font-size:1.15rem}.lms-dashboard__course-status{justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--color-text);font-size:.9rem;font-weight:750;display:flex}.lms-dashboard__due{padding:var(--space-3);border-left:2px solid var(--color-cyan);background:#2bd9db0f}.lms-dashboard__history{color:var(--color-text-muted);font-size:.8125rem}.lms-dashboard__history summary{cursor:pointer;color:var(--color-text);font-weight:700}.lms-dashboard__history ul{gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid}.lms-dashboard__history li{justify-content:space-between;gap:var(--space-3);display:flex}.deadline-action{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-sm);background:#2bd9db0b;display:grid}.deadline-action p{color:var(--color-text-muted);margin:0;font-size:.8125rem}.deadline-action__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.deadline-action h4{color:var(--color-text);margin:0;font-size:.9rem}.deadline-action__due{padding-top:var(--space-2);border-top:1px solid var(--color-line)}.deadline-action__consequence{color:var(--color-warning)!important}.lms-dashboard__continue{text-align:center;width:100%;margin-top:auto;text-decoration:none}.lms-dashboard__muted{color:var(--color-text-muted)}.lms-dashboard__side{gap:var(--space-5);display:grid}.lms-dashboard__achievement-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.lms-dashboard__achievement-list li{gap:var(--space-3);color:var(--color-text);grid-template-columns:auto minmax(0,1fr);align-items:center;font-size:.875rem;display:grid}.lms-dashboard__rhythm{gap:var(--space-4);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.lms-dashboard__rhythm p{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.5}.lms-profile{gap:var(--space-5);max-width:48rem;display:grid}.lms-profile header h1{color:var(--color-text);letter-spacing:-.05em;margin:0;font-size:clamp(2rem,4vw,3.25rem)}.lms-profile__identity{align-items:center;gap:var(--space-5);display:flex}.lms-profile__identity h2{color:var(--color-text);margin:0;font-size:1.25rem}.lms-profile__identity p,.lms-profile__copy{margin:var(--space-2) 0 0;color:var(--color-text-muted)}.lms-profile__avatar{background:linear-gradient(135deg, var(--color-primary), var(--color-cyan));color:#07111f;border-radius:50%;flex:none;place-items:center;width:4rem;height:4rem;font-size:1.5rem;font-weight:900;display:grid}.lms-profile__roles{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.lms-profile .ui-panel{gap:var(--space-4);display:grid}.lms-profile .ui-panel__title{margin-bottom:0}.python-workspace{gap:var(--space-4);display:grid}.python-workspace__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.python-workspace__header h1{color:var(--color-text);letter-spacing:-.04em;margin:0;font-size:clamp(1.45rem,3vw,2.25rem)}.python-workspace__layout{gap:var(--space-4);grid-template-columns:minmax(11rem,.22fr) minmax(0,1fr) minmax(15rem,.3fr);align-items:start;display:grid}.python-workspace__layout>aside,.python-workspace__main,.mentor-panel,.workspace-checklist,.workspace-output,.workspace-recovery,.workspace-conflict{border:1px solid var(--color-line);border-radius:var(--radius-md);background:linear-gradient(145deg, var(--color-surface-raised), var(--color-surface));box-shadow:var(--shadow-panel)}.python-workspace__main,.python-workspace__secondary{gap:var(--space-3);min-width:0;display:grid}.workspace-file-tree{padding:var(--space-2)}.workspace-file-tree ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.workspace-file-tree button{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;min-height:var(--control-min-size);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.workspace-file-tree button[aria-selected=true]{color:var(--color-text);background:#7461ff38}.workspace-file-tree small,.workspace-tabs__readonly{color:var(--color-text-muted);font-size:.7rem}.workspace-tabs{gap:var(--space-1);min-width:0;padding:var(--space-2);border-bottom:1px solid var(--color-line);display:flex;overflow-x:auto}.workspace-tabs button{align-items:center;gap:var(--space-2);min-height:2.25rem;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;display:inline-flex}.workspace-tabs button[aria-selected=true]{color:var(--color-text);background:#7461ff29;border-color:#7461ff80}.workspace-code-editor{background:#07111f;min-height:min(58vh,44rem);overflow:auto}.workspace-code-editor .cm-editor{min-height:inherit}.workspace-code-editor .cm-scroller{min-height:inherit;font-family:var(--font-mono);overflow:auto}.python-workspace__actions{gap:var(--space-2);padding:0 var(--space-3) var(--space-3);flex-wrap:wrap;display:flex}.python-workspace__actions button,.workspace-recovery button,.workspace-conflict button{min-height:var(--control-min-size);padding:0 var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text);cursor:pointer;font-weight:700}.python-workspace__actions button:first-child{background:linear-gradient(135deg, var(--color-cyan), var(--color-primary));color:#07111f;border-color:#0000}.python-workspace__actions button:disabled{cursor:not-allowed;opacity:.52}.workspace-output,.workspace-recovery,.workspace-conflict,.mentor-panel,.workspace-checklist{padding:var(--space-4)}.workspace-output header,.mentor-panel header{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.workspace-output h2,.mentor-panel h2,.workspace-checklist h2{color:var(--color-text);margin:0;font-size:1rem}.workspace-output header p,.mentor-panel p,.workspace-recovery p,.workspace-conflict p{margin:var(--space-2) 0;color:var(--color-text-muted);line-height:1.5}.workspace-output pre,.workspace-conflict pre{max-width:100%;padding:var(--space-3);border-radius:var(--radius-sm);color:#dbeafe;white-space:pre-wrap;background:#07111f;overflow:auto}.workspace-output__table{max-width:100%;overflow:auto}.workspace-output table{border-collapse:collapse;width:100%}.workspace-output th,.workspace-output td{padding:var(--space-2);border:1px solid var(--color-line);text-align:left;white-space:nowrap}.workspace-output img{border-radius:var(--radius-sm);max-width:100%;height:auto;display:block}.workspace-checklist ul,.mentor-panel__prompts{gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid}.workspace-checklist li{gap:var(--space-2);color:var(--color-text-muted);grid-template-columns:auto minmax(0,1fr);display:grid}.workspace-checklist li small{color:var(--color-text-muted);grid-column:2}.workspace-checklist li[data-status=passed]{color:var(--color-success)}.mentor-panel header span{color:var(--color-cyan);font-size:.75rem;font-weight:750}.mentor-panel details{margin-top:var(--space-3);color:var(--color-text-muted)}.workspace-recovery,.workspace-conflict{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.workspace-recovery p,.workspace-conflict p{flex:20rem}.workspace-conflict{border-color:#ffbe5b8c}@media (width<=74.99rem){.python-workspace__layout{grid-template-columns:minmax(10rem,.25fr) minmax(0,1fr)}.python-workspace__secondary{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=47.99rem){.python-workspace__header,.python-workspace__layout,.python-workspace__secondary{grid-template-columns:1fr;display:grid}.python-workspace__layout>aside{min-width:0}.workspace-file-tree ul{display:flex;overflow-x:auto}.workspace-file-tree li{flex:none}.workspace-code-editor{min-height:55vh}}@media (width<=63.99rem){.lms-dashboard__layout{grid-template-columns:1fr}.lms-dashboard__side{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=47.99rem){.lms-dashboard__header,.lms-dashboard__metrics,.lms-dashboard__side{grid-template-columns:1fr}.lms-dashboard__header{display:grid}.lms-dashboard__header>.ui-status-badge{justify-self:start}}@media (width<=74.99rem){.lms-shell{grid-template-columns:1fr}.lms-sidebar{display:none}.lms-menu-button,.lms-topbar__brand{display:inline-flex}.lms-mobile-nav{z-index:20;top:4.75rem;right:var(--page-gutter);left:var(--page-gutter);padding:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-panel);display:grid;position:fixed}}.course-page{gap:var(--space-5);min-width:0;display:grid}.course-page__header{justify-content:space-between;align-items:end;gap:var(--space-4);flex-wrap:wrap;display:flex}.course-page__header h1,.course-page__module h2,.course-page__lesson-title h3{overflow-wrap:anywhere;margin:0}.course-page__header p:not(.eyebrow),.course-page__module p{color:var(--color-text-muted)}.course-page__lessons{gap:var(--space-3);margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid}.course-page__lesson-title{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.course-page .ui-button{overflow-wrap:anywhere;text-align:center;max-width:100%}.courses-page{gap:var(--space-5);display:grid}.courses-page header h1{color:var(--color-text);letter-spacing:-.05em;margin:0;font-size:clamp(2rem,4vw,3.25rem)}.courses-page header>p:not(.eyebrow),.courses-page__card>p{color:var(--color-text-muted)}.courses-page__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));display:grid}.courses-page__card{gap:var(--space-4);display:grid}.courses-page__card .ui-card__title{margin-bottom:0}.courses-page__card p{margin:0}.progress-page,.achievements-page{gap:var(--space-5);display:grid}.progress-page header h1,.achievements-page header h1{color:var(--color-text);letter-spacing:-.05em;margin:0;font-size:clamp(2rem,4vw,3.25rem)}.progress-page header>p:not(.eyebrow),.achievements-page header>p:not(.eyebrow),.progress-page__metric p,.progress-page__course p,.achievements-page__card p{color:var(--color-text-muted);margin:0}.progress-page__metrics,.achievements-page__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));display:grid}.progress-page__metric,.progress-page__course,.achievements-page__card{gap:var(--space-3);display:grid}.progress-page__metric{align-items:start}.progress-page__metric .ui-card__title,.progress-page__course .ui-card__title,.achievements-page__card .ui-card__title{margin-bottom:0}.progress-page__metric strong{color:var(--color-text);font-size:1.5rem}.progress-page__courses{gap:var(--space-4);display:grid}.progress-page__courses h2{margin:0}.progress-page__course{grid-template-columns:minmax(0,1fr) minmax(9rem,.4fr);align-items:center}.progress-page__course .ui-card__title,.progress-page__course .ui-progress{grid-column:1/-1}.achievements-page__card time{color:var(--color-text-muted);font-size:.875rem}@media (width<=32rem){.progress-page__course{grid-template-columns:1fr}}@media (width<=28rem){.lms-topbar{gap:var(--space-1);padding-inline:var(--space-3)}.lms-topbar__brand,.lms-account__role{display:none}.lms-account{gap:0}}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{box-shadow:var(--focus-ring);outline-offset:3px;outline:0}.app-shell{min-height:100vh}.topbar{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe6;border-bottom:1px solid #e2e7efe6;grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr);align-items:center;min-height:72px;padding:0 40px;display:grid;position:sticky;top:0}.brand{width:fit-content;color:var(--navy);letter-spacing:-.02em;align-items:center;gap:11px;font-size:1rem;font-weight:750;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#786af8,#4b3bdd);border-radius:11px;place-items:center;width:36px;height:36px;font-family:Georgia,serif;font-size:1.25rem;display:grid;box-shadow:0 8px 20px #5d4df440}.main-nav{background:#f4f6fa;border-radius:12px;align-items:center;gap:6px;padding:4px;display:flex}.main-nav a{color:#667085;border-radius:9px;padding:9px 14px;font-size:.88rem;font-weight:650;text-decoration:none}.main-nav a.active{color:var(--navy);background:#fff;box-shadow:0 2px 8px #19243814}.account-menu{justify-content:flex-end;align-items:center;gap:10px;display:flex}.role-badge,.xp-badge,.course-label{border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:.76rem;font-weight:750;display:inline-flex}.role-badge{color:#5545df;background:#eeecff}.page-frame{width:min(1180px,100% - 48px);margin:0 auto;padding:46px 0 72px}main:not(.login-page){width:100%}.dashboard-hero{color:#fff;background:radial-gradient(circle at 88% 20%,#9e92ff8c,#0000 13rem),linear-gradient(135deg,#161d32 0%,#27204f 58%,#5545df 130%);border-radius:28px;justify-content:space-between;align-items:flex-end;gap:32px;padding:42px;display:flex;overflow:hidden;box-shadow:0 24px 60px #191d3c2e}.dashboard-hero h1{letter-spacing:-.055em;max-width:700px;margin:5px 0 12px;font-size:clamp(2.1rem,5vw,4rem);line-height:1}.eyebrow{color:#7b6cf6;letter-spacing:.13em;text-transform:uppercase;margin:0 0 8px;font-size:.76rem;font-weight:800}.dashboard-hero .eyebrow{color:#beb7ff}.hero-copy{color:#ffffffb8;max-width:570px;margin:0;font-size:1.03rem;line-height:1.65}.hero-stat{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff17;border:1px solid #ffffff24;border-radius:18px;min-width:150px;padding:20px;display:grid}.hero-stat strong{font-size:2.1rem;line-height:1}.hero-stat span{color:#ffffffa8;margin-top:8px;font-size:.78rem}.dashboard-section{margin-top:42px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:20px;display:flex}.section-heading h2{letter-spacing:-.035em;margin:0;font-size:1.75rem}.course-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px;display:grid}.course-card,main:not(.dashboard):not(.login-page)>section,main:not(.dashboard):not(.login-page)>article{background:var(--surface);box-shadow:var(--shadow);border:1px solid #e2e7efe6;border-radius:22px}.course-card{flex-direction:column;min-height:310px;padding:26px;display:flex}.course-card-topline,.progress-meta{justify-content:space-between;align-items:center;display:flex}.course-label{color:#4261a8;background:#eef3ff}.xp-badge{color:var(--success);background:#eaf8f2}.course-card h3{letter-spacing:-.025em;margin:28px 0 10px;font-size:1.45rem}.course-card h3 a{color:var(--ink);text-decoration:none}.course-next,.muted{color:var(--muted)}.course-next{min-height:42px;margin:0 0 28px;line-height:1.5}.progress-meta{color:var(--muted);margin-bottom:9px;font-size:.8rem}.progress-meta strong{color:var(--ink)}.progress-track{background:#edf0f5;border-radius:999px;height:7px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg,#7567f8,#4d3ddd);height:100%;display:block}.button{cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:12px;min-height:42px;padding:0 17px;font-weight:720;text-decoration:none;transition:all .16s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--primary);color:#fff;box-shadow:0 9px 22px #5d4df438}.button-primary:hover{background:var(--primary-dark)}.button-ghost{border:1px solid var(--line);color:#4c5668;background:#fff}.button-large{width:100%;min-height:50px}.button:disabled{opacity:.6;cursor:wait;transform:none}.course-action{justify-content:space-between;margin-top:auto}.empty-state{min-height:280px;color:var(--muted);text-align:center;border:1px dashed #cfd6e3;border-radius:22px;align-content:center;place-items:center;padding:32px;display:grid}.empty-state>span{color:#8b7ff8;font-size:2.5rem}.empty-state h3{color:var(--ink);margin:12px 0 0}.empty-state p{margin:6px 0 0}.login-page{grid-template-columns:minmax(420px,1.05fr) minmax(440px,.95fr);min-height:100vh;display:grid}.login-intro{color:#fff;background:radial-gradient(circle at 82% 24%,#8070ff8c,#0000 19rem),linear-gradient(150deg,#111827,#222046 65%,#4e3edc 145%);flex-direction:column;justify-content:space-between;min-height:100vh;padding:clamp(36px,6vw,84px);display:flex}.brand-light{color:#fff}.login-intro h1{letter-spacing:-.065em;max-width:700px;margin:14px 0 22px;font-size:clamp(2.6rem,6vw,5.5rem);line-height:.98}.login-intro>div>p:last-child{color:#ffffffb3;max-width:620px;font-size:1.05rem;line-height:1.7}.login-footnote{color:#ffffff80;margin:0;font-size:.8rem}.login-panel{background:#fff;place-items:center;min-height:100vh;padding:32px;display:grid}.login-card{width:min(420px,100%)}.login-card h2{color:var(--navy);letter-spacing:-.045em;margin:4px 0 8px;font-size:2.15rem}.login-card .muted{margin:0 0 32px;line-height:1.55}.login-card form,.login-card label{display:grid}.login-card form{gap:19px}.login-card label{color:#344054;gap:8px;font-size:.86rem;font-weight:700}input,textarea,select{width:100%;color:var(--ink);background:#fff;border:1px solid #d7dde8;border-radius:11px}input,select{min-height:48px;padding:0 14px}textarea{padding:14px;line-height:1.5}input::placeholder,textarea::placeholder{color:#9aa3b2}input:focus,textarea:focus,select:focus{border-color:#8073f7}.form-error{color:#b4233b;background:#fff1f2;border-radius:10px;margin:-5px 0 0;padding:11px 13px;font-size:.83rem}main:not(.dashboard):not(.login-page){max-width:960px;box-shadow:var(--shadow);background:#fff;border:1px solid #e2e7efe6;border-radius:24px;margin:0 auto;padding:34px}main:not(.dashboard):not(.login-page)>h1{letter-spacing:-.045em;margin:0 0 10px;font-size:clamp(1.9rem,4vw,3rem)}main ol,main ul{padding-left:1.4rem}main li{margin:12px 0}main article{border:1px solid var(--line);background:#fbfcfe;border-radius:16px;padding:22px}main button:not(.button){background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:10px;min-height:42px;padding:0 17px;font-weight:700}pre,code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}pre{color:#e8edf6;background:#121826;border-radius:12px;max-width:100%;padding:16px;overflow:auto}video{background:#101522;border-radius:14px;width:100%;display:block}[data-status=locked]{opacity:.55}@media (width<=900px){.topbar{grid-template-columns:1fr auto;padding:0 22px}.main-nav{z-index:30;border:1px solid var(--line);justify-content:space-around;position:fixed;bottom:14px;left:14px;right:14px;box-shadow:0 14px 35px #1924382e}.main-nav a{text-align:center;flex:1}.role-badge{display:none}.page-frame{width:min(100% - 28px,1180px);padding:28px 0 100px}.login-page{grid-template-columns:1fr}.login-intro{display:none}.login-panel{padding:24px}}@media (width<=600px){.topbar{min-height:64px;padding:0 14px}.brand>span:last-child{font-size:.88rem}.account-menu .button{min-height:38px;padding:0 12px}.dashboard-hero{border-radius:21px;flex-direction:column;align-items:flex-start;padding:28px 24px}.hero-stat{width:100%}.dashboard-section{margin-top:30px}.course-card{min-height:290px;padding:22px}main:not(.dashboard):not(.login-page){border-radius:18px;padding:24px 18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.datasets-page{gap:var(--space-5);display:grid}.datasets-page>header p,.datasets-page__card p{color:var(--color-text-muted)}.datasets-page__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.datasets-page__grid .ui-card{gap:var(--space-3);display:grid}.datasets-page__grid .ui-card p{margin:0}.dataset-dialog-backdrop{z-index:50;padding:var(--space-6);background:#030812c2;place-items:start center;display:grid;position:fixed;inset:0;overflow:auto}.dataset-dialog{width:min(100%,70rem);padding:var(--space-6);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-panel);margin:auto}.dataset-dialog>header,.dataset-dialog__mount,.dataset-preview__metadata{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.dataset-dialog h1,.dataset-dialog h2{margin:0}.dataset-dialog>header>button{min-width:var(--control-min-size)}.dataset-dialog>section{margin-top:var(--space-5)}.dataset-preview{gap:var(--space-4);display:grid}.dataset-preview__metadata{flex-wrap:wrap;margin:0}.dataset-preview__metadata div{min-width:8rem}.dataset-preview__metadata dt{color:var(--color-text-muted);font-size:.8125rem}.dataset-preview__metadata dd{margin:var(--space-1) 0 0;font-weight:700}.dataset-preview__columns{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.dataset-preview__columns li{padding:var(--space-1) var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius-sm);color:var(--color-text-muted)}.dataset-preview__table-wrap{border:1px solid var(--color-line);border-radius:var(--radius-sm);overflow-x:auto}.dataset-preview table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:34rem}.dataset-preview th,.dataset-preview td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-line);text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dataset-preview th{color:var(--color-text-muted);font-size:.8125rem}.dataset-dialog__mount{padding:var(--space-3) 0;border-top:1px solid var(--color-line);flex-wrap:wrap}.outline-editor{gap:var(--space-5);max-width:72rem;display:grid}.outline-editor>header,.outline-editor__module,.outline-editor__lesson{padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface-raised)}.outline-editor header,.outline-editor__module>header,.outline-editor__lesson>header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.outline-editor h1,.outline-editor h2,.outline-editor h3,.outline-editor p{margin-top:0}.outline-editor__module{gap:var(--space-4);display:grid}.outline-editor__lesson{gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);display:grid}.outline-editor ol{gap:var(--space-2);margin:0;padding-left:1.5rem;display:grid}.outline-editor li,.outline-editor form,.outline-editor__moves{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.outline-editor form{padding-top:var(--space-3);border-top:1px solid var(--color-line)}.outline-editor label{gap:var(--space-1);flex:14rem;font-weight:600;display:grid}.outline-editor input,.outline-editor select{min-height:var(--control-min-size)}.outline-editor__announcement{min-height:1.5rem;color:var(--color-success);margin:0;font-weight:650}.step-page{gap:var(--space-5);grid-template-columns:minmax(13rem,18rem) minmax(0,1fr);align-items:start;display:grid}.step-page>nav[aria-label=Хлебные\ крошки],.step-page>article,.step-page>.step-navigation{grid-column:2}.step-page>article,.step-outline,.step-navigation{padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface-raised)}.step-outline{grid-row:1/span 3}.step-outline h2,.step-outline h3{margin:0}.step-outline h2{color:var(--color-text);font-size:.95rem}.step-outline h3{margin-top:var(--space-3);color:var(--color-text-muted);font-size:.825rem}.step-outline ol{gap:var(--space-2);margin:var(--space-2) 0 var(--space-4);padding-left:1.2rem;display:grid}.step-outline li[data-status=locked]{color:var(--color-text-muted)}.step-navigation{justify-content:space-between;gap:var(--space-3);display:flex}.step-navigation .ui-button{align-items:center;text-decoration:none;display:inline-flex}.step-navigation .ui-button:disabled{cursor:not-allowed;opacity:.48}.ui-button--secondary{border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-text)}.step-test{gap:var(--space-4);margin-top:var(--space-5);display:grid}.step-test fieldset{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-sm);margin:0;display:grid}.step-test legend{font-weight:750}.step-test label{gap:var(--space-2);align-items:center;display:flex}.step-page--notebook{gap:var(--space-3);grid-template-columns:minmax(14rem,18rem) minmax(0,1fr)}.step-page--notebook>article{min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.step-page--notebook .step-outline{min-height:calc(100vh - 11rem);padding:var(--space-4);background:linear-gradient(180deg, #14263efa, #081422fa), var(--color-surface);align-self:stretch}.step-page--notebook .notebook-workspace{gap:var(--space-3);display:grid}.step-page--notebook .python-workspace__header{min-height:4.75rem;padding:var(--space-4) var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);background:radial-gradient(circle at 80% 0,#4d70ff2e,#0000 38%),linear-gradient(135deg,#111f35,#0b1728)}.step-page--notebook .python-workspace__header h1{font-size:clamp(1.3rem,2vw,1.85rem)}.step-page--notebook .python-workspace__layout{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(17rem,20rem)}.step-page--notebook .python-workspace__layout>aside:first-child{display:none}.step-page--notebook .python-workspace__main{border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);background:linear-gradient(160deg,#0f1d31,#0a1424);overflow:hidden}.step-page--notebook .workspace-tabs{min-height:3rem;padding:0 var(--space-3);background:#050d1970}.step-page--notebook .python-workspace__actions{min-height:3.4rem;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-line);background:#101f34b8;align-items:center}.step-page--notebook .python-workspace__actions [role=status]{color:var(--color-success);margin-left:auto;font-size:.8125rem;font-weight:700}.step-page--notebook .notebook-workspace__cells{gap:var(--space-3);padding:var(--space-3);background:#091321;display:grid}.step-page--notebook .notebook-cell{border-radius:var(--radius-sm);background:#101e31;border:1px solid #94b0de33;overflow:hidden}.step-page--notebook .notebook-cell>header{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:0 var(--space-3);border-bottom:1px solid var(--color-line);color:#a69cff;background:#14253d;display:flex}.step-page--notebook .notebook-cell>header div{gap:var(--space-1);flex-wrap:wrap;display:flex}.step-page--notebook .notebook-cell button{min-height:2rem;padding:0 var(--space-2);color:var(--color-text-muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:.4rem;font-size:.75rem}.step-page--notebook .notebook-cell button:first-child{color:#fff;background:linear-gradient(135deg,#2563d8,#3c76f5);border-color:#4ba7ff70}.step-page--notebook .notebook-cell textarea{width:100%;min-height:8rem;padding:var(--space-4);color:var(--color-text);font:.94rem/1.6 var(--font-sans);resize:vertical;background:#101e31;border:0;display:block}.step-page--notebook .python-workspace__secondary{align-content:start}.step-page--notebook .mentor-panel,.step-page--notebook .workspace-checklist,.workspace-deadline{background:radial-gradient(circle at 100% 0,#26d1da1a,#0000 44%),linear-gradient(145deg,#122a3e,#0d1d30);border-color:#49cbdc33}.workspace-deadline{padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:var(--shadow-panel)}.workspace-deadline h2,.workspace-deadline p{margin:0}.workspace-deadline h2{color:var(--color-cyan);font-size:1rem}.workspace-deadline p{margin-top:var(--space-2);color:var(--color-text);font-weight:750}.workspace-deadline small{margin-top:var(--space-2);color:var(--color-text-muted);line-height:1.45;display:block}.step-completion{gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);background:linear-gradient(135deg,#135f4c8a,#0c2632e0);border:1px solid #45e59a66;display:grid}.step-completion h2,.step-completion p{margin:0}.step-completion ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.step-completion li[data-status=passed]{color:var(--color-success)}.lms-shell .lms-shell__main>main.lms-content{width:min(100%,104rem)!important;max-width:none!important;padding:var(--space-6) var(--page-gutter) 4rem!important;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;margin:0 auto!important}.lms-shell .lms-content>main.step-page{width:100%!important;max-width:none!important;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;margin:0!important;padding:0!important}@media (width<=63.99rem){.step-page{grid-template-columns:1fr}.step-page>nav[aria-label=Хлебные\ крошки],.step-page>article,.step-page>.step-navigation,.step-outline{grid-area:auto/1}.step-page--notebook .python-workspace__layout{grid-template-columns:1fr}.step-page--notebook .python-workspace__secondary{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=47.99rem){.outline-editor>header,.outline-editor__module,.outline-editor__lesson{padding:var(--space-3)}.outline-editor header{flex-direction:column;align-items:flex-start}}@media (width<=28rem){.lms-content{padding-inline:var(--space-2)!important}.outline-editor,.outline-editor>*,.outline-editor__module,.outline-editor__lesson,.outline-editor li,.outline-editor form,.outline-editor label{min-width:0}.outline-editor ol{padding-left:1rem}.outline-editor h1,.outline-editor h2,.outline-editor h3,.outline-editor li,.outline-editor label{overflow-wrap:anywhere}.outline-editor input,.outline-editor select,.outline-editor textarea,.outline-editor__moves{width:100%;max-width:100%}}@media (width<=47.99rem){.dataset-dialog-backdrop{padding:var(--space-3)}.dataset-dialog{padding:var(--space-4)}.step-page--notebook .python-workspace__secondary{grid-template-columns:1fr}.step-page--notebook .notebook-cell>header{padding:var(--space-2) var(--space-3);flex-direction:column;align-items:flex-start}.step-page--notebook .python-workspace__actions [role=status]{width:100%;margin-left:0}}@media (width<=28rem){.lms-topbar{padding-inline:var(--space-2)}.lms-account__role,.lms-account__profile{display:none!important}}
