:root{--ink:#202f39;--muted:#748187;--green:#137e70;--line:#dfe5e1}*{box-sizing:border-box}body{margin:0;background:#f6f8f5;color:var(--ink);font:15px/1.6 'Segoe UI',Arial,sans-serif}button,input,textarea{font:inherit}button,a,input,textarea{outline-offset:4px}button{cursor:pointer}a{color:inherit}aside{width:238px;position:fixed;inset:0 auto 0 0;background:#162e32;color:#b9cdcb;padding:34px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:white;font-size:21px;font-weight:750;letter-spacing:2px;line-height:1.15}.mark{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#a9dfb9;border-radius:13px;color:#173a32;font-size:37px;letter-spacing:-4px}.mark span{font-size:23px}.academy{display:block;font-size:10px;letter-spacing:4px;margin-top:7px;color:#a3bab7}.workspace{font-size:10px;letter-spacing:1.7px;margin:54px 12px 16px;color:#87a6a3}nav button{width:100%;border:0;background:none;color:#b9cdcb;text-align:left;padding:11px 12px;margin:3px 0;border-radius:7px;font-size:13px;display:flex;gap:12px;align-items:center}nav button.active{background:#2b494a;color:#d1f0c8}nav button:hover{background:#244244}nav svg{width:18px;height:18px}.side-bottom{margin-top:auto;border-top:1px solid #385051;padding:23px 10px 0;font-size:12px;color:#d1dfdb}.side-bottom p{color:#91aaa6;line-height:1.8;font-size:11px}.side-bottom a{color:#b6c9c3;font-size:11px;text-decoration:none}.local-dot{display:inline-block;background:#9ad9ac;width:6px;height:6px;border-radius:50%;margin-right:5px}.page{margin-left:238px}header{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 42px;font-size:12px;color:var(--muted);background:#fcfdfb}header b{font-weight:500;color:var(--ink)}.slash{margin:0 13px;color:#adb7b1}.private{color:#577467;background:#edf4ec;padding:5px 11px;border:1px solid #dce9dc;border-radius:5px;font-size:11px}main{max-width:1600px;margin:auto;padding:38px 42px 24px}.eyebrow{font-size:10px;color:var(--green);font-weight:700;letter-spacing:2px;text-transform:uppercase}h1{font-size:36px;line-height:1.2;letter-spacing:-1.3px;font-weight:650;margin:12px 0 13px}.intro-copy{color:var(--muted);max-width:590px;font-size:14px}.hero{display:flex;justify-content:space-between;gap:30px;align-items:center}.hero-progress{width:210px;flex-shrink:0;border:1px solid var(--line);border-radius:10px;padding:17px 20px;background:#fcfdfb}.hero-progress .number{font-size:25px;font-weight:650}.hero-progress small{color:var(--muted);font-size:11px}.track{height:5px;background:#e7eee7;border-radius:8px;overflow:hidden;margin:12px 0 8px}.fill{height:100%;background:#198878;border-radius:8px}.hint{margin:26px 0 0;padding:12px 17px;border:1px solid #e0e8d6;border-radius:7px;background:#f0f4e8;color:#62755c;font-size:12px;display:flex;gap:12px}.hint b{font-weight:600;color:#405f48}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:29px 0 24px;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:23px;align-self:stretch}.tabs button{border:0;background:none;color:#7d888a;font-size:12px;padding:13px 0;border-bottom:2px solid transparent}.tabs button.selected{color:var(--green);border-color:var(--green);font-weight:650}.search{display:flex;align-items:center;background:white;border:1px solid var(--line);border-radius:6px;padding:5px 10px;gap:7px;margin-bottom:9px}.search span{font-size:21px;color:#85928c}.search input{width:180px;border:0;background:none;font-size:12px;color:var(--ink)}kbd{border:1px solid #e3e8e3;color:#a3ada6;border-radius:3px;font-size:10px;padding:0 4px}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.section-card{border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden;transition:transform .15s,box-shadow .15s;position:relative}.section-card:hover{transform:translateY(-3px);box-shadow:0 9px 25px #173b3010}.card-head{display:block;text-align:left;border:0;background:none;width:100%;padding:22px 22px 16px;color:inherit}.card-line{display:flex;align-items:center;justify-content:space-between}.icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,white)}svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.order{font-size:11px;color:#9aa69e;font-family:monospace}h2{font-size:19px;line-height:1.35;font-weight:650;letter-spacing:-.4px;margin:16px 0 5px}.card-head p{font-size:12px;color:var(--muted);margin:0}.card-previews{padding:0 18px 10px}.preview{width:100%;display:flex;align-items:center;gap:9px;text-align:left;border:1px solid #e9ede7;border-radius:5px;padding:8px 10px;margin:6px 0;background:#fafbf8;color:#52615d;font-size:11px}.preview:hover{border-color:#a6c7b6;background:#f1f7ef}.preview .mini-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;flex-shrink:0}.preview span:last-child{margin-left:auto;color:#93a397}.card-footer{margin:0 22px;border-top:1px solid #edf0eb;padding:13px 0;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#89948c}.card-footer button{background:none;border:0;color:var(--accent);font-size:11px;font-weight:600}.section-card:last-child{background:#f0f3ef}.lesson-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.lesson-card{background:white;border:1px solid var(--line);border-radius:9px;padding:20px;display:flex;flex-direction:column;gap:12px;text-align:left;color:var(--ink)}.lesson-card:hover{border-color:#7eb29c}.lesson-card h2{margin:0;font-size:17px}.lesson-card p{margin:0;color:var(--muted);font-size:12px}.lesson-meta{display:flex;justify-content:space-between;font-size:10px;color:#698378}.tag{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--green)}.back{border:0;background:none;padding:0;color:var(--green);font-size:12px;margin-bottom:18px}.empty{padding:50px;text-align:center;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:35px;padding-top:20px;font-size:10px;color:#929b94}footer button{border:0;background:none;color:#667e71;font-size:10px}dialog{border:0;border-radius:14px;max-width:790px;width:calc(100% - 32px);max-height:90vh;padding:0;color:var(--ink);box-shadow:0 24px 90px #152f3555}dialog::backdrop{background:#102e36aa;backdrop-filter:blur(4px)}.dialog-top{position:sticky;top:0;background:#f4f7f1;border-bottom:1px solid var(--line);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;font-size:12px;z-index:2}.dialog-top button{border:0;border-radius:50%;background:white;width:32px;height:32px;color:#50675e}article{padding:24px 36px 36px}article h1{font-size:29px}article p,article li{font-size:14px;color:#596860}article h3{font-size:14px;margin:25px 0 10px}article ol{padding-left:24px}article li{padding:6px 0 6px 5px}.note{background:#f6f3e9;border-left:3px solid #c8ad63;padding:12px 17px;font-size:12px;color:#75683f;margin-top:20px}.practice{background:#eef5ef;padding:14px 18px;border-radius:7px}.practice h3{margin:0 0 6px}.practice p{margin:0;font-size:13px}.answers{display:flex;flex-direction:column;gap:7px}.answers button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:6px;padding:9px 13px;font-size:13px;color:#4d6258}.answers button.right{border-color:#3e9971;background:#eef8ef}.answers button.wrong{border-color:#c77668;background:#fcf0ed}.feedback{font-size:12px;min-height:20px;color:var(--green)}textarea{width:100%;min-height:80px;resize:vertical;border:1px solid var(--line);border-radius:6px;padding:10px;color:#53665a;background:#fbfcf9;font-size:12px}.source{display:inline-block;margin:18px 0;color:var(--green);font-size:12px}.lesson-actions{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid var(--line);padding-top:20px}.primary{border:0;border-radius:6px;background:var(--green);color:white;padding:10px 18px;font-size:12px}.secondary{border:1px solid var(--line);border-radius:6px;background:white;color:#4c6759;padding:10px 16px;font-size:12px}@media(min-width:1600px){.board{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1150px){aside{width:205px;padding:28px 15px}.page{margin-left:205px}main{padding:30px 25px}header{padding:0 25px}.board,.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-progress{width:180px}}@media(max-width:740px){aside{position:static;width:auto;padding:17px 20px}.brand{font-size:16px}.mark{width:34px;height:34px;font-size:29px}.workspace,.side-bottom{display:none}nav{display:flex;overflow:auto;margin-top:15px}nav button{width:auto;white-space:nowrap}nav svg{display:none}.page{margin:0}header{height:58px;padding:0 20px;font-size:10px}.private{font-size:9px}main{padding:25px 20px}.hero{align-items:flex-start}h1{font-size:29px}.hero-progress{display:none}.board,.lesson-grid{grid-template-columns:1fr}.toolbar{flex-direction:column;align-items:stretch;gap:10px}.search input{width:100%}.search{margin-bottom:15px}.tabs{gap:22px}.intro-copy{font-size:13px}article{padding:18px 22px}.lesson-actions{align-items:stretch;flex-direction:column}footer{flex-direction:column;gap:8px}.hint{font-size:11px}}@media print{aside,header,.toolbar,footer,.dialog-top,.answers,textarea,.lesson-actions,.source{display:none}body:has(dialog[open]) .page{display:none}dialog[open]{position:static;max-height:none;width:100%;max-width:none;box-shadow:none}article{padding:0}dialog::backdrop{display:none}}
:root{--completed:#167447}
.section-picture{height:145px;position:relative;margin:-22px -22px 18px;background:#edf2ee;border-bottom:1px solid #dfe5e1;overflow:hidden}.section-picture img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.section-picture span{position:absolute;bottom:9px;left:12px;background:#16342ee8;border-radius:5px;color:#fff;font-size:10px;padding:3px 9px}.lesson-thumbnail{height:145px;width:calc(100% + 40px);margin:-20px -20px 3px;background:#eef2ed;border-bottom:1px solid var(--line);position:relative;overflow:hidden;border-radius:8px 8px 0 0}.lesson-thumbnail img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.lesson-thumbnail>span{position:absolute;bottom:8px;left:12px;font-size:8px;letter-spacing:1px;background:#18372fdd;color:white;padding:2px 6px;border-radius:3px}.diagram-thumb{display:flex;align-items:center}.concept-diagram{width:100%;height:auto;fill:initial;stroke:none;stroke-linecap:initial;stroke-linejoin:initial}.teaching-diagram{margin:20px 0;background:#eef4ef;border:1px solid #dce9df;border-radius:10px;overflow:hidden}.teaching-diagram figcaption{padding:0 15px 12px;font-size:10px;color:#6c8073}.topic-definition{border-bottom:1px solid #e1e8e0;padding:12px 0}.topic-definition h2{font-size:21px;margin-top:7px}.topic-definition p{font-size:14px;margin-bottom:17px}.visual-guide{margin:25px 0}.visual-intro{font-size:12px;color:#748276}.visual-guide figure{margin:15px 0 22px;border:1px solid #d9e2d9;border-radius:9px;overflow:hidden;background:#f6f8f5}.visual-guide img{width:100%;height:auto;display:block;cursor:zoom-in}.visual-guide figcaption{font-size:11px;color:#6a796f;padding:11px 15px}.visual-guide figcaption a{color:var(--green)}.lesson-card.is-complete,.preview.is-complete{background:var(--completed);border-color:var(--completed);color:white}.lesson-card.is-complete:hover,.preview.is-complete:hover{background:#115b37;border-color:#115b37}.lesson-card.is-complete h2,.lesson-card.is-complete p,.lesson-card.is-complete .lesson-meta,.lesson-card.is-complete .tag,.preview.is-complete span:last-child{color:white}.preview.is-complete .mini-dot{background:white}.completion-check{font-weight:700}.is-complete .completion-check{color:white;font-size:12px}.lesson-card.is-complete .completion-check{background:#ffffff1f;padding:2px 7px;border-radius:5px}.is-complete .lesson-thumbnail{border-bottom-color:#ffffff40}.lesson-card.is-complete .diagram-thumb{background:#e2eee7}
.workflow-steps{padding-left:28px}.workflow-steps>li{padding:12px 0 25px 9px;border-bottom:1px solid #e5ece5;margin-bottom:14px}.workflow-steps>li::marker{color:#157c58;font-size:20px;font-weight:700}.step-instruction{font-size:15px;line-height:1.75;font-weight:550;color:#304f3e}.step-pictures{margin-top:16px}.step-pictures figure,.mode-option figure,.locker-modes figure{margin:14px 0;border:1px solid #dbe5db;border-radius:9px;overflow:hidden;background:#f8faf7}.step-pictures img,.mode-option img,.locker-modes img{display:block;width:100%;height:auto}.step-pictures img{cursor:zoom-in}.step-pictures figcaption,.mode-option figcaption,.locker-modes figcaption{padding:11px 14px;font-size:11px;color:#607668;line-height:1.7}.step-pictures figcaption a{color:#137e70}.step-pictures figcaption span{color:#849387}.mode-catalogue{margin:28px 0}.mode-catalogue>h2{font-size:25px}.mode-index{display:flex;flex-wrap:wrap;gap:7px;margin:17px 0 28px}.mode-index button{border:1px solid #cddfd0;border-radius:6px;padding:5px 9px;background:#f0f6ee;color:#3b6b4c;font-size:11px}.mode-option{scroll-margin-top:80px;border:1px solid #dce6db;border-radius:12px;padding:19px;margin:22px 0;background:#fcfdfa}.mode-option-heading{display:flex;gap:12px;align-items:center}.mode-option-heading>span{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:8px;background:#dceedd;color:#317246;font-size:12px;font-weight:650}.mode-option-heading h3{margin:0;font-size:18px}.mode-definition{font-size:16px;font-weight:600;color:#345541}.mode-example{font-size:13px;color:#6a7c6c}.locker-modes{padding:18px;background:#f0f5ef;border-radius:10px}.locker-modes h4{margin-bottom:7px}.locker-modes p{margin-top:4px}@media(max-width:740px){.workflow-steps{padding-left:22px}.workflow-steps>li{padding-left:4px}.step-instruction{font-size:14px}.mode-option{padding:12px}.mode-option-heading h3{font-size:16px}}

.group-grid{margin-bottom:32px}.group-card{border:2px solid #157f77}.group-card .lesson-thumbnail{height:180px}.other-lessons{font-size:20px;margin:28px 0 18px}.annotated-picture{position:relative}.annotated-picture img{display:block}.picture-highlight{position:absolute;border:4px solid #ffb000;box-shadow:0 0 0 2px #112b3a;pointer-events:none;box-sizing:border-box}.picture-highlight>span{position:absolute;right:100%;top:0;background:#112b3a;color:white;padding:7px 10px;white-space:nowrap;font:700 13px system-ui;margin-right:8px;border-radius:4px}.step-pictures figcaption{overflow-wrap:anywhere}
:root{--auth-ink:#203137}.auth-brand{display:flex;align-items:center;gap:13px;margin-bottom:27px;color:#203137;font-size:21px;font-weight:750;letter-spacing:2px;line-height:1.15}.auth-brand .academy{color:#66827b}#auth-gate[hidden],#app-shell[hidden],#logout[hidden]{display:none!important}#auth-gate:not([hidden]){min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;background:linear-gradient(145deg,#f5f8f3,#eaf2eb)}.auth-card{width:min(100%,460px);padding:34px 38px 26px;border:1px solid #dbe5dc;border-radius:15px;background:#fff;box-shadow:0 14px 55px #1a393211}.auth-card h1{font-size:29px;letter-spacing:-.8px}.auth-copy{font-size:14px;color:#748187;margin:0 0 20px}.auth-tabs{display:flex;gap:20px;border-bottom:1px solid #e1e8e1;margin:0 0 22px}.auth-tabs button{padding:11px 1px;background:none;border:0;border-bottom:2px solid transparent;color:#73817d;font-size:13px}.auth-tabs button.selected{color:#137e70;border-color:#137e70;font-weight:650}.auth-card form label{display:block;margin:13px 0 6px;font-size:12px;font-weight:650;color:#354840}.auth-card input{width:100%;border:1px solid #cfdad1;border-radius:6px;background:white;padding:11px 12px;color:#202f39}.auth-card input:focus{outline:2px solid #88c2a2}.auth-help{font-size:11px;color:#718077}.auth-submit{width:100%;margin-top:16px}.auth-submit:disabled{opacity:.65;cursor:wait}.auth-footnote{border-top:1px solid #e6ebe6;padding-top:17px;margin:19px 0 0;color:#6e7d74;font-size:11px;line-height:1.65}.auth-source{margin-top:20px;color:#557365;font-size:12px;text-decoration:none}.logout{border:1px solid #dce5dd;border-radius:6px;background:#fff;color:#476257;padding:5px 10px;font-size:11px}@media(max-width:520px){.auth-card{padding:26px 22px}.auth-card h1{font-size:26px}}.picture-highlight>span{right:auto;left:0;margin-right:0}

.auth0-action{width:100%;padding:12px 16px;border:0;border-radius:7px;background:#137e70;color:#fff;font-weight:650;cursor:pointer}.auth0-action:hover{background:#0f6c60}.auth0-action:focus-visible{outline:3px solid #88c2a2;outline-offset:2px}
.brand-logo{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:12px;padding:3px;flex:none}.auth-brand img{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:12px;padding:3px;flex:none}.brand{font-size:17px;letter-spacing:.3px}.academy{font-size:9px;letter-spacing:3px}@media(max-width:980px){.board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.board{grid-template-columns:1fr}}
