:root{--bg:#0a1017;--panel:#101c26;--text:#eef4f8;--muted:#a4b5c3;--line:#2a424e;--mint:#8bf5b1;--cyan:#48dfeb;--red:#ff8998;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--text);font:16px/1.65 Inter,Arial,sans-serif;background:radial-gradient(ellipse at 85% 0%,#19423c30,transparent 45%),linear-gradient(#23374719 1px,transparent 1px),linear-gradient(90deg,#23374719 1px,transparent 1px),var(--bg);background-size:auto,32px 32px,32px 32px,auto}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{color:var(--mint)}button:focus-visible,a:focus-visible,summary:focus-visible,label:focus-within{outline:2px solid var(--cyan);outline-offset:4px}button{border:1px solid var(--line);background:#15232d;color:var(--text);border-radius:7px;padding:10px 16px}button:hover:not(:disabled){border-color:var(--mint)}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3{line-height:1.2;letter-spacing:-.6px}h1{font-size:clamp(31px,4vw,49px);margin:15px 0 20px}h2{font-size:27px;margin:0 0 16px}h3{font-size:21px;margin:0 0 14px}p{margin:0 0 15px}.topbar{position:sticky;top:0;z-index:30;background:#091119f5;border-bottom:1px solid var(--line)}.header-inner{max-width:1480px;margin:auto;min-height:74px;display:flex;align-items:center;gap:23px;padding:12px 30px}.brand{display:flex;align-items:center;gap:15px}.brand img{width:35px;height:35px;object-fit:contain;transform:scale(1.6)}.brand b{font:800 26px ui-monospace,Consolas,monospace;letter-spacing:-1px}.brand b span{color:var(--cyan)}.divider{height:28px;width:1px;background:#526a75}.header-course{font:13px ui-monospace,monospace;color:var(--muted)}.back{margin-left:auto;font-size:13px}.menu-toggle{display:none}.layout{max-width:1480px;margin:auto;display:grid;grid-template-columns:290px minmax(0,1fr)}aside{position:sticky;top:75px;align-self:start;height:calc(100dvh - 75px);overflow:auto;padding:30px 24px 40px;border-right:1px solid var(--line);background:#0c151de8}.eyebrow{font:11px ui-monospace,Consolas,monospace;color:var(--mint);letter-spacing:.09em;text-transform:uppercase}.sidebar-head h2{font-size:23px;margin:14px 0 10px}.sidebar-head p{color:var(--muted);font-size:13px}.progress-head{display:flex;justify-content:space-between;gap:10px;font:11px ui-monospace,monospace;margin-top:24px}.progress-head strong{color:var(--mint)}progress{width:100%;height:5px;appearance:none;border:0;border-radius:4px;background:#233441;margin:12px 0 24px}progress::-webkit-progress-bar{background:#233441;border-radius:4px}progress::-webkit-progress-value{background:var(--mint);border-radius:4px}progress::-moz-progress-bar{background:var(--mint)}#lesson-nav{display:grid;gap:6px}#lesson-nav a{display:grid;grid-template-columns:25px 1fr 15px;gap:8px;align-items:center;padding:11px 10px;border-radius:7px;font-size:12px;line-height:1.45;border:1px solid transparent;color:#bdcbd5}#lesson-nav a.active{background:#18332f;border-color:#3c7963;color:var(--text)}.lesson-num{color:#688b98;font:12px ui-monospace,monospace}.lesson-check{color:var(--mint)}.sidebar-tools{display:grid;gap:8px;margin-top:24px}.sidebar-tools button{text-align:left;font-size:12px;background:none}.local-note{font-size:11px;line-height:1.6;color:#8ea4b1;margin:22px 0 12px}.storage-tools{display:grid;gap:8px}.storage-tools button,.import-label{font-size:11px;padding:7px 10px;text-align:left;color:var(--muted)}.import-label{border:1px solid var(--line);border-radius:7px;cursor:pointer}.import-label input{display:block;max-width:100%;font-size:10px;margin-top:6px}main{padding:43px 48px 65px;min-width:0;outline:none}.lead{font-size:18px;color:#b8c8d3;max-width:760px}.meta{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.pill{font:11px ui-monospace,monospace;border:1px solid var(--line);border-radius:5px;padding:6px 10px;color:var(--muted)}.pill.mint{color:var(--mint);border-color:#3e7763}.intro-terminal{margin:30px 0;border:1px solid #3b7d74;background:#08131b;border-radius:12px;overflow:hidden}.terminal-bar{display:flex;align-items:center;gap:7px;min-height:38px;background:#1a2b35;padding:8px 16px;font:11px ui-monospace,monospace}.dot{height:9px;width:9px;border-radius:50%;background:#ff8d87}.dot:nth-child(2){background:#ffd079}.dot:nth-child(3){background:var(--mint)}.terminal-bar span{margin-left:10px;color:#b4c6d0}.terminal-bar button{margin-left:auto;font:10px ui-monospace,monospace;padding:3px 8px}.intro-terminal pre{padding:22px;margin:0;color:var(--mint);font:14px/1.9 ui-monospace,Consolas,monospace;white-space:pre-wrap}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.primary{background:var(--mint);border-color:var(--mint);color:#0b2517;font-weight:750}.outline{color:var(--mint);border-color:#4b8e72;background:transparent}.notice{border:1px solid #3a5b66;border-left:3px solid var(--cyan);border-radius:8px;background:#10232e;padding:17px 20px;font-size:14px;margin:24px 0}.notice p:last-child{margin-bottom:0}.notice.warning{border-color:#8a7042;border-left-color:#e9c675;background:#2d291c}.section-title{margin:40px 0 20px}.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.overview-card{display:block;position:relative;border:1px solid var(--line);border-radius:10px;padding:20px;background:linear-gradient(120deg,#13232d,#0e1922);transition:border-color .2s}.overview-card:hover{border-color:var(--mint)}.overview-card small{color:var(--cyan);font:11px ui-monospace,monospace}.overview-card h3{font-size:19px;margin:13px 0 10px}.overview-card p{color:var(--muted);font-size:13px;margin-bottom:0}.overview-card .status{position:absolute;right:16px;top:16px;color:var(--mint);font-size:10px}.lesson-top{border-bottom:1px solid var(--line);margin-bottom:28px;padding-bottom:18px}.lesson-top h1{margin-bottom:14px}.section-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.section-tabs a{font:12px ui-monospace,monospace;padding:8px 12px;border:1px solid var(--line);border-radius:6px;color:var(--cyan)}.theory-section{margin:25px 0 34px;max-width:850px}.theory-section p{font-size:15px;color:#c0ced8}.theory-section h2{font-size:24px}code{font:12px ui-monospace,Consolas,monospace;color:#9eead9;background:#172b34;padding:3px 6px;border-radius:4px;overflow-wrap:anywhere}kbd{font:11px ui-monospace,monospace;color:#e4eef5;padding:3px 6px;border:1px solid #456071;border-radius:4px;background:#17252e}.mentor{border:1px solid #4c7767;border-radius:12px;padding:21px;background:linear-gradient(120deg,#18362e55,#10202a);margin:28px 0}.mentor-label{display:flex;align-items:center;gap:12px;margin-bottom:13px;font:12px ui-monospace,monospace;color:var(--mint)}.mentor-label span{font-size:22px}.mentor p{font-size:14px;color:#ccddd9;margin:0}.command-list{display:grid;gap:8px;margin:20px 0}.command-row{display:grid;grid-template-columns:minmax(190px,.9fr) 1fr;gap:14px;padding:12px 15px;border:1px solid var(--line);border-radius:7px;align-items:center;font-size:12px;color:var(--muted)}.command-row code{background:none;padding:0}.lab-section{border-top:1px solid var(--line);margin-top:35px;padding-top:32px}.lab-section>p{font-size:14px;color:var(--muted)}.task-list{display:grid;gap:8px;margin:20px 0}.task{border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:grid;grid-template-columns:24px 1fr;gap:8px;font-size:14px;background:#10202a}.task.done{border-color:#3d8168;background:#16352a66}.task-mark{font:13px ui-monospace,monospace;color:var(--muted)}.task.done .task-mark{color:var(--mint)}.task details{margin-top:8px;font-size:12px;color:var(--muted)}.task summary{cursor:pointer;color:#91bbc7;width:fit-content}.task details code{display:inline-block;margin-top:8px}.lab-terminal{border:1px solid #437570;border-radius:10px;overflow:hidden;background:#071018;margin-top:20px}.terminal-output{height:310px;overflow:auto;padding:16px 18px;font:12px/1.75 ui-monospace,Consolas,monospace;overflow-wrap:anywhere}.terminal-output pre{white-space:pre-wrap;font:inherit;margin:0 0 10px;color:#c3d4df}.terminal-output .command{color:var(--mint);margin-top:12px}.terminal-output .error{color:var(--red)}.terminal-output .system{color:#7fa2b2;font-size:11px}.terminal-form{display:flex;gap:10px;align-items:center;padding:12px 15px;border-top:1px solid #27404a;flex-wrap:wrap}.terminal-form label{font:11px ui-monospace,monospace;color:var(--mint);overflow-wrap:anywhere}.terminal-form input{flex:1;min-width:120px;background:transparent;border:0;border-bottom:1px solid #2c4a56;color:#fff;font:13px ui-monospace,monospace;padding:8px 3px;border-radius:0;outline:none}.terminal-form input:focus{border-color:var(--mint)}.terminal-form button{padding:5px 10px;font-size:12px}.lab-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:12px;font-size:11px;color:var(--muted)}.lab-footer button{font-size:11px}.quiz-section{padding-top:35px;border-top:1px solid var(--line);margin-top:35px}.quiz-card{margin:20px 0;padding:22px;border:1px solid var(--line);border-radius:10px;background:#101d27}.quiz-card legend{padding:0 8px;font-size:15px;font-weight:650;max-width:100%}.quiz-options{display:grid;gap:9px}.quiz-option{display:flex;align-items:flex-start;gap:12px;border:1px solid #304b58;padding:12px;border-radius:7px;font-size:13px;cursor:pointer;background:#12232e}.quiz-option:hover{border-color:#5d8997}.quiz-option input{margin-top:5px;accent-color:var(--mint);flex-shrink:0}.quiz-option.correct{border-color:var(--mint);background:#173c2c;color:#b9f9cf}.quiz-option.wrong{border-color:var(--red);background:#3c202c;color:#ffc0c9}.feedback{padding:13px 16px;border-radius:7px;font-size:13px;margin:15px 0 0;border:1px solid var(--mint);color:#b9f9cf;background:#153528}.feedback.error{color:#ffc0c9;border-color:var(--red);background:#351f2a}.completion{border:1px solid #3c7961;border-radius:10px;padding:23px;margin-top:35px;background:#13312555}.completion h3{color:var(--mint)}.completion p{font-size:14px;color:var(--muted)}.completion button{margin-top:10px}.completion .requirement{font-size:12px;margin-top:12px}.next-row{display:flex;justify-content:space-between;gap:12px;margin-top:28px;flex-wrap:wrap}.next-row button{font-size:13px}.exam-result{padding:25px;border:1px solid var(--mint);border-radius:10px;margin:24px 0;background:#113323}.exam-result.fail{border-color:var(--red);background:#321d29}.exam-result h2{color:var(--mint)}.exam-result.fail h2{color:var(--red)}.source-list{font-size:13px;color:var(--muted)}.source-list a{color:var(--cyan);text-decoration:underline}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:calc(100% - 30px);padding:14px 20px;border:1px solid var(--mint);border-radius:8px;background:#12271f;z-index:100;font-size:13px}.save-warning{background:#3b2930;border-color:var(--red)}[hidden]{display:none!important}.final-review{margin-top:25px}.check-row{font-size:13px;color:var(--mint);margin-top:10px}.cheatsheet-group{margin:32px 0}.course-footer{border-top:1px solid var(--line);margin-top:45px;padding-top:20px;display:flex;justify-content:space-between;gap:15px;font:10px ui-monospace,monospace;color:var(--muted)}@media(max-width:1100px){.layout{grid-template-columns:255px minmax(0,1fr)}aside{padding:26px 17px}main{padding:33px 28px}.command-row{grid-template-columns:1fr}.header-inner{padding-inline:22px}}@media(max-width:760px){.header-inner{padding:12px 16px;gap:12px;flex-wrap:wrap}.header-course{display:none}.back{font-size:11px}.menu-toggle{display:block;font-size:11px;padding:7px 9px}.layout{display:block}aside{display:none;position:fixed;top:74px;left:0;bottom:0;width:min(330px,92vw);height:calc(100dvh - 74px);z-index:25;box-shadow:15px 0 80px #0009;background:#0d1821}aside.open{display:block}main{padding:30px 18px 45px}.overview-grid{grid-template-columns:1fr}h1{font-size:34px}.lead{font-size:16px}.terminal-form{gap:8px}.terminal-form label{width:100%}.terminal-output{height:270px;font-size:11px}.lab-footer{align-items:flex-start}.quiz-card{padding:17px 12px}.quiz-option{font-size:12px}.course-footer{flex-direction:column}.section-tabs{gap:7px}.section-tabs a{font-size:11px}html{scroll-padding-top:90px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
