:root{--bg:#f4f6ef;--ink:#213c35;--muted:#68796f;--line:#dce4d9;--green:#246851;--lime:#e6f0c2;--input:#c32676;--basic:#1671bf;--loop:#187d3d;--logic:#087f9a;--variable:#aa321e;--math:#70429c;--led:#8547ae}*{box-sizing:border-box}body{margin:0;font:16px/1.6 "Segoe UI","Microsoft JhengHei",sans-serif;color:var(--ink);background:var(--bg)}button,a,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #dd9b29;outline-offset:3px}header{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;gap:20px;border-bottom:1px solid var(--line);background:#fff}.brand{font-weight:800;font-size:19px;text-decoration:none}.brand span{font-size:12px;background:var(--lime);padding:4px 9px;border-radius:6px;margin-left:10px}header nav{display:flex;gap:10px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 13px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font-size:13px;text-decoration:none}.button.primary{background:var(--green);border-color:var(--green);color:white}.topline{padding:15px 24px 12px;display:flex;justify-content:space-between;gap:20px;align-items:center}.topline h1{font-size:22px;margin:0}.topline p{font-size:12px;color:var(--muted);margin:3px 0 0}.workspace{display:grid;grid-template-columns:minmax(350px,420px) minmax(0,1fr);gap:16px;padding:0 20px 20px;height:calc(100vh - 150px);min-height:650px}.guide,.editor{border:1px solid var(--line);border-radius:13px;background:white;overflow:hidden;min-width:0}.guide{display:flex;flex-direction:column}.guide-scroll{overflow-y:auto;flex:1;padding:22px}.step-progress{display:flex;gap:6px;margin-bottom:20px}.step-dot{flex:1;height:6px;padding:0;border:0;border-radius:6px;background:#e0e7db}.step-dot.active{background:var(--green)}.step-dot.done{background:#91b494}.step-number{font-size:12px;color:var(--green);letter-spacing:1px;font-weight:bold}h2{font-size:25px;line-height:1.3;margin:9px 0 14px}.instruction{font-size:17px;margin:0 0 15px}.path{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:15px 0;font-size:12px}.chip{padding:3px 9px;border-radius:5px;color:white;font-weight:bold}.input{background:var(--input)}.basic{background:var(--basic)}.loop{background:var(--loop)}.logic{background:var(--logic)}.variable{background:var(--variable)}.math{background:var(--math)}.led-category{background:var(--led)}.diagram{background:#f7f8f3;border:1px solid #e5eadf;border-radius:10px;padding:18px 12px;min-height:130px;overflow-x:auto}.blocks{font-size:14px;color:white;min-width:245px;line-height:1.7}.block{padding:8px 12px;border-radius:6px;margin:3px 0;position:relative;box-shadow:inset 0 -2px #0002;font-weight:600}.block:not(.hat):before{content:'';position:absolute;left:16px;top:-3px;width:17px;height:5px;background:inherit;border-radius:0 0 3px 3px}.hat{border-radius:18px 18px 6px 6px}.nest{border-left:10px solid var(--basic);padding:4px 0 4px 10px;background:#fff8;margin-top:-5px}.nest.loop-border{border-color:var(--loop)}.nest.logic-border{border-color:var(--logic)}.slot{background:#fff;color:#333;border-radius:12px;display:inline-block;min-width:23px;text-align:center;padding:0 6px}.new{outline:3px solid #f2c745;outline-offset:3px}.block-caption{font-size:11px;color:var(--muted);margin:8px 0 0}.official-blocks{display:block;max-width:none;height:auto;min-width:220px;width:100%;object-fit:contain;object-position:left top}.diagram.has-official .blocks{display:none}.official-state{font-size:11px;color:var(--muted);margin:7px 0}.check{display:flex;gap:9px;font-size:13px;margin:20px 0 4px;align-items:flex-start}.check input{margin-top:5px;accent-color:var(--green)}.hint{font-size:12px;color:var(--muted);margin:12px 0 0}.step-nav{display:flex;gap:8px;padding:14px 18px;border-top:1px solid var(--line);align-items:center;background:#fff}.step-nav .primary{margin-left:auto}.editor{display:flex;flex-direction:column}.editor-toolbar{display:flex;justify-content:space-between;padding:10px 14px;align-items:center;gap:10px;border-bottom:1px solid var(--line);font-size:13px}.editor-toolbar small{font-size:11px;color:var(--muted)}iframe#makecode{width:100%;height:100%;border:0;flex:1;min-height:520px}.editor-note{font-size:11px;color:var(--muted);margin:0;padding:8px 14px;border-bottom:1px solid var(--line);background:#f7f9f3}.editor-note a{color:var(--green)}.prep-flow{display:flex;flex-direction:column;gap:10px}.prep-flow>div{display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--line);padding:12px;border-radius:8px}.prep-flow b{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;background:var(--lime);border-radius:50%}.prep-flow p{margin:0;font-size:14px}.extras{margin:12px 20px 25px;border:1px solid var(--line);border-radius:10px;background:white;padding:16px 20px}.extras summary{cursor:pointer;font-weight:600}.extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:20px}.extra-grid details{margin:10px 0}pre{background:#183a30;color:#e9f2d7;padding:15px;overflow:auto;border-radius:8px;font:12px/1.7 Consolas,monospace}.demo-board{width:230px;padding:18px;background:#243e35;color:white;border-radius:12px;margin:15px auto}.grid{display:grid;grid-template-columns:repeat(5,21px);gap:6px;justify-content:center;margin:12px 0}.pixel{width:21px;height:21px;background:#455048;border-radius:3px}.pixel.on{background:#ff7b62;box-shadow:0 0 6px #ff7b6250}.leds25{display:grid;grid-template-columns:repeat(5,17px);gap:5px;margin:10px auto;width:max-content}.leds25 span{width:17px;height:17px;background:#fff8;border:1px solid #fff;border-radius:2px}.mini-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.sound-control{display:flex;align-items:center;gap:10px;font-size:13px;margin:12px 0}.sound-control input{width:100%;accent-color:var(--green)}.trace{padding-left:20px;font-size:12px}.status{font-size:12px;color:var(--green);min-height:20px}.big-arrow{font-size:38px;color:var(--green);text-align:center;line-height:1.3}.point-row{display:flex;align-items:center;justify-content:center;gap:15px;padding:15px 0}.point{display:grid;place-items:center;background:#fce2bb;border:2px solid #dc9442;border-radius:12px;width:86px;height:70px;color:#6a481f;font-weight:bold}.teacher-info{font-size:13px;color:var(--muted)}.teacher-info li{margin:7px 0}.compact .editor{display:none}.compact .workspace{grid-template-columns:minmax(300px,650px);justify-content:center;height:auto;min-height:0}.compact .guide-scroll{overflow:visible}.compact .diagram{max-height:none}.compact .topline{justify-content:center}.compact .guide{min-height:660px}footer{padding:0 24px 20px;color:var(--muted);font-size:11px;text-align:center}.renderer-frame{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;pointer-events:none}[hidden]{display:none!important}@media(max-width:1050px){.workspace{grid-template-columns:340px minmax(0,1fr);padding:0 12px 12px;gap:10px}.guide-scroll{padding:18px}header{padding:0 15px}.topline{padding:12px 16px}.topline p{max-width:320px}}@media(max-width:760px){header{height:auto;min-height:65px;flex-wrap:wrap;padding:12px 16px;gap:10px}header nav{flex-wrap:wrap}.topline{align-items:flex-start}.topline h1{font-size:20px}.topline>span{display:none}.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.guide-scroll{overflow:visible}.guide{min-height:600px}.editor{height:750px}.extra-grid{grid-template-columns:1fr}.button{font-size:12px}.extras{margin:12px}.compact .workspace{display:flex}.official-blocks{max-width:550px}.step-nav{position:sticky;bottom:0}.editor-toolbar{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.official-blocks{width:auto;max-width:100%;max-height:310px;margin:0 auto}.nest.input-border{border-color:var(--input)}
.check{padding:14px;background:#f0f5e4;border:2px solid #91b494;border-radius:9px;font-weight:600}.check input{width:19px;height:19px;flex-shrink:0}.step-dot:disabled{opacity:.4;cursor:not-allowed}.step-nav .primary:disabled{background:#e3e8df;color:#63725c;border-color:#d3ddcb;opacity:1;cursor:not-allowed}
.check-heading{display:block;font-size:12px;color:var(--green);margin-bottom:5px}
.guide>.check{margin:10px 16px;padding:10px 12px;flex-shrink:0;font-size:13px}.guide>.check .check-heading{margin-bottom:3px}.step-nav{flex-shrink:0}.official-blocks{max-height:270px}
.course-select{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.course-select select{font:inherit;padding:8px;border:1px solid var(--line);background:white;border-radius:7px;color:var(--ink)}
.clear-usage{border-color:#d1ada1;color:#8d3f29}.clear-usage:hover{background:#fff0e8}.progress-status{display:flex;flex-direction:column;align-items:flex-end;font-size:12px}.progress-status .status{min-height:0}
.prep-flow{color:var(--ink)}
