:root{font-family:"PingFang SC","Microsoft YaHei",sans-serif;color:#30344d;background:#eaf4fe;font-size:16px;--nav:#2d2d4d;--blue:#4075ff;--line:#dbe4f3;--muted:#77839d}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;border-radius:12px;padding:10px 14px;background:#f1f5ff;color:inherit;transition:background .15s,transform .15s}button:hover{background:#dee8ff}button:focus-visible,a:focus-visible{outline:3px solid #ffb746;outline-offset:3px}button:disabled{opacity:.5;cursor:default}header{height:72px;background:var(--nav);color:white;display:flex;align-items:center;gap:18px;padding:0 22px;position:relative;z-index:3}.brand{color:white;text-decoration:none;display:flex;align-items:center;font-size:21px;font-weight:800;gap:10px;letter-spacing:1px;white-space:nowrap}.brand small{display:block;font-size:10px;letter-spacing:4px;font-weight:400;opacity:.65;margin-top:1px}.brand-icon{border-radius:45% 55% 45% 40%;background:var(--blue);width:40px;height:40px;display:grid;place-items:center;font-size:30px;border-bottom:4px solid #66dbfa}header button{background:#3b3b5d;color:white;font-size:14px;white-space:nowrap}header button:hover{background:#4b4c71}nav{margin-left:auto;display:flex;gap:9px}.level-title{display:flex;gap:14px;align-items:center;margin-left:auto}.level-title span:first-child{font-size:12px;color:#bdc5e1}.level-title b{color:#ff7398;font-size:15px}main{display:grid;grid-template-columns:46% 54%;height:calc(100dvh - 72px);min-height:480px}.stage{position:relative;overflow:hidden;background:#badfec}#scene{position:absolute;inset:0}#scene canvas{width:100%;height:100%;display:block}.scores{position:absolute;left:6%;right:6%;top:0;z-index:2;padding:14px 10px 20px;display:flex;justify-content:space-around;gap:5px;background:linear-gradient(180deg,#3d4062ee,#3d4062dd);color:white;clip-path:polygon(0 0,100% 0,93% 100%,7% 100%);font-size:13px}.scores b{margin-left:5px}.mission{position:absolute;left:20px;right:20px;top:78px;display:flex;align-items:flex-start;gap:12px;background:#ffffffed;box-shadow:0 8px 30px #20668c18;border:1px solid #fff;border-radius:18px;padding:14px;z-index:2;max-height:130px;overflow:auto}.mission p{font-size:14px;line-height:1.75;margin:0;flex:1}.mission .avatar{color:white;background:#4788ff;padding:6px 11px;border-radius:12px;font-weight:bold}.mission button{padding:0 5px;background:none}.mission.collapsed p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-bottom{position:absolute;bottom:22px;left:22px;right:22px;display:flex;align-items:center;gap:9px;z-index:2}.stage-bottom button{box-shadow:0 3px 8px #17467322;font-size:13px;padding:8px 12px;background:#f4feffff}.stage-bottom .play{width:62px;height:62px;border-radius:22px;background:linear-gradient(140deg,#ffa23e,#ff803e);border:3px solid #ffe5a1;outline:2px solid white;color:white;font-size:25px;flex:none;box-shadow:0 5px 0 #d56e31,0 9px 15px #b6654440}.stage-bottom .play:hover{transform:translateY(-2px)}#runStatus{font-size:12px;color:#446781;margin-left:5px;flex:1}#cameraButton{margin-left:auto}.editor{background:#fafcff;position:relative;border-left:2px solid white;min-width:0}.editor-label{height:35px;display:flex;justify-content:space-between;padding:8px 17px;font-size:12px;color:#77839d;background:#f3f7ff;border-bottom:1px solid #e6eefa}#saveStatus{font-size:11px}#blockly{position:absolute;left:0;right:0;top:35px;bottom:0}.blocklySvg{background:#fbfdff!important}.blocklyToolboxDiv{background:#edf4ff!important;padding-top:12px!important;border-right:1px solid #dce6f7}.blocklyTreeLabel{font-family:inherit!important;font-size:14px!important}.blocklyTreeRow{height:36px!important;padding:8px 7px!important;border-radius:7px;margin:4px 6px!important}.blocklyFlyoutBackground{fill:#f0f5ff!important;fill-opacity:.96!important}dialog{border:0;border-radius:22px;padding:0;color:#30344d;box-shadow:0 30px 120px #1f274660;max-height:86dvh;width:min(980px,92vw)}dialog::backdrop{background:#1e284c80;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:20px 26px}.dialog-head h2{margin:0;font-size:23px}.dialog-head small{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.dialog-head button{font-size:24px;padding:1px 10px;background:none;color:var(--muted)}.catalog-body{display:grid;grid-template-columns:210px 1fr;min-height:460px;max-height:65dvh}#chapters{overflow:auto;padding:12px;background:#f5f8ff;border-right:1px solid var(--line)}#chapters button{display:block;width:100%;text-align:left;background:none;margin:2px 0;font-size:14px;line-height:1.8}#chapters button small{display:block;font-size:11px;color:var(--muted)}#chapters button.active{color:#2861e7;background:#e1eaff;font-weight:bold}#sections{overflow:auto;padding:18px 24px}.section-head{margin:16px 0 12px;font-size:16px}.level-grid{display:grid;grid-template-columns:repeat(5,minmax(62px,1fr));gap:10px}.level-card{background:white;border:1px solid #dae4f6;min-height:76px;text-align:left;padding:10px;border-radius:12px}.level-card b{display:block;font-size:20px;color:#346dec}.level-card small{display:block;font-size:11px;color:#6d7e9b;margin-top:5px}.level-card.done{background:#effbf7;border-color:#bce5d5}.level-card.pending{background:#f2f3f7;border-style:dashed}.primary{background:var(--blue);color:white}.primary:hover{background:#2b5eee}#solutionContent{padding:24px;line-height:1.8;max-height:65dvh;overflow:auto}#solutionContent p{font-size:14px}#solutionContent pre{background:#f4f7ff;padding:16px;overflow:auto;border-radius:12px;font-size:13px}.badge{display:inline-block;border-radius:8px;padding:4px 9px;color:#34775b;background:#e8f7ef;font-size:12px}.badge.pending{background:#fff3db;color:#92691f}#resultDialog{text-align:center;width:420px;padding:30px}.result-art{color:#ffb82b;font-size:76px}.result-buttons{display:flex;justify-content:center;gap:12px;margin-top:24px}#resultMessage{font-size:15px;line-height:1.8;color:#66728b}.empty{padding:40px 10px;color:var(--muted);line-height:1.9;font-size:14px}@media(max-width:1000px){header{padding:0 12px;gap:9px}.brand{font-size:18px}.brand small{font-size:9px;letter-spacing:2px}.level-title span:first-child{display:none}nav #helpButton{display:none}main{grid-template-columns:44% 56%}.mission{left:10px;right:10px;padding:10px}.mission p{font-size:12px}.stage-bottom{left:14px;right:14px;gap:5px}#runStatus{display:none}}@media(max-width:700px){header{height:62px}.brand{font-size:15px}.brand-icon{width:30px;height:30px;font-size:22px}header nav{display:none}.level-title{font-size:12px;padding:8px}main{height:calc(100dvh - 62px);grid-template-columns:1fr;grid-template-rows:43% 57%}.mission{top:55px;max-height:72px}.stage-bottom{bottom:10px}.stage-bottom .play{width:44px;height:44px;border-radius:15px;font-size:18px}.scores{font-size:12px;padding:10px}.editor{border-left:0;border-top:2px solid white}.catalog-body{grid-template-columns:140px 1fr}#sections{padding:12px}.level-grid{grid-template-columns:repeat(3,1fr)}#chapters button{font-size:12px;padding:7px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

[hidden]{display:none!important}.ai-dialog{width:min(1120px,94vw);max-height:94vh}.ai-body{padding:24px;overflow:auto;max-height:78vh}.ai-model-card{display:inline-block;border:1px solid #dce5f3;border-radius:16px;padding:24px;margin:10px;min-width:200px}.ai-toolbar{display:flex;gap:12px;align-items:center;margin:14px 0}.ai-toolbar select{padding:10px;border:1px solid #cad8ee;border-radius:8px}.ai-workarea{display:flex;gap:18px;align-items:flex-start}.ai-image-stage{position:relative;max-width:830px;line-height:0;flex:1;background:#e9edf5}.ai-image-stage img{width:100%;max-height:52vh;object-fit:contain;display:block}.ai-image-stage svg{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.ai-image-stage rect{fill:#56c39b33;stroke:#21ae7c;stroke-width:3;vector-effect:non-scaling-stroke}.ai-thumbs{display:flex;flex-direction:column;gap:10px}.ai-thumbs .active{background:#466dff;color:white}.ai-note{color:#697b96;font-size:13px}.ai-param{display:flex;flex-direction:column;gap:14px;margin:24px 0;max-width:680px}.ai-param input{accent-color:#7768db}.ai-log{height:240px;overflow:auto;background:#182339;color:#c6e3dc;padding:18px;border-radius:12px;font:12px/1.8 monospace}.ai-body progress{width:100%;accent-color:#6c76e6}.ai-body>button{margin:8px}.ai-body h2{color:#5072dd}@media(max-width:700px){.ai-workarea{display:block}.ai-thumbs{flex-direction:row;margin-top:12px}}

.ai-image-stage img{max-height:none;height:auto}

@media(max-width:700px){header{height:auto;min-height:94px;flex-wrap:wrap;gap:6px;padding:8px 10px}.brand small{display:none}header nav{display:flex;order:4;width:100%;margin:0;justify-content:flex-end;gap:6px}header nav button{font-size:12px;padding:5px 9px;border-radius:8px}main{height:calc(100dvh - 94px)}.level-title{margin-left:auto;max-width:48%;overflow:hidden}.level-title b{font-size:12px;overflow:hidden;text-overflow:ellipsis}#catalogButton{font-size:12px;padding:7px}.brand-icon{display:none}.ai-toolbar{flex-wrap:wrap}.ai-dialog .ai-body{padding:12px}.ai-model-card{min-width:0;width:100%;margin:8px 0}}
