:root{--bg:#fff7ec;--ink:#1f2a44;--sub:#64748b;--line:#eadfce;--card:#fff;--orange:#ff7a59;--orange-d:#e85d3c;--blue:#5b8def;--purple:#8b5cf6;--green:#22b07d;--yellow:#ffd166;--red:#ef4444;--radius:18px;--shadow:0 6px 0 #1f2a440f, 0 10px 30px #1f2a4414;color:var(--ink);font-family:HarmonyOS Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:radial-gradient(circle at 10% 0%, #ffe3cf 0, transparent 35%), radial-gradient(circle at 100% 100%, #dceeff 0, transparent 40%), var(--bg);height:100%;margin:0}body{flex-direction:column;display:flex;overflow:hidden}button{font:inherit;cursor:pointer}.hidden{display:none!important}.topbar{border-bottom:3px solid var(--line);background:#fff;align-items:center;gap:24px;padding:10px 20px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-logo{background:linear-gradient(135deg, #ffb38a, var(--orange));width:46px;height:46px;box-shadow:0 4px 0 var(--orange-d);border-radius:14px;place-items:center;font-size:28px;display:grid}.brand-name{font-size:18px;font-weight:800}.brand-sub{color:var(--sub);font-size:12px}.level-steps{counter-reset:s;gap:6px;margin:0 auto;padding:0;list-style:none;display:flex}.level-steps li{counter-increment:s;color:#94a3b8;background:#f1f5f9;border-radius:999px;align-items:center;gap:6px;padding:6px 14px 6px 8px;font-size:13px;font-weight:700;display:flex}.level-steps li:before{content:counter(s);background:#e2e8f0;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;display:grid}.level-steps li:not(.on):after{content:"🔒";font-size:11px}.level-steps li.on{color:var(--orange-d);background:#fff1e8;box-shadow:inset 0 0 0 2px #ffc8b0}.level-steps li.on:before{background:var(--orange);color:#fff}.top-right{align-items:center;gap:10px;display:flex}.ai-chip,.team-chip,.board-link{border:0;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;text-decoration:none}.ai-chip{color:#15803d;background:#dcfce7}.ai-chip.mock{color:#b45309;background:#fef3c7}.team-chip{color:#4338ca;background:#eef2ff}.board-link{background:var(--yellow);color:#7c4a03;box-shadow:0 3px #e0a92f}.layout{flex:1;grid-template-columns:minmax(420px,1fr) minmax(520px,1.25fr);gap:16px;min-height:0;padding:16px;display:grid}.panel{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:2px solid var(--line);flex-direction:column;min-height:0;display:flex;overflow:hidden}.tabs{border-bottom:2px solid var(--line);background:#fffaf3;gap:6px;padding:10px 10px 0;display:flex}.tab{color:var(--sub);background:0 0;border:0;border-radius:14px 14px 0 0;padding:10px 18px;font-size:15px;font-weight:800}.tab.on{color:var(--ink);box-shadow:0 -3px 0 var(--orange) inset;background:#fff}.tab-body{flex:1;min-height:0;position:relative;overflow:auto}.mission{flex-direction:column;gap:12px;padding:16px;display:flex}.mission-hero{border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,#ff9a76,#ff7a59);align-items:center;gap:14px;padding:16px;display:flex}.mission-hero h2{margin:0 0 4px;font-size:20px}.mission-hero p{opacity:.95;margin:0;line-height:1.6}.hero-emoji{filter:drop-shadow(0 4px #0000001f);font-size:46px}.card{border:2px solid var(--line);background:#fffdf9;border-radius:16px;padding:14px 16px;line-height:1.7;position:relative}.card h3{margin:0 0 6px;font-size:16px}.card p,.card ul{margin:4px 0}.card ul{padding-left:20px}.rule-no{background:var(--blue);color:#fff;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800;position:absolute;top:-10px;right:14px}.formula{text-align:center;color:#1d4ed8;background:#eef6ff;border:2px dashed #a8c8ff;border-radius:12px;margin:8px 0;padding:8px 12px;font-weight:800}.example{color:var(--sub)}.tag.ai{color:var(--purple);background:#ede9fe;border-radius:999px;padding:1px 8px;font-weight:700}table.price{border-collapse:separate;border-spacing:0 4px;width:100%;font-size:14px}table.price th{text-align:left;color:var(--sub);padding:0 8px;font-size:12px;font-weight:700}table.price td{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:6px 8px}table.price td:first-child{border-left:1px solid var(--line);border-radius:10px 0 0 10px}table.price td:last-child{border-right:1px solid var(--line);border-radius:0 10px 10px 0}.zone{border-radius:999px;padding:2px 10px;font-size:13px;font-weight:800}.z1{color:#15803d;background:#dcfce7}.z2{color:#1d4ed8;background:#dbeafe}.z3{color:#b45309;background:#fef3c7}.z4{color:#b91c1c;background:#fee2e2}.card.score{background:#fffbea;border-color:#fde68a}.card.tips{background:#f5f3ff;border-color:#ddd6fe}.roles{flex-wrap:wrap;gap:6px;display:flex}.roles span{background:#fff;border:1px solid #ddd6fe;border-radius:999px;padding:4px 10px;font-size:13px}#blockly{position:absolute;inset:0 0 46px}.blocks-hint{min-height:44px;color:var(--sub);border-top:2px solid var(--line);background:#fffaf3;padding:12px 14px;font-size:13px;line-height:1.5;position:absolute;bottom:0;left:0;right:0}.import-btn{float:right;border:1px solid var(--line);color:var(--sub);cursor:pointer;background:#fff;border-radius:8px;margin-left:8px;padding:2px 10px;font-size:12px}.blocklyToolboxDiv,.blocklyToolbox{padding-top:8px}.blocklyTreeRow,.blocklyToolboxCategory{border-radius:10px;margin:2px 6px!important}.blocklyTreeLabel,.blocklyToolboxCategoryLabel{font-size:14px!important;font-weight:700!important}.prompt-wrap{flex-direction:column;gap:12px;height:100%;padding:16px;display:flex}.prompt-head{color:#fff;background:linear-gradient(135deg,#a78bfa,#8b5cf6);border-radius:16px;align-items:center;gap:12px;padding:14px;display:flex}.prompt-head h3{margin:0 0 4px}.prompt-head p{margin:0;font-size:14px;line-height:1.6}.bot-avatar{font-size:40px}#prompt{resize:none;min-height:200px;font:inherit;background:#faf8ff;border:2px solid #ddd6fe;border-radius:16px;outline:none;flex:1;padding:14px;font-size:16px;line-height:1.7}#prompt:focus{border-color:var(--purple);background:#fff}.prompt-foot{color:var(--sub);justify-content:space-between;font-size:13px;display:flex}.try-ai{gap:8px;display:flex}.try-ai input,.modal input{border:2px solid var(--line);font:inherit;border-radius:12px;outline:none;flex:1;padding:10px 14px}.try-ai input:focus,.modal input:focus{border-color:var(--purple)}.try-result{min-height:28px;font-size:15px}.pill{border-radius:999px;padding:2px 10px;font-weight:800}.pill.ok{color:#15803d;background:#dcfce7}.pill.mid{color:#b45309;background:#fef3c7}.pill.bad{color:#b91c1c;background:#fee2e2}.thinking{color:var(--purple)}.right{gap:0}.scene{flex:1.35;min-height:260px;position:relative;overflow:hidden}.scene canvas{display:block}.scene-overlay{pointer-events:none;position:absolute;inset:0}.bubble,.float-text{white-space:nowrap;animation:.25s ease-out pop;position:absolute;top:0;left:0}.bubble{white-space:normal;background:#fff;border-radius:16px;max-width:360px;margin-top:-10px;padding:8px 14px;font-size:14px;font-weight:700;box-shadow:0 4px #00000014,0 8px 20px #0000001f}.bubble:after{content:"";border:8px solid #0000;border-top-color:#fff;border-bottom:0;margin-left:-8px;position:absolute;bottom:-8px;left:50%}.bubble.ai{color:#5b21b6;background:#f5f3ff}.bubble.ai:after{border-top-color:#f5f3ff}.bubble.warn{color:#c2410c;background:#fff7ed}.bubble.warn:after{border-top-color:#fff7ed}.float-text{text-shadow:0 2px #fff,0 0 12px #fff;font-size:22px;font-weight:900}.float-text.coin{color:#d97706}.float-text.reject{color:var(--red)}.leaving{opacity:0;transition:opacity .25s}@keyframes pop{0%{opacity:0;scale:.6}}.controls{border-top:2px solid var(--line);border-bottom:2px solid var(--line);background:#fffaf3;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.btn{border:0;border-radius:14px;align-items:center;gap:6px;padding:10px 18px;font-size:15px;font-weight:800;text-decoration:none;transition:transform 80ms;display:inline-flex}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:none!important}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 4px #3c6bd0}.btn.warn{background:var(--orange);color:#fff;box-shadow:0 4px 0 var(--orange-d)}.btn.ghost{color:var(--ink);box-shadow:0 0 0 2px var(--line) inset, 0 3px 0 var(--line);background:#fff}.btn.big{padding:14px 40px;font-size:18px}.speed{color:var(--sub);align-items:center;gap:4px;margin-left:auto;font-size:13px;font-weight:700;display:flex}.speed button{color:var(--sub);background:#f1f5f9;border:0;border-radius:8px;padding:4px 10px;font-weight:800}.speed button.on{background:var(--ink);color:#fff}.results{flex-direction:column;flex:1;min-height:150px;display:flex}.results-head{justify-content:space-between;align-items:center;padding:8px 14px;font-weight:800;display:flex}.score-box b{color:var(--orange-d);font-size:22px}.log{flex-direction:column;flex:1;gap:4px;padding:0 10px 10px;display:flex;overflow:auto}.empty{color:var(--sub);text-align:center;padding:20px}.row{background:#f8fafc;border-radius:12px;grid-template-columns:44px 1fr auto 40px;align-items:center;gap:10px;padding:6px 10px;font-size:14px;display:grid}.row.running{background:#eef2ff;box-shadow:inset 0 0 0 2px #c7d2fe}.row.good{background:#f0fdf4}.row.bad{background:#fff1f2}.rid{color:var(--sub);font-weight:800}.ritem small{color:var(--sub);font-size:12px;display:block}.rdo{font-weight:700}.pts{color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:900;display:inline-grid}.pts.full{background:var(--green)}.pts.part{background:#f59e0b}.pts.zero{background:#cbd5e1}.why{color:#92400e;background:#fffbea;border-radius:10px;margin:-2px 0 4px 54px;padding:6px 10px;font-size:13px}.note{color:var(--sub);padding:2px 10px;font-size:13px}.note.warn{color:#c2410c}.modal{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#1f2a4473;place-items:center;display:grid;position:fixed;inset:0}.modal-card{text-align:center;background:#fff;border-radius:24px;flex-direction:column;gap:12px;width:min(440px,92vw);padding:28px;animation:.25s ease-out pop;display:flex;box-shadow:0 8px #00000014,0 30px 60px #0003}.modal-card h2{margin:0}.modal-card p{color:var(--sub);margin:0;line-height:1.7}.modal-emoji{font-size:56px}.modal input{text-align:center;font-size:18px}.emoji-pick{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.emoji-pick button{border:2px solid var(--line);background:#fff;border-radius:12px;width:42px;height:42px;font-size:22px}.emoji-pick button.on{border-color:var(--orange);background:#fff1e8}.big-score{color:var(--orange-d);font-size:64px;font-weight:900;line-height:1}.big-score small{color:var(--sub);font-size:22px}.modal-actions{justify-content:center;gap:10px;display:flex}.shake{animation:.35s shake;border-color:var(--red)!important}@keyframes shake{25%{translate:-6px}75%{translate:6px}}@media (width<=1100px){body{overflow:auto}.layout{grid-template-columns:1fr}.panel.left{height:640px}.panel.right{height:760px}.level-steps{display:none}}
