@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{font-family:Inter,Noto Sans SC,system-ui,sans-serif;color:#20242b;background:#f4f5f7;font-synthesis:none;text-rendering:optimizeLegibility;--green: #17745a;--green-dark: #105d48;--green-soft: #e9f5f0;--blue: #2463a9;--amber: #b66a16;--ink: #20242b;--muted: #6c737f;--border: #dfe2e7;--surface: #ffffff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,textarea{font:inherit}button{letter-spacing:0}.app-shell{min-height:100vh;background:#f4f5f7}.topbar{height:64px;display:grid;grid-template-columns:260px 1fr 260px;align-items:center;border-bottom:1px solid var(--border);background:#fffffff5;padding:0 20px;position:sticky;top:0;z-index:30}.brand-group,.today-status,.agent-heading,.output-heading span,.task-line,.toolbar-actions{display:flex;align-items:center}.brand-group{gap:10px}.brand-mark,.agent-icon{width:36px;height:36px;display:grid;place-items:center;background:var(--green);color:#fff;border-radius:7px}.brand-group strong,.brand-group span{display:block;letter-spacing:0}.brand-group strong{font-size:15px}.brand-group span{color:var(--muted);font-size:11px;margin-top:2px}.today-status{justify-self:center;gap:8px;color:#4d5560;font-size:13px}.status-dot{width:7px;height:7px;border-radius:50%;background:#20a375;box-shadow:0 0 0 3px #dcf4ea}.header-divider{width:1px;height:16px;background:var(--border);margin:0 4px}.avatar{justify-self:end;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#eef0f3;color:#4d5560;font-size:13px;font-weight:700}.top-actions{justify-self:end;display:flex;align-items:center;gap:3px}.workspace{display:grid;grid-template-columns:244px minmax(520px,1fr) 350px;max-width:1580px;margin:0 auto;min-height:calc(100vh - 64px)}.course-sidebar,.agent-sidebar{background:var(--surface)}.course-sidebar{border-right:1px solid var(--border);padding:22px 18px}.agent-sidebar{position:sticky;top:64px;height:calc(100vh - 64px);border-left:1px solid var(--border);padding:18px 16px 0;display:flex;flex-direction:column;overflow:hidden}.sidebar-title{display:flex;align-items:flex-start;justify-content:space-between}.sidebar-title span,.sidebar-title strong{display:block}.sidebar-title span{font-size:13px;font-weight:700}.sidebar-title strong{font-size:11px;color:var(--muted);margin-top:5px;font-weight:500}.overall-progress,.progress-track{overflow:hidden;background:#e8eaee}.overall-progress{height:4px;margin:13px 0 24px}.overall-progress span,.progress-track span{display:block;height:100%;background:var(--green);transition:width .25s ease}.phase{margin-bottom:22px}.phase-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.phase-heading strong,.phase-heading span{display:block}.phase-heading strong{font-size:12px}.phase-heading div span{color:#9298a1;font-size:9px;margin-top:3px}.phase-heading>span{color:#c2c6cc;font-size:10px;font-weight:700}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day-button{aspect-ratio:1;min-width:0;border:1px solid #e4e6e9;background:#f5f6f8;color:#a1a6ae;display:grid;place-items:center;font-size:10px;border-radius:4px}.day-button.done{border-color:#cae5db;background:var(--green-soft);color:var(--green)}.day-button.current{border-color:var(--green);background:var(--green);color:#fff;box-shadow:0 0 0 2px #d6eee5;font-weight:700}.review-callout{display:flex;gap:9px;margin-top:10px;padding:12px;background:#fff8eb;color:var(--amber);border-left:3px solid #e5a344}.review-callout strong,.review-callout span{display:block}.review-callout strong{font-size:11px}.review-callout span{margin-top:4px;color:#7b6a52;font-size:10px;line-height:1.5}.learning-main{min-width:0;padding:26px clamp(24px,4vw,58px) 36px}.lesson-progress>div:first-child{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;font-size:11px;color:var(--muted)}.lesson-progress strong{color:var(--green)}.step-status{padding:3px 7px;border-radius:3px;background:#edf0f2;color:#68727c;font-size:9px;font-weight:700}.step-status.passed{background:var(--green-soft);color:var(--green)}.step-status.retry,.step-status.needs_explanation{background:#fff3df;color:#9a641e}.step-status.in_progress{background:#eaf2f8;color:#315f7e}.progress-track{height:5px;margin-top:9px;border-radius:2px}.lesson-copy{padding:28px 0 20px}.lesson-copy h1{margin:0;font-size:27px;line-height:1.25;letter-spacing:0}.lesson-copy>p{color:#5d6570;font-size:14px;line-height:1.8;margin:11px 0 16px;max-width:720px}.task-line{gap:7px;min-height:40px;padding:9px 12px;background:#edf5fa;border-left:3px solid var(--blue);color:#35546e;font-size:12px;line-height:1.6}.task-line strong{color:#1d435f;white-space:nowrap}.editor-panel{border:1px solid #303944;background:#1e242b;border-radius:7px;overflow:hidden;box-shadow:0 12px 28px #1a1f261f}.panel-toolbar{height:44px;display:flex;justify-content:space-between;align-items:center;padding:0 10px 0 14px;background:#252c34;border-bottom:1px solid #39424d;color:#c7cdd4}.file-tab{display:flex;gap:8px;align-items:center;font-family:ui-monospace,monospace;font-size:11px}.python-icon{display:grid;place-items:center;width:23px;height:20px;border-radius:3px;background:#295c86;color:#ffe66d;font-family:Inter,sans-serif;font-size:9px;font-weight:700}.toolbar-actions{gap:6px}.tool-button,.run-button,.secondary-button,.submit-button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-weight:600}.tool-button{height:30px;padding:0 9px;background:transparent;color:#aeb7c1;font-size:11px}.tool-button:hover{background:#323b45;color:#fff}.tool-button.stop{color:#ffaaa1}.run-button{height:30px;padding:0 12px;background:#2b9a72;color:#fff;border-radius:4px;font-size:11px}.run-button:hover{background:#238260}.output-panel{min-height:112px;border-top:1px solid #39424d;background:#171c21}.output-heading{height:33px;padding:0 13px;display:flex;align-items:center;justify-content:space-between;color:#7f8994;font-size:10px;border-bottom:1px solid #282f36}.output-heading span:first-child{gap:6px;color:#aab2bb}.output-panel pre{margin:0;padding:12px 14px 16px;color:#cbd3dc;font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;min-height:72px;overflow-wrap:anywhere}.output-panel.has-error pre{color:#ffada6}.step-navigation{display:grid;grid-template-columns:110px 1fr 110px;align-items:center;margin-top:18px}.secondary-button{height:36px;padding:0 12px;border:1px solid #d8dce1;border-radius:5px;color:#4d5560;background:#fff;font-size:11px}.secondary-button:last-child{justify-self:end}.secondary-button:disabled{opacity:.42;cursor:not-allowed}.secondary-button.next-ready{border-color:var(--green);color:var(--green)}.step-dots{display:flex;justify-content:center;gap:7px}.step-dots button{width:24px;height:24px;padding:0;display:grid;place-items:center;border:1px solid #d8dce1;border-radius:50%;background:#fff;color:#8b939c;font-size:9px;cursor:pointer}.step-dots button.active{border-color:var(--green);background:var(--green);color:#fff}.step-dots button.past:not(.active){border-color:#a8d4c4;background:var(--green-soft);color:var(--green)}.step-dots button:disabled{background:#eceef0;color:#adb3ba;cursor:not-allowed}.assessment-main{display:flex;align-items:flex-start;justify-content:center}.assessment-view,.completion-view{width:min(760px,100%);padding:32px 0 50px}.assessment-kicker{display:flex;align-items:center;gap:6px;color:var(--green);font-size:10px;font-weight:700}.assessment-view>h1,.completion-view h1{margin:12px 0 8px;font-size:27px;letter-spacing:0}.assessment-view>p,.completion-view>p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.assessment-actions{display:flex;justify-content:flex-end;margin:-28px 0 24px}.assessment-actions button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:#68727d;font-size:10px;cursor:pointer}.quiz-list{display:grid;gap:11px;margin-top:28px}.quiz-question{display:block;padding:16px;border:1px solid var(--border);border-radius:6px;background:#fff}.quiz-question>span{display:flex;align-items:center;gap:7px;color:#78818b;font-size:9px}.quiz-question>span b{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#edf3f6;color:#315b74;font-size:9px}.quiz-question>strong{display:block;margin:10px 0;font-size:12px;line-height:1.6}.quiz-question textarea,.checkin-grid textarea,.checkin-grid input{width:100%;border:1px solid #d9dde2;border-radius:5px;outline:none;background:#fbfcfd;color:var(--ink);font-size:11px;line-height:1.6}.quiz-question textarea{min-height:78px;resize:vertical;padding:9px 10px}.quiz-question textarea:focus,.checkin-grid textarea:focus,.checkin-grid input:focus{border-color:var(--green);box-shadow:0 0 0 2px #def0e9;background:#fff}.quiz-result{margin-top:14px;padding:14px 16px;border-left:3px solid #d09239;background:#fff8eb}.quiz-result.passed{border-color:var(--green);background:#edf7f3}.quiz-result>div{display:flex;align-items:center;justify-content:space-between}.quiz-result span{color:#805b24;font-size:10px;font-weight:700}.quiz-result.passed span{color:var(--green)}.quiz-result strong{font-size:19px}.quiz-result small{margin-left:2px;color:var(--muted);font-size:9px}.quiz-result p{margin:8px 0 0;color:#58616b;font-size:10px;line-height:1.7;white-space:pre-wrap}.assessment-notice{margin:12px 0 0!important;padding:9px 11px;border-left:3px solid #6892ad;background:#eef4f7;color:#405d70!important;font-size:10px!important}.assessment-primary{min-height:40px;margin-top:16px;padding:0 17px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:5px;background:var(--green);color:#fff;font-size:11px;font-weight:700;cursor:pointer}.assessment-primary:disabled{background:#aeb6bd;cursor:not-allowed}.checkin-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:28px}.checkin-grid label{display:block}.checkin-grid label>span{display:block;margin-bottom:7px;color:#555f69;font-size:10px;font-weight:700}.checkin-grid input{height:40px;padding:0 10px}.checkin-grid textarea{min-height:92px;padding:9px 10px;resize:vertical}.completion-view{padding-top:80px;text-align:center}.completion-mark{width:58px;height:58px;margin:0 auto 17px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff}.completion-view>span{color:var(--green);font-size:10px;font-weight:700}.completion-view>p{max-width:520px;margin-inline:auto}.completion-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:28px 0 10px;border:1px solid var(--border);background:var(--border)}.completion-summary>div{min-height:100px;padding:17px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff}.completion-summary svg{color:var(--green)}.completion-summary strong{margin-top:7px;font-size:15px}.completion-summary span{margin-top:4px;color:var(--muted);font-size:9px}.agent-heading{flex:0 0 auto;gap:10px;padding-bottom:13px;border-bottom:1px solid #eceef1}.agent-icon{background:#243b53}.agent-heading strong,.agent-heading span{display:block}.agent-heading strong{font-size:13px}.agent-heading span{font-size:10px;color:var(--muted);margin-top:4px}.agent-heading i{display:inline-block;width:6px;height:6px;background:#d59b3d;border-radius:50%;margin-right:4px}.agent-model-select{display:block;margin-top:16px}.agent-model-select span{display:block;margin-bottom:6px;color:#8a919b;font-size:9px;font-weight:700;text-transform:uppercase}.agent-model-select select{width:100%;height:34px;border:1px solid #dce0e5;border-radius:4px;background:#fff;color:#35404b;padding:0 8px;font-size:11px}.message-label{color:#8a919b;font-size:9px;font-weight:700;text-transform:uppercase}.submit-button{width:100%;min-height:38px;margin-top:9px;border-radius:5px;background:var(--green);color:#fff;font-size:11px}.submit-button:hover{background:var(--green-dark)}.submit-button:disabled{background:#adb5bd;cursor:not-allowed}.thread-context{flex:0 0 auto;margin:11px 0 0;padding:8px 10px;border-left:2px solid #89a9bd;background:#f3f6f8}.thread-context span{color:#7c8791;font-size:8px;font-weight:700}.thread-context p{margin:3px 0 0;color:#4b5965;font-size:9px;line-height:1.5}.agent-thread{flex:1 1 auto;min-height:180px;overflow-y:auto;padding:13px 4px 14px 0;scrollbar-width:thin;scrollbar-color:#d5d9dd transparent}.thread-message{width:fit-content;max-width:90%;margin-bottom:11px;padding:10px 11px;border-radius:6px;font-size:10px;line-height:1.65;overflow-wrap:anywhere}.thread-message p{margin:5px 0 0;white-space:pre-wrap}.assistant-message{background:#f0f3f5;color:#3f4b56;border-top-left-radius:2px}.user-message{margin-left:auto;background:#e8f4ef;color:#2c5545;border-top-right-radius:2px}.message-author{display:flex;align-items:center;gap:5px;color:#75808a;font-size:8px;font-weight:700}.user-message .message-author{justify-content:flex-end;color:#4f806d}.message-kind{display:inline-block;margin-top:7px;color:#7a858e;font-size:8px}.thinking-message{display:flex;align-items:center;gap:4px;min-width:100px}.thinking-message .message-author{margin-right:4px}.thinking-message>span{width:5px;height:5px;border-radius:50%;background:#88949e;animation:thinking 1.1s ease-in-out infinite}.thinking-message>span:nth-of-type(2){animation-delay:.15s}.thinking-message>span:nth-of-type(3){animation-delay:.3s}@keyframes thinking{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.review-result{margin-bottom:12px;padding:12px;border:1px solid #dfe3e6;border-left:3px solid #d49335;background:#fff;border-radius:4px}.review-result-head{display:flex;justify-content:space-between;align-items:center}.decision-badge{display:inline-flex;align-items:center;gap:5px;color:#9a651e;font-size:9px;font-weight:700}.decision-badge.passed{color:var(--green)}.review-result-head>strong{font-size:18px}.review-result-head>strong small{color:#9299a1;font-size:9px;font-weight:500}.review-result>p{margin:10px 0 0;color:#414c56;font-size:10px;line-height:1.65}.review-evidence{margin-top:10px;padding-top:9px;border-top:1px solid #eceef0}.review-evidence>span,.review-next>span{color:#89919a;font-size:8px;font-weight:700}.review-evidence ul{margin:6px 0 0;padding-left:15px;color:#5b6570;font-size:9px;line-height:1.55}.review-next{margin-top:10px;padding:8px 9px;background:#eef5f1}.review-next p{margin:3px 0 0;color:#32604e;font-size:9px;line-height:1.55}.agent-composer{flex:0 0 auto;margin-inline:-16px;padding:10px 16px 14px;border-top:1px solid #e3e6e9;background:#fff}.composer-tabs{display:grid;grid-template-columns:1fr 1fr;padding:3px;background:#f0f2f4;border-radius:5px}.composer-tabs button{min-height:29px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;color:#77818b;border-radius:4px;font-size:9px;cursor:pointer}.composer-tabs button.active{background:#fff;color:#263b4d;box-shadow:0 1px 3px #191f261a;font-weight:700}.quick-prompts{display:flex;gap:5px;margin-top:9px;overflow-x:auto}.quick-prompts button{flex:0 0 auto;min-height:25px;padding:0 8px;border:1px solid #dfe3e6;background:#fff;color:#61707c;border-radius:4px;font-size:8px;cursor:pointer}.quick-prompts button:hover{border-color:#9ab9ac;color:var(--green)}.chat-input-wrap{position:relative;margin-top:7px}.chat-input-wrap textarea,.review-explanation{width:100%;min-height:68px;resize:none;padding:9px 38px 9px 10px;border:1px solid #d7dce0;border-radius:5px;outline:none;color:var(--ink);font-size:10px;line-height:1.55}.chat-input-wrap textarea:focus,.review-explanation:focus{border-color:var(--green);box-shadow:0 0 0 2px #def0e9}.chat-input-wrap>button{position:absolute;right:6px;bottom:6px;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:4px;background:var(--green);color:#fff;cursor:pointer}.chat-input-wrap>button:disabled{background:#b7bec4}.review-explanation{min-height:74px;margin-top:8px;padding-right:10px}.review-prerequisite{display:flex;align-items:center;gap:6px;margin-top:8px;padding:7px 8px;background:#fff7e9;color:#7b5b28;font-size:8px}.agent-notice{margin:8px 0 0;padding:7px 8px;background:#fff2ef;color:#8a453d;font-size:8px;line-height:1.5}.closure-sidebar{height:100%}.closure-list{display:grid;gap:0;margin-top:24px}.closure-list>div{position:relative;min-height:55px;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}.closure-list>div:not(:last-child):after{content:"";position:absolute;left:13px;top:29px;width:1px;height:25px;background:#dfe3e6}.closure-list>div>span{width:27px;height:27px;display:grid;place-items:center;border:1px solid #d9dde1;border-radius:50%;background:#fff;color:#9299a1;font-size:9px}.closure-list>div.done>span{border-color:var(--green);background:var(--green);color:#fff}.closure-list>div.current>span{border-color:#3f7798;background:#eaf2f7;color:#315f7a}.closure-list p,.closure-list strong,.closure-list small{display:block;margin:0}.closure-list strong{margin-top:2px;color:#3f4851;font-size:10px}.closure-list small{margin-top:4px;color:#90979f;font-size:8px}.closure-list .done small{color:var(--green)}.icon-button{width:34px;height:34px;border:0;background:transparent;display:grid;place-items:center;color:#59616c;cursor:pointer;border-radius:5px}.icon-button:hover{background:#eef0f2}.mobile-only,.sidebar-scrim{display:none}.app-loading,.empty-workspace{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:12px;color:#5f6873;background:#f4f5f7}.app-loading span{font-size:13px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-workspace{flex-direction:column;text-align:center}.empty-workspace h1{margin:5px 0 0;font-size:22px}.empty-workspace p{margin:0;font-size:13px;color:var(--muted)}.empty-workspace button{margin-top:10px;border:1px solid var(--border);background:#fff;padding:9px 18px;border-radius:5px;cursor:pointer}.login-page{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;background:#f4f5f7}.login-brand{display:flex;align-items:center;gap:11px;padding:24px 30px}.login-logo{width:44px;height:44px;display:grid;place-items:center;color:#fff;background:var(--green);border-radius:7px}.login-brand strong,.login-brand span{display:block}.login-brand strong{font-size:16px}.login-brand span{color:var(--muted);font-size:10px;margin-top:3px}.login-form-wrap{align-self:center;justify-self:center;width:min(430px,calc(100vw - 32px));background:#fff;border:1px solid var(--border);padding:34px 36px;box-shadow:0 18px 50px #1d242c14}.login-heading>span{display:flex;align-items:center;gap:6px;color:var(--green);font-size:10px;font-weight:700}.login-heading h1{margin:15px 0 8px;font-size:25px;letter-spacing:0}.login-heading p{margin:0 0 26px;color:var(--muted);font-size:12px;line-height:1.7}.login-form{display:grid;gap:17px}.login-form label>span,.model-form label>span,.compact-form label>span,.provider-form label>span,.module-fields label>span{display:block;margin-bottom:7px;color:#525b66;font-size:10px;font-weight:700}.login-form input,.model-form input,.model-form select,.compact-form input,.compact-form select,.provider-form input,.module-fields input,.module-fields textarea,.module-create-form input{width:100%;height:42px;border:1px solid #d9dde2;border-radius:5px;padding:0 11px;outline:none;background:#fff;color:var(--ink);font-size:12px}.login-form input:focus,.model-form input:focus,.model-form select:focus,.compact-form input:focus,.provider-form input:focus,.module-fields input:focus,.module-fields textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px #def0e9}.password-input{position:relative}.password-input input{padding-right:42px}.password-input button{position:absolute;right:5px;top:4px;width:34px;height:34px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer}.login-submit{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:5px;background:var(--green);color:#fff;font-size:12px;font-weight:700;cursor:pointer}.login-submit:disabled{background:#aab3bb;cursor:not-allowed}.change-logout{justify-content:center}.form-error{margin:-4px 0 0;padding:9px 10px;background:#fff0ef;color:#a23c32;font-size:10px}.login-page footer{padding:20px;color:#9399a2;text-align:center;font-size:9px}.settings-shell{min-height:100vh;background:#f4f5f7}.settings-topbar{height:62px;display:grid;grid-template-columns:60px 1fr auto;align-items:center;padding:0 20px;border-bottom:1px solid var(--border);background:#fff}.settings-title{display:flex;align-items:center;gap:9px}.settings-title strong,.settings-title span{display:block}.settings-title strong{font-size:13px}.settings-title span{margin-top:3px;color:var(--muted);font-size:9px}.text-action{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:#66707b;font-size:11px;cursor:pointer}.settings-content{width:min(1040px,calc(100% - 40px));margin:0 auto;padding:38px 0 70px}.settings-intro span,.section-heading span{color:var(--green);font-size:9px;font-weight:700;text-transform:uppercase}.settings-intro h1{margin:10px 0 8px;font-size:25px}.settings-intro p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px;margin-top:28px}.profile-card{background:#fff;border:1px solid var(--border);padding:17px;border-radius:6px}.profile-card-head{display:grid;grid-template-columns:36px 1fr 32px;align-items:center;gap:9px}.provider-badge{width:34px;height:34px;display:grid;place-items:center;background:#edf4f7;color:#285a76;font-size:10px;font-weight:700}.profile-card-head strong,.profile-card-head span{display:block}.profile-card-head strong{font-size:12px}.profile-card-head span{margin-top:3px;color:var(--muted);font-size:9px}.danger-icon{color:#a35d57}.profile-card dl{display:grid;gap:8px;margin:17px 0;padding:13px 0;border-block:1px solid #eceef1}.profile-card dl div{display:grid;grid-template-columns:82px 1fr;font-size:10px}.profile-card dt{color:var(--muted)}.profile-card dd{margin:0;color:#353d46;font-family:ui-monospace,monospace;overflow-wrap:anywhere}.profile-defaults{display:grid;grid-template-columns:1fr 1fr;gap:6px}.profile-defaults button{min-height:31px;border:1px solid #dce0e4;background:#fff;color:#69727c;border-radius:4px;font-size:9px;cursor:pointer}.profile-defaults button.selected{display:inline-flex;align-items:center;justify-content:center;gap:4px;border-color:#b9dccf;background:var(--green-soft);color:var(--green)}.settings-form-section,.admin-section{margin-top:28px;background:#fff;border:1px solid var(--border);padding:22px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-heading h2{margin:5px 0 0;font-size:16px}.model-form{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.model-form select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.toggle-fields{grid-column:1 / -1;display:flex;gap:20px;padding:11px 0}.toggle-fields label{display:flex;align-items:center;gap:7px;font-size:10px;color:#4f5862}.toggle-fields input{width:15px;height:15px}.form-footer{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding-top:13px;border-top:1px solid #eceef1}.form-footer p{display:flex;align-items:center;gap:6px;margin:0;color:var(--muted);font-size:10px}.form-footer button,.compact-form>button,.provider-form>button,.module-fields>button{min-height:36px;border:0;border-radius:4px;background:var(--green);color:#fff;padding:0 16px;font-size:10px;font-weight:700;cursor:pointer}.inline-message{grid-column:1 / -1;margin:0;padding:9px;background:#f0f5f2;color:#426455;font-size:10px}.admin-shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr;background:#f4f5f7}.admin-nav{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 15px;background:#202831;color:#fff}.admin-brand{display:flex;gap:10px;align-items:center;padding:0 5px 22px;border-bottom:1px solid #343d47}.admin-brand .brand-mark{background:#3b8f70}.admin-brand strong,.admin-brand span{display:block}.admin-brand strong{font-size:13px}.admin-brand span{margin-top:3px;color:#8f9ba7;font-size:9px}.admin-nav nav{display:grid;gap:5px;margin-top:20px}.admin-nav nav button,.admin-nav-footer button{display:flex;align-items:center;gap:9px;min-height:39px;border:0;background:transparent;color:#aeb8c1;text-align:left;padding:0 10px;border-radius:4px;font-size:10px;cursor:pointer}.admin-nav nav button.active{background:#304039;color:#dff3eb}.admin-nav-footer{margin-top:auto;padding-top:14px;border-top:1px solid #343d47}.admin-nav-footer>span{display:block;padding:0 10px 8px;color:#7f8b96;font-size:9px}.admin-nav-footer button{min-height:31px;width:100%}.admin-main{min-width:0;width:min(1180px,100%);padding:30px 36px 60px}.admin-header{display:flex;justify-content:space-between;align-items:center}.admin-header span{color:var(--muted);font-size:10px}.admin-header h1{margin:5px 0 0;font-size:24px}.admin-status{display:flex;align-items:center;gap:6px;color:#66717b;font-size:9px}.admin-status i,.table-row i{width:7px;height:7px;display:inline-block;border-radius:50%;background:#35a279}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}.stat-row>div{padding:15px 17px;background:#fff;border:1px solid var(--border)}.stat-row span,.stat-row strong{display:block}.stat-row span{color:var(--muted);font-size:9px}.stat-row strong{margin-top:6px;font-size:20px}.admin-notice{margin-top:14px;padding:11px 13px;background:#fff8eb;border-left:3px solid #dca04a;color:#6f582e;font-size:10px;overflow-wrap:anywhere}.compact-form{display:grid;grid-template-columns:1fr 1fr 150px auto;gap:12px;align-items:end}.data-table{border:1px solid #e4e7eb}.table-row{display:grid;grid-template-columns:1.3fr .7fr 1fr .6fr .5fr;align-items:center;min-height:54px;padding:0 14px;border-top:1px solid #eceef1;font-size:10px}.table-row:first-child{border-top:0}.table-head{min-height:34px;background:#f5f6f8;color:#7e8791;font-weight:700}.table-row strong,.table-row small{display:block}.table-row small{margin-top:3px;color:var(--muted)}.table-row i{margin-right:5px}.table-row i.disabled{background:#aab0b7}.table-row button{border:0;background:transparent;color:var(--blue);font-size:9px;cursor:pointer}.table-row button:disabled{color:#b5bac0}.table-row select{height:30px;border:1px solid #dce0e4;background:#fff;font-size:9px}.module-permissions{display:flex;gap:9px;flex-wrap:wrap}.module-permissions label{display:inline-flex;align-items:center;gap:4px;font-size:9px}.module-permissions input{width:13px;height:13px}.provider-form{display:grid;grid-template-columns:1fr 1.5fr .8fr 1.5fr auto;gap:12px;align-items:end}.provider-form>button,.module-fields>button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.provider-list{display:grid;gap:8px}.provider-list>div{display:grid;grid-template-columns:42px 1fr auto;align-items:center;padding:10px;border:1px solid #e5e8eb}.provider-list p{margin:0}.provider-list strong,.provider-list small{display:block}.provider-list strong{font-size:11px}.provider-list small{margin-top:4px;color:var(--muted);font-size:9px}.provider-list em{font-style:normal;font-size:9px}.provider-list em.ready{color:var(--green)}.provider-list em.pending{color:var(--amber)}.module-admin-list{display:grid;gap:13px}.module-admin-list article{display:grid;grid-template-columns:42px 1fr;gap:15px;padding:16px;border:1px solid #e4e7ea}.module-number{color:#b2b7bd;font-size:12px;font-weight:700}.module-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.module-fields .wide{grid-column:1 / -1}.module-fields textarea{height:110px;resize:vertical;padding:10px;line-height:1.6}.module-fields>button{align-self:end;justify-self:end}.module-create-form{display:grid;grid-template-columns:.8fr 1fr 1.5fr auto;align-items:end;gap:12px}.module-create-form label>span{display:block;margin-bottom:7px;color:#525b66;font-size:10px;font-weight:700}.module-create-form button{min-height:42px;border:0;border-radius:4px;background:var(--green);color:#fff;padding:0 16px;font-size:10px;font-weight:700}.curriculum-create form{display:grid;grid-template-columns:1.1fr 90px 100px 1.2fr auto;gap:12px;align-items:end}.curriculum-create label>span,.curriculum-editor label>span{display:block;margin-bottom:7px;color:#525b66;font-size:10px;font-weight:700}.curriculum-create input,.curriculum-create select,.curriculum-editor input,.curriculum-editor select,.curriculum-editor textarea{width:100%;border:1px solid #d9dde2;border-radius:4px;outline:none;background:#fff;color:var(--ink);font-size:10px}.curriculum-create input,.curriculum-create select,.curriculum-editor input,.curriculum-editor select{height:38px;padding:0 9px}.curriculum-create button,.curriculum-block-heading button,.curriculum-publish-bar button{min-height:38px;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:4px;background:var(--green);color:#fff;font-size:9px;font-weight:700;cursor:pointer}.curriculum-create button:disabled,.curriculum-publish-bar button:disabled{background:#aeb5bc;cursor:not-allowed}.curriculum-workbench{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start;padding:0;background:transparent;border:0}.curriculum-revisions{position:sticky;top:20px;padding:17px;border:1px solid var(--border);background:#fff}.curriculum-revisions .section-heading{margin-bottom:12px}.revision-list{display:grid;gap:5px}.revision-list>button{min-width:0;padding:10px;border:1px solid transparent;border-radius:4px;background:#f5f6f7;color:var(--ink);text-align:left;cursor:pointer}.revision-list>button.active{border-color:#8fc4b0;background:var(--green-soft)}.revision-list button>span{display:flex;align-items:center;justify-content:space-between;color:#7b848d;font-size:8px}.revision-list strong,.revision-list small{display:block;overflow-wrap:anywhere}.revision-list strong{margin-top:6px;font-size:10px}.revision-list small{margin-top:4px;color:#838b94;font-size:8px;line-height:1.5}.revision-list em,.editor-heading-actions>em{padding:2px 5px;border-radius:3px;font-style:normal;font-size:7px}.revision-list em.published,.editor-heading-actions>em.published{background:var(--green-soft);color:var(--green)}.revision-list em.draft,.editor-heading-actions>em.draft{background:#eaf2f8;color:#315f7e}.revision-list em.archived,.editor-heading-actions>em.archived{background:#eceef0;color:#747c85}.empty-list{margin:0;padding:14px 8px;color:#9299a1;font-size:9px;text-align:center}.curriculum-editor{min-width:0;border:1px solid var(--border);background:#fff}.editor-heading{min-height:70px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8eaed}.editor-heading span{color:var(--green);font-size:8px;font-weight:700}.editor-heading h2{margin:5px 0 0;font-size:16px}.editor-heading-actions{display:flex;align-items:center;gap:5px}.editor-heading-actions>button{min-height:30px;padding:0 8px;display:inline-flex;align-items:center;gap:5px;border:1px solid #dce0e4;border-radius:4px;background:#fff;color:#5e6872;font-size:8px;cursor:pointer}.editor-heading-actions>button:hover{border-color:#9abdad;color:var(--green)}.editor-heading-actions>button.rollback{border-color:#e0c5a4;color:#94601f}.editor-heading-actions>button:disabled{opacity:.5;cursor:not-allowed}.editor-heading-actions>em{margin-left:3px;font-size:8px}.curriculum-editor fieldset{margin:0;padding:18px;border:0}.curriculum-editor fieldset:disabled{opacity:.78}.curriculum-basics,.step-editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.curriculum-basics .wide,.step-editor-fields .wide{grid-column:1 / -1}.curriculum-editor textarea{min-height:70px;padding:9px;resize:vertical;line-height:1.6}.curriculum-editor input:focus,.curriculum-editor textarea:focus,.curriculum-create input:focus,.curriculum-create select:focus{border-color:var(--green);box-shadow:0 0 0 2px #def0e9}.curriculum-block-heading{margin-top:25px;padding-top:17px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e8eaed}.curriculum-block-heading span{color:var(--green);font-size:8px;font-weight:700}.curriculum-block-heading h3{margin:4px 0 0;font-size:14px}.curriculum-block-heading button{min-height:31px;border:1px solid #b9d8cc;background:#fff;color:var(--green)}.lesson-step-editor-list{display:grid;gap:10px;margin-top:12px}.lesson-step-editor-list article{border:1px solid #dfe3e6;border-radius:5px;background:#fbfcfc}.step-editor-heading{min-height:38px;padding:0 11px 0 13px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7eaec}.step-editor-heading strong{font-size:10px}.step-editor-heading button,.quiz-editor-list>div>button{width:29px;height:29px;display:grid;place-items:center;border:0;border-radius:4px;background:transparent;color:#9b5c55;cursor:pointer}.step-editor-heading button:disabled{color:#b9bec3;cursor:not-allowed}.step-editor-fields{padding:13px}.step-editor-fields .code-field{min-height:150px;background:#20262d;color:#d7dce2;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.rule-toggles{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:13px;padding:8px 0 2px}.rule-toggles label,.completion-rules>label:last-child,.curriculum-publish-bar>label{display:inline-flex;align-items:center;gap:6px;color:#59636d;font-size:9px}.rule-toggles input,.completion-rules input[type=checkbox],.curriculum-publish-bar input{width:14px;height:14px}.quiz-editor-list{display:grid;gap:7px;margin-top:12px}.quiz-editor-list>div{display:grid;grid-template-columns:130px 120px 1fr 32px;gap:9px;align-items:end;padding:10px;border:1px solid #e1e4e7;border-radius:4px}.quiz-editor-list textarea{min-height:38px;height:38px}.completion-rules{display:grid;grid-template-columns:150px 1fr;gap:15px;align-items:end;margin-top:14px;padding:13px;background:#f3f5f6}.completion-rules>label:last-child{min-height:38px}.curriculum-publish-bar{min-height:64px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e1e4e7;background:#f6f7f8}.curriculum-publish-bar>div{display:flex;gap:7px}.curriculum-publish-bar button{border:1px solid #d7dce0;background:#fff;color:#56616b}.curriculum-publish-bar button.publish{border-color:var(--green);background:var(--green);color:#fff}.published-note{padding:13px 18px;border-top:1px solid #e2e5e7;background:#f5f6f7}.published-note span{color:#737c85;font-size:8px;font-weight:700}.published-note p{margin:4px 0 0;color:#737c85;font-size:9px}.curriculum-modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#161c2294}.curriculum-modal{width:min(900px,100%);max-height:calc(100vh - 48px);overflow:auto;border-radius:7px;background:#fff;box-shadow:0 24px 70px #0f141a4d}.curriculum-modal>header{position:sticky;z-index:3;top:0;min-height:68px;padding:14px 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e3e6e8;background:#fffffff7}.curriculum-modal>header span{color:var(--green);font-size:8px;font-weight:700}.curriculum-modal>header h2{margin:5px 0 0;font-size:17px}.curriculum-modal>header>button{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:4px;background:transparent;color:#68727b;cursor:pointer}.curriculum-modal>header>button:hover{background:#eef0f2}.preview-summary{padding:16px 18px;border-bottom:1px solid #eceef0;background:#f7f8f9}.preview-summary p{margin:0;color:#68717b;font-size:10px;line-height:1.7}.preview-summary strong{display:block;margin-top:7px;color:#344e43;font-size:10px;line-height:1.6}.preview-step-tabs{display:flex;gap:6px;padding:13px 18px;overflow-x:auto;border-bottom:1px solid #e6e9eb}.preview-step-tabs button{flex:0 0 auto;min-width:86px;height:35px;padding:0 9px;display:flex;align-items:center;gap:7px;border:1px solid #dce0e3;border-radius:4px;background:#fff;color:#78818a;font-size:9px;cursor:pointer}.preview-step-tabs button span{font-weight:700}.preview-step-tabs button.active{border-color:var(--green);background:var(--green-soft);color:var(--green)}.lesson-preview-body{padding:24px 28px}.lesson-preview-body>span{color:var(--green);font-size:9px;font-weight:700}.lesson-preview-body h3{margin:9px 0 8px;font-size:22px}.lesson-preview-body>p{margin:0;color:#606a74;font-size:11px;line-height:1.8}.preview-task{margin-top:15px;padding:10px 12px;border-left:3px solid var(--blue);background:#eef5f9;color:#426078;font-size:10px;line-height:1.6}.preview-task strong{margin-right:8px;color:#274d68}.lesson-preview-body>pre{max-height:300px;overflow:auto;margin:16px 0 0;padding:15px;border-radius:5px;background:#1e252c;color:#d5dce3;font:11px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.preview-target{margin-top:13px;padding:11px 12px;border:1px solid #dfe5e2;background:#f5f8f7}.preview-target strong{color:#436052;font-size:9px}.preview-target p{margin:5px 0 0;color:#65716b;font-size:10px;line-height:1.6}.preview-quiz{padding:16px 28px 24px;border-top:1px solid #e5e8ea}.preview-quiz>span{color:#67717a;font-size:9px;font-weight:700}.preview-quiz p{display:flex;align-items:flex-start;gap:8px;margin:10px 0 0;color:#424c55;font-size:10px;line-height:1.6}.preview-quiz b{width:20px;height:20px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:#edf2f4;color:#496777;font-size:8px}.diff-against{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:10px;padding:13px 17px;border-bottom:1px solid #e5e8ea}.diff-against span{color:#59636c;font-size:9px;font-weight:700}.diff-against select{height:35px;border:1px solid #d9dde1;border-radius:4px;background:#fff;color:#414b54;padding:0 8px;font-size:9px}.diff-summary{min-height:54px;padding:10px 17px;display:flex;align-items:center;gap:6px;background:#f5f7f8}.diff-summary strong{color:var(--green);font-size:18px}.diff-summary span{color:#56616b;font-size:10px}.diff-summary small{margin-left:auto;color:#8a929a;font-size:8px}.diff-list{padding:12px 17px 20px;display:grid;gap:8px}.diff-list article{border:1px solid #e0e3e6;border-radius:4px}.diff-list article>div:first-child{min-height:35px;padding:0 10px;display:flex;align-items:center;gap:7px;border-bottom:1px solid #e8eaec}.diff-list article>div:first-child>span{padding:2px 5px;border-radius:3px;font-size:7px;font-weight:700}.diff-list span.added{background:var(--green-soft);color:var(--green)}.diff-list span.removed{background:#fff0ee;color:#a34f46}.diff-list span.changed{background:#fff4e3;color:#936220}.diff-list article strong{font:9px ui-monospace,monospace;color:#46515b;overflow-wrap:anywhere}.diff-list article small{margin-left:auto;color:#9299a0;font-size:8px}.diff-values{display:grid;grid-template-columns:1fr 1fr;background:#f1f3f4;gap:1px}.diff-values pre{min-width:0;max-height:210px;overflow:auto;margin:0;padding:10px;background:#fff;color:#58636d;font:9px/1.6 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.diff-empty{margin:0;padding:45px 20px;color:#8a929a;text-align:center;font-size:10px}.rollback-content{padding:20px}.rollback-content>p{margin:0 0 16px;color:#65707a;font-size:10px;line-height:1.7}.rollback-content label>span{display:block;margin-bottom:7px;color:#4e5963;font-size:9px;font-weight:700}.rollback-content input[type=text],.rollback-content input:not([type]){width:100%;height:39px;padding:0 10px;border:1px solid #d9dde1;border-radius:4px;outline:none}.rollback-reset{display:flex;align-items:center;gap:7px;margin-top:14px;color:#76593b;font-size:9px}.rollback-reset input{width:14px;height:14px}.rollback-modal{width:min(520px,100%)}.rollback-modal footer{padding:12px 20px;display:flex;justify-content:flex-end;gap:7px;border-top:1px solid #e3e6e8;background:#f6f7f8}.rollback-modal footer button{min-height:35px;padding:0 13px;display:inline-flex;align-items:center;gap:6px;border:1px solid #d6dbe0;border-radius:4px;background:#fff;color:#5c6670;font-size:9px;font-weight:700;cursor:pointer}.rollback-modal footer button.danger{border-color:#a85d54;background:#a85d54;color:#fff}.rollback-modal footer button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1120px){.workspace{grid-template-columns:220px minmax(480px,1fr) 320px}.learning-main{padding-inline:25px}.topbar{grid-template-columns:220px 1fr 220px}}@media(max-width:900px){.mobile-only{display:grid}.topbar{grid-template-columns:1fr auto;height:58px;padding:0 14px}.today-status{display:none}.workspace{display:block;min-height:calc(100vh - 58px)}.course-sidebar{position:fixed;z-index:50;inset:0 auto 0 0;width:min(310px,86vw);transform:translate(-100%);transition:transform .2s ease;overflow-y:auto;box-shadow:10px 0 30px #00000024}.course-sidebar.open{transform:translate(0)}.sidebar-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;border:0;background:#161c2266}.agent-sidebar{border-left:0;border-top:1px solid var(--border);padding:24px}.agent-sidebar{position:static;height:auto;min-height:600px;overflow:visible}.agent-thread{max-height:520px}.agent-composer{margin-inline:-24px;padding-inline:24px}.learning-main{padding:22px 24px 30px}.admin-shell{display:block}.admin-nav{position:static;width:100%;height:auto}.admin-nav nav{grid-template-columns:repeat(4,1fr)}.admin-nav-footer{display:flex;align-items:center}.admin-main{padding:24px}.provider-form,.compact-form,.module-create-form,.curriculum-create form{grid-template-columns:1fr 1fr}.curriculum-workbench{grid-template-columns:1fr}.curriculum-revisions{position:static}.revision-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}@media(max-width:560px){.brand-group>div:nth-child(3) span{display:none}.brand-mark{width:32px;height:32px}.learning-main{padding:18px 14px 24px}.lesson-copy{padding-top:22px}.lesson-copy h1{font-size:23px}.task-line{align-items:flex-start;flex-wrap:wrap}.task-line strong{white-space:normal}.panel-toolbar{padding-left:9px}.tool-button{width:30px;padding:0;font-size:0}.run-button{padding:0 10px}.step-navigation{grid-template-columns:92px 1fr 92px}.secondary-button{padding:0 8px}.assessment-view,.completion-view{padding-top:24px}.assessment-view>h1,.completion-view h1{font-size:23px}.assessment-actions{justify-content:flex-start;margin:12px 0 18px}.quiz-list{margin-top:18px}.checkin-grid{grid-template-columns:1fr;margin-top:20px}.completion-summary{grid-template-columns:1fr}.completion-summary>div{min-height:84px}.agent-sidebar{padding:22px 16px 30px}.agent-sidebar{min-height:0}.agent-thread{flex:0 1 auto;min-height:150px;max-height:420px}.agent-composer{margin-inline:-16px;padding-inline:16px}.top-actions .icon-button:first-child{display:none}.login-brand{padding:18px}.login-form-wrap{padding:28px 22px}.settings-content{width:calc(100% - 28px);padding-top:25px}.model-form,.module-fields{grid-template-columns:1fr}.model-form>*,.module-fields .wide{grid-column:1}.form-footer{align-items:flex-start;gap:12px}.admin-main{padding:20px 14px 40px}.admin-nav nav{grid-template-columns:1fr}.stat-row{grid-template-columns:1fr 1fr}.compact-form,.provider-form,.module-create-form,.curriculum-create form,.curriculum-basics,.step-editor-fields,.completion-rules{grid-template-columns:1fr}.curriculum-basics .wide,.step-editor-fields .wide,.rule-toggles{grid-column:1}.quiz-editor-list>div{grid-template-columns:1fr}.quiz-editor-list>div>button{justify-self:end}.curriculum-publish-bar{align-items:flex-start;flex-direction:column}.editor-heading{align-items:flex-start;gap:10px}.editor-heading-actions{flex-wrap:wrap;justify-content:flex-end}.curriculum-modal-backdrop{padding:0;place-items:stretch}.curriculum-modal{width:100%;max-height:100vh;border-radius:0}.lesson-preview-body{padding:20px 16px}.preview-quiz{padding-inline:16px}.diff-values{grid-template-columns:1fr}.data-table{overflow-x:auto}.table-row{width:700px}.admin-header{align-items:flex-start}.module-admin-list article{grid-template-columns:1fr}}
