:root{--ink:#20332f;--muted:#708079;--paper:#f7f8f2;--white:#fff;--line:#e2e7de;--green:#234b3d;--lime:#d4efb1;--light:#edf5e5;--orange:#bd653b;--shadow:0 5px 25px #20332f06;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;color:var(--ink);background:var(--paper);font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #88ab59;outline-offset:3px}a{color:inherit;text-decoration:none}button{color:inherit}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(30px,3vw,44px);letter-spacing:-1.8px;line-height:1.15;font-weight:650}h2{font-size:24px;letter-spacing:-.65px}h3{font-size:18px;letter-spacing:-.35px}p{line-height:1.75}small{font-size:12px}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:1.8px;font-size:10px;font-weight:750}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.sidebar{width:244px;background:#152c29;color:#e1e9df;position:fixed;inset:0 auto 0 0;z-index:20;padding:31px 22px;display:flex;flex-direction:column;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;font-weight:650;font-size:23px;letter-spacing:-.7px;margin-bottom:40px}.brand-mark{background:var(--lime);border-radius:11px;width:38px;height:38px;color:#183729;display:grid;place-items:center}.brand svg{width:25px}.sidebar .eyebrow{color:#829990;margin:0 13px 14px}.nav{display:flex;flex-direction:column;gap:5px}.nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;font-size:13px;border-radius:7px;color:#b9ccc2;transition:.2s}.nav a:hover{background:#24413a;color:white}.nav a.active{background:var(--lime);color:#233b2b;font-weight:650}.nav svg{width:18px;height:18px;flex-shrink:0}.nav .count{margin-left:auto;font-size:10px;background:#ffffff1a;padding:2px 6px;border-radius:4px}.nav a.active .count{background:#234b3d13}.side-course{margin-top:36px;padding-top:26px;border-top:1px solid #ffffff14}.side-course a{font-size:12px;color:#afc1b6;display:block;padding:9px 13px;line-height:1.4}.side-course a:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#719881;margin-right:10px}.side-bottom{margin-top:auto;padding-top:35px}.side-card{border:1px solid #3c5146;border-radius:10px;padding:17px;background:#203831}.side-card p{font-size:12px;color:#b0c2b5;margin:7px 0 12px}.side-card strong{font-size:13px}.side-card a{font-size:12px;color:var(--lime)}.side-foot{font-size:10px;color:#7f988a;margin:20px 0 0;display:flex;gap:7px;align-items:center}.dot{width:6px;height:6px;background:#afd394;border-radius:50%;display:inline-block}.workspace{margin-left:244px}.topbar{height:81px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;background:#fbfcf7;gap:18px}.breadcrumb{font-size:12px;color:var(--muted);display:flex;gap:12px;align-items:center}.breadcrumb strong{color:var(--ink);font-weight:500}.top-right{display:flex;gap:20px;align-items:center;font-size:12px}.top-search{border:1px solid var(--line);background:transparent;border-radius:7px;padding:9px 12px;display:flex;gap:30px;color:var(--muted)}kbd{font-size:10px;background:#f0f2eb;padding:1px 4px;border:1px solid var(--line);border-radius:3px}.avatar{width:31px;height:31px;display:grid;place-items:center;border:1px solid #d5ddcf;background:#ebf0e4;border-radius:50%;font-size:11px;font-weight:600}.mobile-toggle{display:none}.main{max-width:1400px;margin:auto;padding:37px 44px 70px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}.page-heading h1{margin:10px 0 9px}.page-heading p{margin:0;color:var(--muted);font-size:13px}.pill{border:1px solid var(--line);border-radius:20px;padding:7px 11px;font-size:10px;white-space:nowrap;display:inline-flex;gap:7px;align-items:center;background:#fbfcf7}.hero{background:#e8efdf;border:1px solid #dce6d2;border-radius:13px;padding:33px 35px;position:relative;overflow:hidden;display:grid;grid-template-columns:1.25fr 1fr;min-height:270px;gap:20px}.hero h2{font-size:32px;line-height:1.2;max-width:440px;margin:15px 0 12px;letter-spacing:-1px}.hero p{font-size:13px;color:#65775f;max-width:400px;margin-bottom:23px}.hero-actions{display:flex;gap:17px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;background:var(--green);color:#fff;border:1px solid var(--green);border-radius:7px;padding:11px 16px;font-size:12px;font-weight:600;line-height:1.3;transition:.15s}.btn:hover{background:#32604e;transform:translateY(-1px)}.btn.secondary{background:white;color:var(--ink);border-color:var(--line)}.btn.secondary:hover{background:#f0f4e9}.btn.ghost{background:transparent;color:var(--ink);border-color:transparent}.btn.small{padding:8px 11px;font-size:11px}.btn.danger{background:#93452e;border-color:#93452e}.text-link{font-size:12px;display:inline-flex;align-items:center;gap:8px;color:#456240}.architecture{position:relative;min-height:210px;display:flex;justify-content:center;align-items:center}.architecture svg{width:100%;max-width:400px;height:240px;overflow:visible}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:22px 0 33px}.stat{border:1px solid var(--line);background:white;border-radius:9px;padding:18px 20px;box-shadow:var(--shadow)}.stat-top{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.stat-top svg{width:16px;height:16px;color:#7b8c73}.stat strong{display:block;font-size:28px;letter-spacing:-1px;margin:11px 0 5px;font-weight:600}.stat small{color:var(--muted);font-size:10px}.stat strong span{font-size:13px;color:#8a9789;letter-spacing:0;font-weight:400}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 17px;gap:15px}.section-heading h2{font-size:19px;margin:0}.section-heading p{font-size:12px;color:var(--muted);margin:7px 0 0}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:24px}.path-list{display:flex;flex-direction:column;gap:11px}.module-card{display:grid;grid-template-columns:43px 1fr auto;gap:16px;align-items:center;background:white;border:1px solid var(--line);border-radius:9px;padding:19px 20px;transition:.2s}.module-card:hover{border-color:#a8b99c;box-shadow:var(--shadow);transform:translateX(2px)}.module-card .number{height:40px;width:40px;display:grid;place-items:center;background:#f0f4e8;border-radius:9px;color:#708864;font-size:14px;font-family:ui-monospace,monospace}.module-card h3{font-size:14px;margin:0 0 6px}.module-card p{font-size:11px;margin:0;color:var(--muted);line-height:1.4}.module-card .arrow{color:#8a9784;font-size:20px}.tags{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:10px}.tag{font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:#6a7962;background:#f2f5ec;padding:4px 7px;border-radius:4px}.tag.green{background:#e1f0d6;color:#396634}.tag.orange{background:#fff0e5;color:#a7643c}.aside-card{padding:23px;border-radius:10px;border:1px solid var(--line);background:white;margin-bottom:17px}.aside-card h3{font-size:15px;margin:12px 0}.aside-card p{font-size:12px;color:var(--muted)}.aside-card.tint{background:#eef1e6}.progress-bar{height:5px;border-radius:5px;background:#e9eee2;overflow:hidden}.progress-bar>span{display:block;background:#779b55;height:100%;border-radius:5px}.progress-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:12px 0 7px}.mini-list{list-style:none;padding:0;margin:16px 0 0}.mini-list li{display:flex;gap:10px;font-size:11px;line-height:1.6;margin-bottom:14px}.mini-list b{color:#92a182;font-size:10px}.footer-note{color:#8b9685;font-size:10px;margin-top:30px;border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;gap:15px}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:24px}.tabs button{border:1px solid var(--line);border-radius:6px;background:white;padding:9px 13px;font-size:11px}.tabs button.active{background:var(--green);color:white;border-color:var(--green)}.course-group{margin-bottom:30px}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.course-grid .module-card{padding:18px;grid-template-columns:36px 1fr auto}.course-group>h2{font-size:16px;margin:23px 0 14px;display:flex;gap:12px;align-items:center}.course-group>h2 span{font-size:10px;color:var(--muted);font-weight:400}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:30px;align-items:start}.lesson-body{min-width:0}.lesson-intro{background:#edf3e5;border:1px solid #dde7d4;padding:25px;border-radius:10px;margin-bottom:28px}.lesson-intro h3{font-size:14px}.lesson-intro ul{margin-bottom:0;padding-left:20px;font-size:13px;line-height:1.9}.prose{font-size:14px;line-height:1.85}.prose p{line-height:1.85}.lesson-section{margin:0 0 30px}.lesson-section h2{font-size:22px;margin-bottom:13px}.lesson-section .section-index{font-family:ui-monospace,monospace;color:#8d9b82;font-size:11px;display:block;margin-bottom:9px}.callout{border:1px solid var(--line);border-left:3px solid #88a56b;border-radius:7px;padding:22px 24px;background:white;margin:24px 0}.callout h3{font-size:14px}.callout p{margin-bottom:0;font-size:13px}.callout.trap{background:#fff7ec;border-color:#eadfcf;border-left-color:#c39163}.lesson-aside{position:sticky;top:24px}.toc a{display:block;font-size:11px;padding:8px 0;color:#68785f;line-height:1.5}.source-link{display:block;font-size:11px;line-height:1.6;padding:9px 0;border-bottom:1px solid var(--line);color:#496142}.question{background:white;border:1px solid var(--line);border-radius:10px;padding:24px;margin:16px 0}.question legend{font-size:14px;font-weight:600;line-height:1.7;padding:0;margin:8px 0 15px}.question fieldset{padding:0;border:0;min-width:0}.question .q-label{font-size:9px;text-transform:uppercase;letter-spacing:1.2px;color:#8c987e;margin-bottom:10px}.options{display:grid;gap:8px;margin-bottom:15px}.option{border:1px solid var(--line);border-radius:6px;padding:12px 14px;font-size:12px;display:flex;align-items:flex-start;gap:10px;cursor:pointer;line-height:1.5}.option:hover{background:#f5f8f0}.option:has(input:checked){background:#eef5e7;border-color:#9eB38b}.option input{accent-color:var(--green);margin:2px 0 0;flex-shrink:0}.feedback{padding:15px;border-radius:6px;margin-top:15px;font-size:12px;line-height:1.7;background:#fff3e9;border:1px solid #edd9c6}.feedback.correct{background:#eef6e9;border-color:#d7e7cc}.feedback strong{display:block;margin-bottom:5px}.number-input{display:flex;align-items:center;gap:12px;margin:10px 0 18px}input[type=number],input[type=text],input[type=search],textarea,select{border:1px solid #d7dfce;background:white;border-radius:6px;padding:11px 13px;max-width:100%;color:var(--ink)}input[type=number]{width:130px}textarea{width:100%;resize:vertical;line-height:1.65;font-size:13px}label.field{display:flex;flex-direction:column;gap:8px;font-size:12px}.order-list{list-style:none;padding:0;margin:12px 0 18px;display:grid;gap:7px}.order-list li{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:6px;padding:9px 10px;font-size:12px}.order-list li span{flex:1}.order-list button{border:0;background:#edf2e7;border-radius:4px;width:28px;height:28px}.recall-list{display:grid;gap:11px;margin:15px 0}.recall-list label{font-size:12px;display:flex;gap:9px;line-height:1.6}.recall-list input{accent-color:var(--green);flex-shrink:0}.lesson-nav{display:flex;justify-content:space-between;gap:15px;margin-top:30px}.lab-panel{border:1px solid var(--line);border-radius:13px;padding:28px;background:white;margin:20px 0}.lab-panel h2{font-size:23px}.lab-panel p{font-size:13px;color:#64735e}.lab-controls{display:flex;flex-wrap:wrap;gap:18px;align-items:end;margin:25px 0}.lab-controls label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--muted)}input[type=range]{accent-color:var(--green);width:170px}.lab-result{background:#f0f5e9;border:1px solid #dde7d3;border-radius:8px;padding:19px;margin-top:20px;font-size:13px;line-height:1.7}.replicas{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;padding:24px 0}.replica{border:2px solid #dce4d4;border-radius:10px;padding:18px;min-width:75px;text-align:center;background:#fafcf7}.replica.write{border-color:#83a96b;background:#eff8e7}.replica.read{box-shadow:inset 0 -5px #e0b26d}.replica strong{font-size:20px;display:block}.replica small{font-size:10px;display:block;margin-top:7px}.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.ring-wrap{text-align:center}.ring-wrap svg{width:280px;max-width:100%;height:280px}.lab-table{border-collapse:collapse;width:100%;font-size:12px}.lab-table th,.lab-table td{padding:11px;text-align:left;border-bottom:1px solid var(--line)}.lab-table th{color:var(--muted);font-weight:500;font-size:10px}.events{max-height:240px;overflow:auto;background:#162e29;border-radius:8px;color:#d6eac9;padding:18px;font:11px/1.8 ui-monospace,monospace}.events p{font:inherit;color:inherit;margin:0 0 7px}.empty{text-align:center;padding:55px 25px;border:1px dashed #cbd8be;border-radius:12px;background:#f1f5e9}.empty h2{margin:12px}.empty p{max-width:500px;margin:15px auto;color:var(--muted);font-size:13px}.review-card{max-width:750px;margin:auto}.flashcard{min-height:270px;border:1px solid #d6e0cd;background:white;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;box-shadow:var(--shadow)}.flashcard h2{font-size:24px;line-height:1.5}.flashcard p{font-size:15px;line-height:1.8}.flash-actions{display:flex;justify-content:center;gap:10px;margin:20px 0;flex-wrap:wrap}.search-box{width:100%;margin-bottom:22px;padding:15px!important}.resource-card{background:white;border:1px solid var(--line);padding:20px;border-radius:9px;margin-bottom:10px;display:flex;justify-content:space-between;gap:18px;align-items:center}.resource-card h3{font-size:13px;margin:5px 0 8px;overflow-wrap:anywhere}.resource-card p{font-size:11px;color:var(--muted);margin:0}.reader-page{border:1px solid var(--line);border-radius:8px;background:white;margin:15px 0;padding:22px}.reader-page pre{white-space:pre-wrap;font:12px/1.8 ui-monospace,monospace;overflow-wrap:anywhere}.reader-page h3{font-size:12px}.search-result{padding:20px;background:white;border:1px solid var(--line);border-radius:9px;margin-bottom:12px}.search-result h3{font-size:15px}.search-result p{font-size:12px;margin-bottom:0}.search-result mark{background:#e5efb8;color:inherit}.exam-banner{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10;background:#17392e;color:#edf6e3;border-radius:9px;padding:17px 23px;margin:20px 0}.exam-banner .timer{font:22px ui-monospace,monospace}.exam-info{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:25px 0}.exam-info>div{background:white;border:1px solid var(--line);border-radius:9px;padding:22px}.exam-info h3{font-size:15px}.exam-info p{font-size:12px;color:var(--muted)}.exam-written{margin-top:15px}.score-big{font-size:52px;letter-spacing:-2px}.settings-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.warning{color:#a35a35}.hidden{display:none!important}.menu-shade{display:none}.skip{position:fixed;top:-60px;left:10px;background:var(--green);color:white;padding:12px;z-index:100}.skip:focus{top:10px}#toast{position:fixed;bottom:24px;right:25px;background:#203e30;color:white;border-radius:8px;max-width:400px;padding:13px 20px;font-size:12px;z-index:100;box-shadow:0 5px 25px #0002;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}.loading{padding:50px}.search-overlay{position:fixed;inset:0;background:#152c2977;backdrop-filter:blur(4px);z-index:50;display:flex;justify-content:center;align-items:flex-start;padding:100px 20px 30px}.search-dialog{background:var(--paper);border-radius:13px;padding:25px;width:750px;max-height:80vh;overflow:auto}.search-dialog>header{display:flex;justify-content:space-between;align-items:center}.search-dialog h2{font-size:19px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.notes-label{display:block;font-size:12px;margin:20px 0 10px}.check-line{display:flex;gap:9px;font-size:12px;align-items:center}.print-only{display:none}@media(min-width:1600px){.main{padding-top:45px}.hero{min-height:290px}}@media(max-width:1200px){.main{padding:30px}.topbar{padding:0 30px}.sidebar{width:220px;padding:26px 17px}.workspace{margin-left:220px}.dashboard-grid{grid-template-columns:1fr 240px}.lesson-layout{grid-template-columns:minmax(0,1fr) 200px;gap:22px}.hero{padding:28px}.hero h2{font-size:29px}.top-search{gap:12px}}@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.dashboard-aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stats{gap:9px}.stat{padding:15px}.hero{grid-template-columns:1.5fr 1fr}.hero h2{font-size:27px}.hero .architecture{opacity:.8}.lesson-layout{grid-template-columns:1fr}.lesson-aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:15px}.lesson-aside .toc{display:none}.course-grid{grid-template-columns:1fr}.top-right .saved{display:none}}@media(max-width:760px){.sidebar{transform:translateX(-100%);width:250px;transition:transform .2s}.sidebar.open{transform:translateX(0)}.menu-shade.open{display:block;position:fixed;inset:0;background:#0005;z-index:19}.workspace{margin:0}.topbar{height:64px;padding:0 20px;gap:10px}.mobile-toggle{display:block;border:0;background:transparent;padding:5px}.breadcrumb{font-size:11px;gap:8px}.breadcrumb>span:first-child{display:none}.top-right{gap:10px}.top-search{padding:8px}.top-search kbd{display:none}.avatar{display:none}.main{padding:25px 20px 45px}.page-heading{align-items:start}.page-heading h1{font-size:32px}.page-heading>.pill{display:none}.hero{grid-template-columns:1fr;padding:27px}.hero h2{font-size:30px}.hero .architecture{display:none}.stats{grid-template-columns:1fr 1fr;margin-bottom:27px}.stat strong{font-size:26px}.dashboard-aside{grid-template-columns:1fr}.module-card{padding:16px;gap:12px}.module-card h3{font-size:13px}.lesson-aside{grid-template-columns:1fr}.question{padding:19px}.lab-panel{padding:21px}.lab-grid{grid-template-columns:1fr}.exam-info{grid-template-columns:1fr}.resource-card{flex-direction:column;align-items:start}.footer-note{flex-direction:column;gap:5px}.page-heading p{font-size:12px}.exam-banner{padding:14px}.search-overlay{padding-top:30px}.flashcard{padding:25px}.lesson-nav{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{.sidebar,.topbar,.lesson-aside,.btn,.tabs,.footer-note,.lesson-nav,#toast,.skip{display:none!important}.workspace{margin:0}.main{padding:0;max-width:none}.lesson-layout{display:block}.question,.callout,.lesson-section{break-inside:avoid}body{background:white}.print-only{display:block}.page-heading h1{font-size:30px}.prose{font-size:11pt}.lab-panel{break-inside:avoid}}
