:root { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif; color:#22302b; background:#f4f5ef; font-synthesis:none; --green:#235c49; --deep:#163f34; --orange:#ea8d55; --cream:#f7f3e8; --line:#dfe4dd; --muted:#728078; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; min-width:320px; min-height:100vh; background:radial-gradient(circle at 82% 2%,rgba(234,141,85,.08),transparent 19%),#f4f5ef; }
.auth-checking .course-shell { visibility:hidden; }
.auth-gate { position:fixed; z-index:100; inset:0; display:grid; place-content:center; justify-items:center; gap:13px; color:#68766f; background:#f4f5ef; font-size:15px; }
.auth-gate span { width:34px; height:34px; border:3px solid #dbe3dc; border-top-color:var(--green); border-radius:50%; animation:auth-spin .8s linear infinite; }
@keyframes auth-spin { to{transform:rotate(360deg)} }
.auth-ready .auth-gate { display:none; }
button,input,textarea { font:inherit; }
button { -webkit-tap-highlight-color:transparent; }
.course-shell { min-height:100vh; display:grid; grid-template-columns:270px 1fr; grid-template-rows:68px 1fr; }
.course-header { position:sticky; top:0; z-index:20; grid-column:1/-1; display:grid; grid-template-columns:270px 1fr 270px; align-items:center; height:68px; padding:0 26px; border-bottom:1px solid #dce2dc; background:rgba(247,248,243,.92); backdrop-filter:blur(16px); }
.course-brand { display:inline-flex; align-items:center; gap:10px; width:fit-content; color:var(--deep); text-decoration:none; font-size:22px; font-weight:700; }
.brand-glyph { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; color:#163f34; background:#f1ad6c; transform:rotate(-4deg); }
.header-center { display:flex; align-items:center; justify-content:center; gap:12px; color:#68766f; font-size:15px; }
.header-course { font-weight:600; }
.header-progress { width:min(230px,25vw); height:5px; overflow:hidden; border-radius:10px; background:#dce2dc; }
.header-progress span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--green),#6d9b80); transition:width .35s ease; }
.course-sidebar { position:sticky; top:68px; align-self:start; height:calc(100vh - 68px); padding:30px 20px 24px; border-right:1px solid #dce2dc; background:#eef1eb; }
.sidebar-heading { display:grid; gap:5px; padding:0 11px 25px; }
.sidebar-heading span { color:var(--orange); font-size:13px; font-weight:700; letter-spacing:.18em; }
.sidebar-heading strong { font-family:'Songti SC',STSong,SimSun,serif; font-size:29px; }
.sidebar-heading small { color:#87918b; }
.step-nav { display:grid; gap:5px; }
.step-link { position:relative; display:grid; grid-template-columns:30px 1fr; gap:0 9px; width:100%; padding:13px 11px; border:0; border-radius:12px; color:#5e6c65; background:transparent; text-align:left; cursor:pointer; transition:.2s ease; }
.step-link span { grid-row:1/3; width:28px; height:28px; display:grid; place-items:center; border:1px solid #cad2cb; border-radius:9px; font-size:13px; }
.step-link b { font-size:16px; font-weight:600; }
.step-link i { margin-top:3px; color:#98a19c; font-size:12px; font-style:normal; }
.step-link:hover:not(.locked) { background:rgba(255,255,255,.65); }
.step-link.active { color:white; background:var(--green); box-shadow:0 10px 22px rgba(35,92,73,.16); }
.step-link.active span { border-color:rgba(255,255,255,.35); background:rgba(255,255,255,.12); }
.step-link.active i { color:rgba(255,255,255,.6); }
.step-link.complete span { color:white; border-color:#6f9d85; background:#6f9d85; }
.step-link.locked { opacity:.48; cursor:not-allowed; }
.sidebar-tip { position:absolute; left:20px; right:20px; bottom:22px; display:flex; gap:9px; padding:13px; border:1px solid #d9ddd4; border-radius:12px; background:#f7f5ed; }
.sidebar-tip p { margin:0; color:#7b857f; font-size:13px; line-height:1.6; }
.lesson-main { width:100%; max-width:1040px; margin:0 auto; padding:58px clamp(36px,6vw,86px) 90px; }
.simulation-notice { display:flex; gap:13px; margin:0 0 26px; padding:14px 16px; border:1px solid #e5c8a8; border-radius:12px; color:#705d4d; background:#fff4e7; font-size:13px; line-height:1.7; }
.simulation-notice b { flex:0 0 auto; color:#a55f32; }
.project-context { display:grid; grid-template-columns:130px 1fr; gap:14px; margin:-15px 0 22px; padding:14px 16px; border:1px solid #ddd9ce; border-radius:12px; color:#5e6a64; background:#fbf8f1; font-size:13px; line-height:1.7; }
.project-context b { color:#9d6039; font-size:11px; letter-spacing:.07em; }
.project-context p { margin:0; }
.learning-proof { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:16px 0 4px; }
.learning-proof article { padding:15px 16px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.72); }
.learning-proof b { display:block; margin-bottom:6px; color:var(--green); font-size:11px; letter-spacing:.06em; }
.learning-proof article:last-child b { color:#a45e36; }
.learning-proof p { margin:0; color:#68756e; font-size:13px; line-height:1.7; }
.lesson-step { animation:fade-up .4s ease; }
@keyframes fade-up { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.lesson-kicker { display:flex; align-items:center; gap:10px; margin-bottom:14px; color:#8a958f; font-size:13px; font-weight:600; letter-spacing:.12em; }
.lesson-kicker span:first-child { color:var(--orange); }
.lesson-kicker span+span::before { content:''; display:inline-block; width:18px; height:1px; margin:0 10px 3px 0; background:#cbd2cc; }
.lesson-page-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:16px; padding:2px 2px 14px; border-bottom:1px solid var(--line); }
.lesson-page-heading span { display:block; margin-bottom:5px; color:var(--orange); font-size:10px; font-weight:700; letter-spacing:.14em; }
.lesson-page-heading h1 { margin:0; color:var(--deep); font-family:'Songti SC',STSong,SimSun,serif; font-size:21px; line-height:1.35; }
.lesson-page-heading>a { flex:0 0 auto; color:var(--green); font-size:12px; font-weight:700; text-decoration:none; }
.lesson-step>h2 { max-width:760px; margin:0 0 14px; font-family:'Songti SC',STSong,SimSun,serif; font-size:clamp(32px,4vw,48px); line-height:1.3; letter-spacing:-.045em; }
.lead { max-width:760px; margin:0 0 34px; color:var(--muted); font-size:19px; line-height:1.85; }
.concept-strip { display:grid; grid-template-columns:1fr 30px 1fr 30px 1fr; align-items:center; margin:32px 0; }
.concept-strip article { display:flex; align-items:center; gap:12px; min-height:86px; padding:16px; border:1px solid var(--line); border-radius:15px; background:rgba(255,255,255,.6); }
.concept-strip article>div { display:grid; gap:5px; }
.concept-strip b { font-size:16px; }
.concept-strip p { margin:0; color:#89938e; font-size:13px; line-height:1.5; }
.concept-icon { width:40px; height:40px; flex:0 0 auto; display:grid; place-items:center; border-radius:12px; font-size:15px; font-weight:700; }
.rule-icon { color:#54705f; background:#e4ebe4; }.learn-icon { color:#9a663f; background:#f7e9d7; }.gen-icon { color:white; background:var(--green); }
.concept-arrow { color:#b2bbb6; text-align:center; }
.lab-card { margin:32px 0 25px; padding:26px; border:1px solid #d9dfd9; border-radius:20px; background:rgba(255,255,255,.8); box-shadow:0 18px 48px rgba(43,65,55,.06); }
.lab-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:22px; }
.lab-tag { display:block; margin-bottom:5px; color:var(--orange); font-size:12px; font-weight:700; letter-spacing:.16em; }
.lab-head h3 { margin:0; font-size:22px; }
.lab-score,.epoch-pill,.model-badge,.token-counter { padding:7px 10px; border-radius:9px; color:#64716a; background:#eef1ec; font-size:13px; }
.lab-score b,.epoch-pill b,.token-counter b { color:var(--green); font-size:18px; }
.scenario-card { min-height:190px; display:grid; place-items:center; align-content:center; padding:22px; border-radius:15px; text-align:center; background:linear-gradient(135deg,#eef3ed,#f8f4e9); }
.scenario-card>span { color:#909b95; font-size:13px; }.scenario-icon { margin:10px 0 8px; font-size:36px; }.scenario-card h3 { margin:0 0 7px; font-size:21px; }.scenario-card p { margin:0; color:#7e8983; font-size:14px; }
.choice-row { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px; }
.choice-row button { display:flex; align-items:center; gap:9px; padding:12px; border:1px solid #dce1dc; border-radius:11px; color:#59665f; background:#fff; cursor:pointer; font-size:15px; transition:.18s; }
.choice-row button span { width:22px; height:22px; display:grid; place-items:center; border-radius:7px; color:#8b9690; background:#f0f2ef; font-size:12px; }
.choice-row button:hover { border-color:#769787; transform:translateY(-1px); }.choice-row button.correct { color:#246148; border-color:#6fa085; background:#edf6ef; }.choice-row button.wrong { color:#a85343; border-color:#d89687; background:#fff1ed; }
.feedback-box { margin-top:12px; padding:12px 14px; border-radius:10px; color:#35644f; background:#edf5ef; font-size:14px; line-height:1.6; }
.takeaway { display:flex; gap:16px; padding:18px 20px; border-left:3px solid var(--green); border-radius:0 12px 12px 0; background:#e8efe9; }
.takeaway span { flex:0 0 auto; color:var(--green); font-size:13px; font-weight:700; }.takeaway p { margin:0; color:#58665f; font-size:15px; line-height:1.7; }.takeaway.warm { border-left-color:var(--orange); background:#f7eee2; }.takeaway.warm span { color:#a96138; }
.next-button { display:flex; align-items:center; justify-content:center; gap:12px; min-width:240px; height:48px; margin:30px 0 0 auto; border:0; border-radius:12px; color:white; background:var(--green); cursor:pointer; font-weight:600; font-size:15px; box-shadow:0 10px 22px rgba(35,92,73,.17); }
.next-button:disabled { color:#9ca59f; background:#dfe4df; box-shadow:none; cursor:not-allowed; }.next-button:not(:disabled):hover { background:var(--deep); transform:translateY(-1px); }
.flow-diagram { display:grid; grid-template-columns:1fr 30px 1fr 30px 1fr; align-items:center; margin:30px 0; }
.flow-diagram>div { display:grid; gap:6px; min-height:75px; place-content:center; padding:14px; border:1px solid var(--line); border-radius:14px; background:white; text-align:center; }.flow-diagram>span { text-align:center; color:#a2aca6; }.flow-diagram small { color:#8b9690; font-size:12px; }.flow-diagram strong { font-size:15px; }
.token-lab label,.generation-lab>label { display:block; margin-bottom:8px; color:#596760; font-size:14px; font-weight:600; }.token-input-row { display:grid; grid-template-columns:1fr 110px; gap:10px; }.token-input-row textarea,.generation-lab textarea { width:100%; resize:none; padding:13px 15px; border:1px solid #d7ddd7; border-radius:11px; outline:none; color:#27342e; background:#fbfcf9; line-height:1.6; }.token-input-row textarea:focus,.generation-lab textarea:focus { border-color:#6f9584; box-shadow:0 0 0 3px rgba(35,92,73,.08); }.token-input-row button { border:0; border-radius:11px; color:white; background:var(--green); cursor:pointer; font-size:15px; font-weight:600; }
.token-stage { min-height:98px; display:flex; flex-wrap:wrap; align-content:center; gap:7px; margin-top:14px; padding:16px; border:1px dashed #ccd4cd; border-radius:12px; background:#f7f8f4; }.token-stage.empty { justify-content:center; align-items:center; color:#9aa39e; font-size:14px; }.token-chip { display:grid; grid-template-columns:auto auto; gap:5px; align-items:center; padding:7px 9px; border-radius:8px; color:#315a49; background:#dfece3; font-size:15px; animation:token-pop .25s ease both; }.token-chip:nth-child(3n+2){color:#8b5738;background:#f6e6d6}.token-chip:nth-child(3n){color:#4e607d;background:#e3e8f1}.token-chip small { opacity:.6; font-size:12px; }
@keyframes token-pop { from{opacity:0;transform:scale(.8)} to{opacity:1;transform:none} }
.token-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:12px; overflow:hidden; border-radius:11px; background:#dfe4df; }.token-stats div { display:grid; gap:4px; padding:12px; background:#f5f7f2; text-align:center; }.token-stats small { color:#89938e; font-size:12px; }.token-stats b { color:var(--green); font-size:19px; }.lab-note { margin:14px 0 0; color:#8b9590; font-size:13px; line-height:1.7; }
.explain-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.explain-grid article { padding:18px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.55); }.explain-grid span { width:25px; height:25px; display:grid; place-items:center; border-radius:8px; color:white; background:var(--green); font-size:12px; }.explain-grid h3 { margin:13px 0 7px; font-size:16px; }.explain-grid p { margin:0; color:#7f8b84; font-size:13px; line-height:1.65; }
.training-loop { display:grid; grid-template-columns:1fr 24px 1fr 24px 1fr 24px 1fr; align-items:center; margin:30px 0; }.loop-node { min-height:105px; display:grid; place-items:center; align-content:center; padding:12px; border:1px solid var(--line); border-radius:14px; text-align:center; background:white; }.loop-node span { width:24px;height:24px;display:grid;place-items:center;margin-bottom:8px;border-radius:50%;color:#65736c;background:#edf0ec;font-size:12px}.loop-node b{font-size:14px}.loop-node small{margin-top:4px;color:#929b96;font-size:12px}.loop-node.active{border-color:#7fa18f;background:#edf4ee}.loop-node.active span{color:white;background:var(--green)}.loop-line{height:1px;background:#cbd3cc}
.sentence-predict { padding:20px; border-radius:13px; background:#f2f4ef; text-align:center; font-family:'Noto Serif SC',serif; font-size:22px; }.sentence-predict span { display:inline-block; min-width:62px; margin-left:5px; padding:2px 7px; border-bottom:2px solid var(--orange); color:#ba683d; }.probability-list { display:grid; gap:9px; margin:20px 0; }.probability-list>div { display:grid; grid-template-columns:50px 1fr 38px; align-items:center; gap:10px; font-size:14px; }.probability-list i { height:8px; overflow:hidden; border-radius:8px; background:#edf0ec; }.probability-list em { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#6c9581,var(--green)); transition:width .45s ease; }.probability-list b { color:#5c6962; text-align:right; font-size:13px; }.training-controls { display:flex; justify-content:space-between; align-items:center; }.training-controls button { padding:12px 16px; border:0; border-radius:10px; color:white; background:var(--green); cursor:pointer; font-size:14px; font-weight:600; }.training-controls button:disabled { opacity:.5;cursor:not-allowed}.loss-readout { display:grid;text-align:right}.loss-readout small{color:#8c9690;font-size:12px}.loss-readout b{color:var(--orange);font-size:22px}.training-message { margin-top:13px;padding:11px;border-radius:9px;color:#65716b;background:#f3f5f1;font-size:13px;line-height:1.6; }
.parameter-layout { display:grid;grid-template-columns:1fr 1fr;gap:28px}.slider-panel{display:grid;gap:19px}.slider-panel label{display:grid;grid-template-columns:1fr auto;gap:8px;color:#65716b;font-size:13px}.slider-panel label b{color:var(--green);font-size:15px}.slider-panel input{grid-column:1/-1;width:100%;accent-color:var(--green)}.parameter-total{display:grid;gap:2px;padding:15px;border-radius:12px;background:var(--deep);color:white}.parameter-total small{color:rgba(255,255,255,.55);font-size:12px}.parameter-total strong{font-size:31px}.parameter-total span{color:rgba(255,255,255,.65);font-size:12px}.model-visual{min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:18px;border-radius:15px;background:radial-gradient(circle at 50% 50%,rgba(72,125,99,.14),transparent 55%),#f3f5f0}.network-stack{width:75%;height:200px;display:flex;align-items:center;justify-content:center;gap:5px;perspective:500px}.network-layer{width:12px;display:grid;gap:4px;align-content:center;transition:.25s}.network-layer i{display:block;width:6px;height:6px;margin:auto;border-radius:50%;background:#5d8c75;box-shadow:0 0 8px rgba(35,92,73,.25)}.network-layer:nth-child(3n) i{background:var(--orange)}.model-data-flow{display:flex;align-items:center;gap:7px;color:#86918b;font-size:12px}.model-data-flow b{color:#4f5d56}.scale-comparison{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:18px}.scale-comparison>div{display:grid;gap:5px;padding:16px;border:1px solid var(--line);border-radius:13px;background:white}.scale-comparison span{color:#8c9690;font-size:12px}.scale-comparison b{font-size:17px}.scale-comparison small{color:#8a948f;font-size:12px;line-height:1.5}
.temperature-control{margin:17px 0;padding:14px;border-radius:12px;background:#f2f4ef}.temperature-control>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;color:#7f8984;font-size:12px}.temperature-control input{width:100%;accent-color:var(--orange)}.temperature-control p{margin:8px 0 0;text-align:center;color:#6e7a73;font-size:13px}.generation-stage{display:grid;grid-template-columns:1.35fr .65fr;min-height:220px;overflow:hidden;border:1px solid var(--line);border-radius:15px}.generated-text{padding:22px;font-family:'Noto Serif SC',serif;font-size:21px;line-height:2;background:#fbfcf9}.generated-token{display:inline-block;margin:1px 2px;padding:0 4px;border-radius:5px;background:#e2eee5;animation:token-pop .25s}.prompt-text{color:#596760}.cursor{display:inline-block;width:2px;height:19px;margin-left:3px;vertical-align:middle;background:var(--orange);animation:blink .8s infinite}@keyframes blink{50%{opacity:0}}.next-token-panel{padding:19px;border-left:1px solid var(--line);background:#f2f5f0}.next-token-panel>small{display:block;margin-bottom:13px;color:#88938d;font-size:12px}.candidate-item{display:grid;grid-template-columns:1fr auto;gap:5px;margin-bottom:10px;color:#5b6861;font-size:13px}.candidate-item i{grid-column:1/-1;height:4px;border-radius:4px;background:#dde3dd}.candidate-item em{display:block;height:100%;border-radius:4px;background:var(--orange)}.generation-actions{display:flex;gap:9px;margin-top:14px}.generation-actions button{padding:11px 16px;border:0;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600}.generation-actions button:first-child{color:white;background:var(--green)}.ghost-button{color:#637069;background:#edf0ec}.hallucination-note{display:grid;grid-template-columns:auto 1fr;gap:13px;margin-top:17px;padding:14px;border-radius:11px;background:#fff2e8}.hallucination-note span{color:#ad6239;font-size:13px;font-weight:700}.hallucination-note p{margin:0;color:#765f50;font-size:13px;line-height:1.7}.live-dot{display:flex;align-items:center;gap:6px;color:#66806f;font-size:12px}.live-dot i{width:7px;height:7px;border-radius:50%;background:#4d9a70;box-shadow:0 0 0 4px rgba(77,154,112,.12)}
.model-lifecycle{display:flex;align-items:center;justify-content:space-between;margin:28px 0}.model-lifecycle>div{display:grid;gap:5px;text-align:center}.model-lifecycle span{color:var(--orange);font-size:12px}.model-lifecycle b{font-size:14px}.model-lifecycle>i{color:#abb4af;font-style:normal}.quiz-card{display:grid;gap:14px}.quiz-card fieldset{display:grid;gap:8px;margin:0;padding:19px;border:1px solid var(--line);border-radius:14px;background:white}.quiz-card legend{padding:0 5px;font-size:15px;font-weight:600}.quiz-card legend span{display:inline-grid;place-items:center;width:23px;height:23px;margin-right:8px;border-radius:8px;color:white;background:var(--green);font-size:12px}.quiz-card label{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:9px;color:#657169;background:#f5f7f3;font-size:13px;cursor:pointer}.quiz-card input{accent-color:var(--green)}.quiz-card fieldset.correct{border-color:#75a087;background:#f0f7f1}.quiz-card fieldset.wrong{border-color:#dc9a89;background:#fff3ef}.quiz-submit{height:46px;border:0;border-radius:11px;color:white;background:var(--green);cursor:pointer;font-weight:600}.quiz-result{padding:13px;border-radius:10px;text-align:center;font-size:14px}.quiz-result.good{color:#2e684f;background:#e8f3eb}.quiz-result.retry{color:#9b543c;background:#fff0e9}.completion-card{margin-top:23px;padding:34px;border-radius:19px;color:white;background:linear-gradient(145deg,#214f40,#12392f);text-align:center;box-shadow:0 20px 45px rgba(25,64,51,.18)}.completion-mark{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;color:var(--green);background:#f0b272;font-size:25px}.completion-card>span{color:#f2b67d;font-size:12px;letter-spacing:.17em}.completion-card h2{margin:10px 0;font-family:'Noto Serif SC',serif;font-size:27px}.completion-card p{color:rgba(255,255,255,.65);font-size:14px}.completion-card>div:last-of-type{display:flex;justify-content:center;gap:24px;margin-top:20px;color:rgba(255,255,255,.7);font-size:13px}.completion-card>div b{color:#f0b272}.completion-card button{margin-top:21px;padding:10px 15px;border:1px solid rgba(255,255,255,.25);border-radius:9px;color:white;background:transparent;cursor:pointer;font-size:13px}
@media(max-width:900px){.course-shell{display:block}.course-header{grid-template-columns:1fr auto;height:60px;padding:0 18px}.header-center{display:none}.course-sidebar{position:sticky;top:60px;z-index:15;width:100%;height:auto;padding:9px 13px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.sidebar-heading,.sidebar-tip{display:none}.step-nav{display:flex;width:max-content}.step-link{width:48px;height:42px;display:block;padding:7px}.step-link span{width:28px;height:28px}.step-link b,.step-link i{display:none}.lesson-main{padding:42px 22px 70px}.course-header{position:sticky}.concept-strip,.flow-diagram{grid-template-columns:1fr}.concept-arrow,.flow-diagram>span{padding:7px;transform:rotate(90deg)}.training-loop{grid-template-columns:1fr 1fr;gap:9px}.loop-line{display:none}.parameter-layout,.generation-stage{grid-template-columns:1fr}.next-token-panel{border-top:1px solid var(--line);border-left:0}.model-lifecycle{display:grid;grid-template-columns:1fr 1fr;gap:8px}.model-lifecycle>i{display:none}}
@media(max-width:900px){.course-sidebar{scrollbar-width:none}.course-sidebar::-webkit-scrollbar{display:none}}
@media(max-width:560px){.lesson-page-heading{align-items:flex-start;display:grid}.lesson-page-heading>a{white-space:normal}.lesson-step>h2{font-size:35px}.simulation-notice{display:grid}.lab-card{padding:18px}.choice-row,.explain-grid,.scale-comparison{grid-template-columns:1fr}.token-input-row{grid-template-columns:1fr}.token-input-row button{height:42px}.concept-strip article{min-height:auto}.lab-head{display:grid}.parameter-layout{gap:12px}.network-stack{height:150px}.training-loop{grid-template-columns:1fr 1fr}.model-lifecycle{grid-template-columns:1fr}.next-button{width:100%;min-width:0}.course-brand{font-size:20px}}

/* Detailed training pipeline */
.course-sidebar{overflow-y:auto}.training-lab-main{max-width:1120px}.status-pill{padding:7px 10px;border-radius:9px;color:#456b59;background:#e7f0e9;font-size:13px;white-space:nowrap}.status-pill b{font-size:17px}.status-pill.danger{color:#a44e3b;background:#fff0ea}.primary-lab-button{min-height:43px;padding:10px 17px;border:0;border-radius:11px;color:#fff;background:var(--green);font-size:14px;font-weight:700;cursor:pointer;transition:.2s}.primary-lab-button:hover:not(:disabled){background:var(--deep);transform:translateY(-1px)}.primary-lab-button:disabled{color:#9ba49f;background:#dfe4df;cursor:not-allowed}.explain-output{margin-top:15px;padding:13px 15px;border-left:3px solid #78a089;border-radius:0 10px 10px 0;color:#617069;background:#eef4ef;font-size:14px;line-height:1.7}.explain-output b{color:#265c47}.control-label{display:grid;grid-template-columns:1fr auto;gap:7px;margin:15px 0;color:#65736b;font-size:14px;font-weight:600}.control-label input{grid-column:1/-1;width:100%;accent-color:var(--green)}
.data-source-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.data-source-grid button{display:grid;gap:5px;padding:16px;border:1px solid var(--line);border-radius:13px;color:#5d6963;background:#fafbf8;text-align:left;cursor:pointer}.data-source-grid button span{font-weight:700}.data-source-grid button b{color:var(--green);font-size:20px}.data-source-grid button small{color:#8e9893;font-size:12px}.data-source-grid button.selected{border-color:#5e8f76;background:#eaf3ec;box-shadow:0 0 0 2px rgba(35,92,73,.08)}.data-source-grid button.rejected{border-color:#d69080;background:#fff0eb}.dataset-console{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:17px 0;overflow:hidden;border-radius:11px;background:#dfe4df}.dataset-console div{display:grid;gap:4px;padding:12px;background:#f4f6f2;text-align:center}.dataset-console small{color:#8a948f;font-size:12px}.dataset-console b{color:var(--green);font-size:19px}.tokenizer-workbench{display:grid;grid-template-columns:1fr auto;gap:10px}.tokenizer-workbench textarea{padding:13px;border:1px solid var(--line);border-radius:11px;resize:vertical;outline:0}.sequence-line{display:flex;gap:6px;overflow-x:auto;margin:17px 0;padding:16px;border-radius:12px;background:#f2f5f0}.sequence-line span{display:grid;min-width:60px;padding:9px;border-radius:9px;color:#315d49;background:#dfece3;text-align:center;font-size:14px}.sequence-line small{color:#82958a;font-size:12px}.batch-table{display:grid;gap:8px;margin-top:15px}.batch-table>p{color:#909a94;text-align:center;font-size:13px}.batch-table div{display:grid;grid-template-columns:70px 1fr 1fr;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fafbf8}.batch-table b{font-size:13px}.batch-table code{padding:7px;border-radius:7px;color:#476054;background:#edf1ec;font-size:13px;white-space:normal}
.architecture-lab .parameter-total{width:90%;margin-top:12px}.weight-histogram{height:190px;display:flex;align-items:flex-end;justify-content:center;gap:4px;padding:25px 20px 16px;margin:17px 0;border-bottom:1px solid #aebbb3;border-radius:12px 12px 0 0;color:#929c96;background:linear-gradient(#f5f7f3,#edf1ec);font-size:13px}.weight-histogram i{width:min(22px,3.2%);border-radius:4px 4px 0 0;background:linear-gradient(#efaa69,#4a7d65);animation:bar-grow .35s ease both}@keyframes bar-grow{from{height:0}}.healthy-text{color:#2a7453!important}.danger-text{color:#b6533f!important}
.forward-pipeline{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:8px;margin:18px 0}.forward-pipeline div{display:grid;place-items:center;gap:4px;min-height:92px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#f8faf7;text-align:center}.forward-pipeline div span{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;color:#728078;background:#e6ebe6;font-size:12px}.forward-pipeline div b{font-size:13px}.forward-pipeline div small{color:#909a94;font-size:12px}.forward-pipeline div.active{border-color:#609078;background:#e9f3eb}.forward-pipeline div.active span{color:#fff;background:var(--green)}.forward-pipeline>i{color:#a6b0aa;font-style:normal}.tensor-view{display:grid;gap:9px;min-height:150px;align-content:center;margin:15px 0;padding:20px;border-radius:13px;color:#d9eee1;background:#173f33}.tensor-view small{color:#78aa91;font-size:12px;letter-spacing:.08em}.tensor-view code{overflow-wrap:anywhere;color:#fff;font-size:17px}.tensor-view p{margin:0;color:#9fc0af;font-size:13px;line-height:1.6}.loss-equation{display:grid;gap:10px;place-items:center;min-height:100px;margin:16px 0;padding:18px;border:1px dashed #c4cec7;border-radius:12px;color:#65736b;background:#f5f7f3;font-size:15px}.loss-equation strong{color:#b7643b;font-size:24px}.choice-row button.selected{border-color:#5d9076;background:#e9f3eb}
.gradient-formula{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;margin:16px 0;padding:17px;border-radius:12px;color:#53645b;background:#eef2ed;font-family:monospace;font-size:14px}.gradient-formula i{color:#9aa59f;font-style:normal}.gradient-formula b{color:#b85f37}.loss-chart{height:180px;display:flex;align-items:flex-end;gap:10px;margin:18px 0;padding:18px 20px 25px;border-left:1px solid #bfc9c2;border-bottom:1px solid #bfc9c2;background:repeating-linear-gradient(to bottom,transparent 0,transparent 44px,#e4e8e4 45px)}.loss-chart div{position:relative;flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center}.loss-chart i{width:62%;min-height:5px;border-radius:5px 5px 0 0;background:linear-gradient(#eca96a,#4d8067);transition:.3s}.loss-chart small{position:absolute;bottom:-18px;color:#87928c;font-size:12px}.loss-chart b{position:absolute;top:-14px;color:#647169;font-size:12px}.metric-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.metric-compare>div{display:grid;gap:8px;padding:20px;border:1px solid var(--line);border-radius:13px;background:#fafbf8}.metric-compare small{color:#87928c;font-size:13px}.metric-compare b{font-size:30px}.metric-bar{height:9px;overflow:hidden;border-radius:9px;background:#e5eae5}.metric-bar i{display:block;width:0;height:100%;border-radius:inherit;background:#4f856b;transition:.4s}.metric-bar.orange i{background:#e59b5f}.inference-controls{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:15px 0}.inference-controls label{display:grid;grid-template-columns:1fr auto;gap:7px;padding:12px;border-radius:10px;color:#64716a;background:#f0f3ef;font-size:13px}.inference-controls input{grid-column:1/-1;width:100%;accent-color:var(--orange)}.inference-trace{display:grid;grid-template-columns:auto 1fr;gap:12px;margin-top:15px;padding:13px;border-radius:10px;color:#8fb29f;background:#173f33;font-size:12px}.inference-trace code{color:#e2eee7;white-space:normal;overflow-wrap:anywhere}.completion-link{display:inline-block;margin:20px 5px 0;padding:10px 15px;border-radius:9px;color:#173f33;background:#f0b272;text-decoration:none;font-size:13px;font-weight:700}
@media(max-width:900px){.course-sidebar{overflow-x:auto;overflow-y:hidden}.data-source-grid{grid-template-columns:1fr 1fr}.batch-table div{grid-template-columns:1fr}.forward-pipeline{grid-template-columns:1fr 1fr}.forward-pipeline>i{display:none}}
@media(max-width:560px){.data-source-grid,.dataset-console,.metric-compare,.inference-controls{grid-template-columns:1fr 1fr}.tokenizer-workbench{grid-template-columns:1fr}.forward-pipeline{grid-template-columns:1fr 1fr}.gradient-formula{justify-content:flex-start}.data-source-grid button{padding:12px}.dataset-console b{font-size:16px}}

.experiment-actions{display:flex;gap:9px;align-items:center}.experiment-actions .ghost-button{min-height:43px;padding:10px 15px;border:0;border-radius:11px;cursor:pointer;font-size:14px;font-weight:600}.comparison-task{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:11px 13px;border:1px solid #e5c8a8;border-radius:10px;color:#765f50;background:#fff4e7;font-size:12px;line-height:1.55}.comparison-task b{flex:0 0 auto;color:#a45e36}.comparison-task.complete{border-color:#a9c5b3;color:#426451;background:#edf5ef}.comparison-task.complete b{color:#286348}
@media(max-width:560px){.project-context,.learning-proof{grid-template-columns:1fr}.project-context{gap:5px}.experiment-actions,.comparison-task{align-items:stretch;flex-direction:column}}

/* Course Co-pilot */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.copilot-launcher{position:fixed;right:24px;bottom:24px;z-index:55;display:flex;align-items:center;gap:11px;padding:10px 16px 10px 10px;border:0;border-radius:16px;color:#fff;background:var(--deep);box-shadow:0 14px 36px rgba(22,63,52,.3);cursor:pointer;text-align:left;transition:.2s ease}
.copilot-launcher:hover{transform:translateY(-2px);background:#0f342a}.copilot-launcher-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#173f33;background:#f1ad6c;font-size:20px}.copilot-launcher span+span{display:grid;gap:2px}.copilot-launcher b{font-size:14px}.copilot-launcher small{color:rgba(255,255,255,.65);font-size:11px}
.copilot-backdrop{position:fixed;z-index:58;inset:0;background:rgba(17,39,32,.22);backdrop-filter:blur(2px)}
.copilot-panel{position:fixed;z-index:60;top:84px;right:20px;bottom:20px;width:min(410px,calc(100vw - 32px));display:grid;grid-template-rows:auto auto auto 1fr auto auto;overflow:hidden;border:1px solid #d5ddd7;border-radius:22px;background:#fbfcf9;box-shadow:0 24px 70px rgba(22,63,52,.25);transform:translateX(calc(100% + 40px));opacity:0;pointer-events:none;transition:transform .28s ease,opacity .2s ease}
.copilot-panel.open{transform:none;opacity:1;pointer-events:auto}.copilot-header{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:17px 18px;border-bottom:1px solid #e4e8e3;background:#f5f7f2}.copilot-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#173f33;background:#f1ad6c;font-size:19px}.copilot-header>div:nth-child(2){display:grid;gap:2px}.copilot-header strong{color:#22372e;font-size:15px}.copilot-header span{color:#829087;font-size:11px}.copilot-header span i{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:#4d9a73}.copilot-header button{width:31px;height:31px;border:0;border-radius:9px;color:#75827b;background:transparent;cursor:pointer;font-size:20px}.copilot-header button:hover{background:#e8ece7;color:#274c3c}
.copilot-context{display:flex;align-items:center;justify-content:space-between;padding:9px 18px;color:#8a968f;background:#f8f9f6;font-size:11px}.copilot-context b{padding:4px 8px;border-radius:7px;color:#39634f;background:#e6efe8;font-size:11px}
.copilot-account{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:5px 10px;padding:9px 18px;border-top:1px solid #edf0eb;border-bottom:1px solid #e2e8e2;background:#fff}.copilot-account span{color:#617169;font-size:12px}.copilot-account strong{margin-left:3px;color:#173f33;font-size:16px}.copilot-account small{min-width:0;overflow:hidden;color:#87948d;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.copilot-account a{grid-column:3;grid-row:1/3;padding:6px 9px;border-radius:8px;color:#fff;background:#24634f;font-size:11px;text-decoration:none}.copilot-account a:hover{background:#194b3c}
.copilot-messages{overflow-y:auto;padding:18px;scroll-behavior:smooth}.copilot-message{display:flex;align-items:flex-start;gap:9px;margin-bottom:16px}.copilot-message.user{justify-content:flex-end}.copilot-message-avatar{width:27px;height:27px;flex:0 0 auto;display:grid;place-items:center;border-radius:9px;color:#315a49;background:#e3ece5;font-size:12px}.copilot-message-content{display:grid;max-width:84%;gap:5px}.copilot-message.user .copilot-message-content{justify-items:end}.copilot-bubble{max-width:100%;padding:11px 13px;border-radius:5px 14px 14px 14px;color:#48574f;background:#eef2ed;font-size:14px;line-height:1.7;overflow-wrap:anywhere}.copilot-message.user .copilot-bubble{border-radius:14px 5px 14px 14px;color:#fff;background:var(--green);white-space:pre-wrap}.copilot-message.error .copilot-bubble,.copilot-message.insufficient .copilot-bubble{color:#9e4c3e;background:#fff0eb}.copilot-message.insufficient .copilot-bubble{border:1px solid #f2d2c5}.copilot-bubble>:first-child{margin-top:0}.copilot-bubble>:last-child{margin-bottom:0}.copilot-bubble p{margin:0 0 10px}.copilot-bubble h1,.copilot-bubble h2,.copilot-bubble h3,.copilot-bubble h4,.copilot-bubble h5,.copilot-bubble h6{margin:14px 0 6px;color:#2d493c;line-height:1.45}.copilot-bubble h1{font-size:18px}.copilot-bubble h2{font-size:17px}.copilot-bubble h3{font-size:16px}.copilot-bubble h4,.copilot-bubble h5,.copilot-bubble h6{font-size:14px}.copilot-bubble strong{color:#294b3d;font-weight:700}.copilot-bubble em{color:#52675d}.copilot-bubble ul,.copilot-bubble ol{margin:7px 0 11px;padding-left:21px}.copilot-bubble li{margin:3px 0;padding-left:1px}.copilot-bubble blockquote{margin:9px 0;padding:7px 10px;border-left:3px solid #89aa98;color:#607069;background:rgba(255,255,255,.48)}.copilot-bubble code{padding:2px 5px;border-radius:5px;color:#8c4c2c;background:#fff6ed;font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.88em}.copilot-bubble pre{max-width:100%;margin:9px 0;overflow:auto;padding:11px;border-radius:9px;color:#e8f1ec;background:#173f33;line-height:1.55}.copilot-bubble pre code{padding:0;color:inherit;background:transparent;font-size:12px;white-space:pre}.copilot-bubble a{color:#176a50;text-decoration:underline;text-decoration-color:rgba(23,106,80,.35);text-underline-offset:2px}.copilot-bubble hr{margin:12px 0;border:0;border-top:1px solid #d5dfd8}.copilot-table-wrap{max-width:100%;margin:9px 0;overflow-x:auto;border:1px solid #d7e0da;border-radius:8px}.copilot-bubble table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.45);font-size:12px}.copilot-bubble th,.copilot-bubble td{min-width:72px;padding:7px 8px;border-right:1px solid #dde5df;border-bottom:1px solid #dde5df;vertical-align:top}.copilot-bubble th{color:#2d493c;background:#e3ece5;font-weight:700}.copilot-bubble tr:last-child td{border-bottom:0}.copilot-bubble th:last-child,.copilot-bubble td:last-child{border-right:0}.copilot-usage{padding-left:3px;color:#89948e;font-size:10px;line-height:1.5}.copilot-points-cta{justify-self:start;padding:7px 10px;border-radius:8px;color:#fff;background:#aa5e35;font-size:11px;text-decoration:none}.copilot-points-cta:hover{background:#8c4725}.copilot-typing{display:flex;gap:4px;padding:15px}.copilot-typing i{width:5px;height:5px;border-radius:50%;background:#769183;animation:copilot-pulse 1s infinite}.copilot-typing i:nth-child(2){animation-delay:.15s}.copilot-typing i:nth-child(3){animation-delay:.3s}@keyframes copilot-pulse{50%{transform:translateY(-4px);opacity:.45}}
.copilot-suggestions{display:flex;gap:7px;overflow-x:auto;padding:0 16px 11px}.copilot-suggestions button{flex:0 0 auto;padding:7px 10px;border:1px solid #d9e0da;border-radius:9px;color:#587064;background:#fff;cursor:pointer;font-size:11px}.copilot-suggestions button:hover{border-color:#7da08f;background:#eef4ef}
.copilot-messages{min-width:0;overflow-x:hidden;overscroll-behavior:contain}.copilot-message{max-width:100%;min-width:0}.copilot-message-content,.copilot-bubble{min-width:0}.copilot-message.assistant .copilot-bubble,.copilot-bubble pre,.copilot-table-wrap{width:100%}.copilot-suggestions{overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain}.copilot-suggestions::-webkit-scrollbar{display:none}
.copilot-composer{display:grid;grid-template-columns:1fr auto;gap:8px;padding:13px 15px 11px;border-top:1px solid #e0e5e0;background:#fff}.copilot-composer textarea{width:100%;max-height:110px;resize:none;padding:10px 12px;border:1px solid #d6ddd7;border-radius:11px;outline:0;color:#263a31;background:#f8faf7;line-height:1.5}.copilot-composer textarea:focus{border-color:#6e9783;box-shadow:0 0 0 3px rgba(35,92,73,.08)}.copilot-composer>button{align-self:end;width:40px;height:40px;border:0;border-radius:11px;color:#fff;background:var(--green);cursor:pointer;font-size:20px;font-weight:700}.copilot-composer>button:disabled{background:#cbd4ce;cursor:not-allowed}.copilot-composer small{grid-column:1/-1;color:#9aa39e;font-size:10px;text-align:center}
body.copilot-open .copilot-launcher{opacity:0;pointer-events:none}
@media(min-width:901px){.copilot-backdrop{display:none!important}}
@media(max-width:560px){.copilot-launcher{right:14px;bottom:14px}.copilot-launcher small{display:none}.copilot-panel{top:10px;right:8px;bottom:8px;width:calc(100vw - 16px);border-radius:18px}.copilot-account{padding-inline:14px}.copilot-account small{max-width:190px}}
