:root{font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;color:#d4d4d4;background:#1e1e1e;font-size:14px}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:#1e1e1e}button{font:inherit;color:inherit;border:0;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid #61dafb;outline-offset:2px}.app{min-height:100vh;background:#1e1e1e;display:flex;flex-direction:column}header{height:66px;flex:0 0 66px;background:#252526;border-bottom:1px solid #3e3e42;display:flex;align-items:center;padding:0 22px;gap:24px}.brand{display:flex;gap:12px;align-items:center;min-width:245px}.logo{color:#61dafb;font-size:30px}.brand h1{font-size:17px;margin:0;color:#fff}.brand small{color:#858585}.progress-wrap{width:min(420px,36vw);margin-left:auto}.progress-wrap>div{display:flex;justify-content:space-between;font-size:12px;color:#9aa6b2;margin-bottom:6px}.progress-wrap b{color:#7ec699}.progress-wrap>i{display:block;height:5px;background:#3a3a3d;border-radius:4px;overflow:hidden}.progress-wrap em{display:block;height:100%;background:linear-gradient(90deg,#1684c7,#53c4e8);transition:width .3s}.restart{background:#37373d;padding:7px 12px;border-radius:4px;white-space:nowrap}.beginner-main{height:calc(100vh - 261px);min-height:510px;display:grid;grid-template-columns:220px minmax(410px,1fr) 350px}.sidebar,.lesson{background:#252526;overflow:auto;padding:18px 14px}.sidebar{border-right:1px solid #3e3e42}.lesson{border-left:1px solid #3e3e42}.sidebar h3{font-size:11px;text-transform:uppercase;color:#858585;letter-spacing:.08em;margin:4px 6px 12px}.repo{padding:7px;color:#ddd}.repo span{float:right;color:#7ec699;font-size:11px}.tree{margin-bottom:24px}.file{width:100%;text-align:left;background:transparent;padding:7px 8px;border-radius:3px;color:#bbb}.file:hover,.file.active{background:#37373d;color:#fff}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;background:#858585}.dot.modified{background:#e5c07b}.dot.staged{background:#98c379}.dot.conflicted{background:#e06c75}.dot.clean{background:#61afef}.branch{padding:6px 8px;color:#aaa}.branch.current{color:#7ec699}.muted{padding:4px 8px;color:#777;font-size:12px;line-height:1.65}.center{display:grid;grid-template-rows:40px minmax(250px,1fr) 155px;background:#1e1e1e;min-width:0}.editor-head{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #333;color:#9cdcfe}.readonly{font-size:11px;color:#6a9955}.center textarea{width:100%;height:100%;resize:none;background:#1e1e1e;border:0;outline:0;color:#d4d4d4;padding:18px 22px;font:13px/1.6 Consolas,monospace}.graph{border-top:1px solid #333;padding:10px 18px;overflow:hidden}.graph-title{color:#bbb;font-size:12px;margin-bottom:9px}.graph-title span{color:#6a9955;margin-left:8px}.nodes{display:flex;align-items:flex-start;gap:0;overflow:hidden}.node{position:relative;width:120px;flex:0 0 120px;padding-top:12px;color:#858585;font-size:11px}.node:before{content:"";position:absolute;top:8px;left:10px;width:110px;height:2px;background:#3f6e91}.node b{display:block;position:relative;z-index:1;width:10px;height:10px;border-radius:50%;background:#569cd6;border:2px solid #1e1e1e;box-shadow:0 0 0 1px #569cd6}.node span{display:block;color:#569cd6;margin-top:5px}.node em{display:block;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:110px}.beginner-lesson{padding:17px 18px}.one-command{display:inline-block;background:#173d2c;border:1px solid #2d7a51;color:#8bd6ad;padding:5px 9px;border-radius:20px;font-size:11px;margin-bottom:12px}.chapter-tag{color:#61dafb;font-size:12px}.beginner-lesson h2{font-size:20px;margin:8px 0 14px;color:#fff}.need-card,.scene-card{border-radius:6px;padding:13px 14px;margin-bottom:12px}.need-card{background:#173148;border:1px solid #285b80}.scene-card{background:#2c2c2e;border:1px solid #454548}.need-card label,.scene-card label{display:block;font-weight:700;font-size:11px;letter-spacing:.08em;color:#7dc9ff;text-transform:uppercase}.scene-card label{color:#d6bb78}.need-card p,.scene-card p{margin:7px 0 0;line-height:1.65;color:#e2e9ef}.scene-card code{display:block;margin-top:8px;padding:6px 8px;background:#1d1d1f;color:#e5c07b;border-radius:3px;font-size:11px}.condition{border-left:3px solid #7ec699;padding:8px 11px;margin:13px 0}.condition strong{color:#a8e6c0}.condition p{margin:5px 0;color:#b8c2ca}.danger-box{background:#4a271f;border:1px solid #8e493a;color:#ffc2b5;padding:9px 11px;border-radius:5px;line-height:1.5}.hint-box,.answer-box{padding:10px 11px;margin:10px 0;border-radius:5px}.hint-box{background:#423918;color:#ffe19a;border:1px solid #77672c}.answer-box{background:#163b2b;border:1px solid #2d7451}.answer-box span{display:block;color:#8bd6ad;font-size:11px;margin-bottom:6px}.answer-box code{color:#fff;word-break:break-all}.lesson-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.lesson-actions button{background:#36363b;padding:7px 10px;border-radius:4px;color:#c8c8c8}.lesson-actions button:first-child{background:#264f78}.terminal{height:160px;flex:0 0 160px;background:#111;border-top:1px solid #3e3e42;display:flex;flex-direction:column}.term-head{height:30px;flex:0 0 30px;padding:7px 14px;color:#9cdcfe;font-size:12px;font-weight:600;border-bottom:1px solid #252526}.term-head button{float:right;background:transparent;color:#777;font-size:11px}.term-output{flex:1;overflow:auto;padding:5px 14px}.term-output pre{margin:1px 0;white-space:pre-wrap;color:#c5e1a5;font:12px/1.35 Consolas,monospace}.term-output pre.input{color:#d7d7d7}.term-output pre.success{color:#9cdcfe}.term-output pre.teach{color:#8bd6ad}.term-output pre.error{color:#ff8e86;background:#321b1b;padding:3px 5px;border-radius:3px}.prompt{display:flex;align-items:center;gap:8px;padding:8px 14px;border-top:1px solid #252526}.prompt span{color:#98c379;font:12px Consolas,monospace;white-space:nowrap}.prompt input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:#fff;font:13px Consolas,monospace}.prompt button{background:#2d6a4f;padding:5px 14px;border-radius:3px;white-space:nowrap}footer{height:35px;flex:0 0 35px;background:#007acc;display:flex;align-items:center;gap:24px;padding:0 14px;color:#fff;font-size:12px}footer .footer-right{margin-left:auto}.welcome{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 30%,#17324a 0,#111820 45%,#0d1117);display:grid;place-items:center;overflow:auto}.welcome-card{text-align:center;width:min(700px,90vw);padding:35px 0}.welcome-logo{width:72px;height:72px;margin:auto;border:1px solid #3f91c7;border-radius:18px;display:grid;place-items:center;font-size:40px;color:#61dafb;background:#162b3b}.welcome-card>span{display:block;color:#61dafb;margin-top:24px}.welcome-card h1{font-size:46px;margin:10px 0;color:#fff}.welcome-card p{font-size:17px;line-height:1.8;color:#aeb8c2}.welcome-card p b{color:#61dafb}.promise{display:flex;justify-content:center;align-items:center;gap:12px;margin:28px 0}.promise b{font-weight:500;padding:10px 14px;background:#202c36;border:1px solid #334657;border-radius:5px}.promise i{font-style:normal;color:#61dafb}.welcome-card button{display:block;margin:0 auto 18px;background:#007acc;color:#fff;padding:12px 40px;border-radius:5px;font-size:16px}.welcome-card small{color:#677481}.finish{background:radial-gradient(circle at 50% 30%,#164230 0,#101d18 45%,#0c1210)}.finish .welcome-logo{color:#88e2ad;border-color:#39785a}.finish .welcome-card>span{color:#88e2ad}@media (max-width:1050px){.beginner-main{grid-template-columns:185px minmax(360px,1fr) 320px}.beginner-lesson{padding:14px 13px}}@media (max-width:900px){.beginner-main{grid-template-columns:180px 1fr}.beginner-lesson{display:none}.progress-wrap{width:35vw}}@media (max-width:650px){header{height:auto;min-height:58px;padding:10px 12px}.brand{min-width:0}.brand small,.progress-wrap{display:none}.restart{margin-left:auto}.promise{flex-wrap:wrap}.welcome-card h1{font-size:34px}.beginner-main{display:block;height:auto;min-height:0}.sidebar{height:190px}.center{height:540px}.terminal{height:190px;flex-basis:190px}.footer-right{display:none}}.beginner-main{height:calc(100vh - 351px);min-height:430px}.terminal{height:250px;flex-basis:250px}.lesson-actions .quick-run{background:#2d6a4f;color:#dff8e9;font-weight:600}@media (max-width:650px){.beginner-main{height:auto;min-height:0}.terminal{height:220px;flex-basis:220px}}.previous-btn:disabled{opacity:.45;cursor:not-allowed}.review-overlay{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;background:#070a0ec7;display:flex;justify-content:flex-end}.review-panel{width:min(680px,94vw);height:100%;background:#252526;border-left:1px solid #4b4b4f;box-shadow:-8px 0 30px #0008;padding:24px;overflow:auto}.review-head{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #3e3e42;padding-bottom:16px;margin-bottom:16px}.review-head h2{margin:7px 0 5px;color:#fff}.review-head p{margin:0;color:#9aa6b2}.review-head button{height:34px;padding:0 12px;background:#3b3b40;border-radius:4px}.review-list{display:flex;flex-direction:column;gap:10px}.review-item{background:#2f3033;border:1px solid #44454a;border-radius:6px;padding:13px}.review-item b{font-size:11px;color:#61dafb}.review-item h3{margin:6px 0;color:#fff;font-size:15px}.review-item p{margin:0 0 10px;color:#c0c8cf;line-height:1.55}.review-item code{display:block;padding:9px;background:#151719;border-radius:4px;color:#9cdcfe;font:12px Consolas,monospace;white-space:pre-wrap;word-break:break-word}.review-empty{color:#8b949e;padding:30px 10px;text-align:center}@media (max-width:650px){.review-panel{width:100%;padding:16px}}
