:root{font-family:"PingFang SC","Microsoft YaHei",sans-serif;color:#171a21;background:#f3f6f9;font-size:13px;--purple:#5830ff;--border:#e5e9f0}*{box-sizing:border-box}body{margin:0;padding:34px;min-width:360px}header{display:flex;align-items:center;justify-content:space-between;margin:4px 0 27px;gap:20px}h1{font-size:23px;margin:0 0 5px;letter-spacing:-.8px}p{line-height:1.65}header p{color:#666c77;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #dce0e8;background:white;border-radius:6px;padding:8px 12px;color:#555d6b;transition:.15s}button:hover{border-color:#a799ff;background:#f5f2ff}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #9d85ff;outline-offset:2px}.primary{background:var(--purple);color:white;border-color:var(--purple);box-shadow:0 3px 7px #5632ed20;padding:10px 16px;font-weight:600}.primary:hover{background:#4620e7;color:white}main{display:grid;grid-template-columns:280px minmax(400px,1fr) 258px;gap:18px;align-items:start}.panel{background:#ffffffee;border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 2px #21334d03}h2{font-size:14px;margin:0;padding:17px 18px;border-bottom:1px solid #f0f2f5;display:flex;align-items:center;gap:8px}i{font-style:normal;color:var(--purple);font-size:20px;font-weight:400}.parameters{padding-bottom:18px}.parameters section{padding:18px;border-bottom:1px solid #f0f2f5}h3{font-size:14px;margin:0 0 15px;display:flex;align-items:center;justify-content:space-between}small{background:#f1edff;color:#5b35e9;font-size:11px;padding:4px 7px;border-radius:5px;font-weight:600}.amber{background:#fff8e7;color:#a47115;border:1px solid #f5d995}.green{background:#e9f8f0;color:#148657}label{display:block;font-size:12px;font-weight:500;margin-bottom:8px}.dimensions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 15px}.dimensions label{color:#8b909a;font-size:11px;margin-bottom:5px}input,select,textarea{width:100%;border:1px solid #d9dfe8;border-radius:6px;background:white;color:#232732;padding:8px 10px;box-shadow:0 1px 2px #24324a04}input{min-width:0}select{margin-bottom:10px}textarea{resize:vertical;min-height:62px;font-size:12px;line-height:1.6}.note{padding:11px 12px;border:1px solid #f0f1f6;border-radius:7px;background:#f8f9fc;font-size:11px;line-height:1.7;color:#707785}.purple{background:#f5f2ff;color:#5b40c7;border-color:#f3efff}.note p{margin:5px 0 0}.parameters>.note{margin:17px 18px 10px}.muted{font-size:11px;color:#858c97}.wide{display:block;width:calc(100% - 36px);margin:auto}.stage{overflow:hidden}.stage-head{display:flex;align-items:center;justify-content:space-between;padding-right:16px;min-height:53px}.stage-head h2{border:0;padding:13px 16px}.stage-head nav{display:flex;background:#f1f3f6;border-radius:6px;padding:3px}.stage-head nav button{border:0;background:none;padding:4px 10px;font-size:12px}.stage-head nav button.active{background:white;color:#292f38;box-shadow:0 1px 4px #17202f16}.viewport{height:533px;position:relative;background:radial-gradient(ellipse at 50% 45%,#fafcff 0,#eef3fa 65%,#edf2f8 100%);overflow:hidden}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.hint{position:absolute;left:14px;top:14px;background:#ffffffdc;border:1px solid #e2e6ee;border-radius:7px;padding:9px 12px;font-size:10px;color:#737b88;line-height:1.9;pointer-events:none}.view-label{position:absolute;left:18px;bottom:16px;color:#a2acba;font-size:10px}.bubble{position:absolute;right:10%;bottom:33%;border:0;border-radius:50%;background:#5d2fff;color:white;font-size:24px;width:53px;height:53px;box-shadow:0 8px 22px #6233ff35}.bubble em{position:absolute;right:0;top:-4px;background:#ff4359;color:white;border:2px solid white;font-size:10px;border-radius:50%;width:18px;height:18px;font-style:normal}.axis{position:absolute;right:25px;bottom:29px;width:68px;height:68px;pointer-events:none}.axis span,.axis b,.axis strong{position:absolute;border:1px solid white;border-radius:50%;width:18px;height:18px;color:white;font-size:10px;text-align:center;line-height:16px;z-index:1}.axis span{left:25px;top:0;background:#13ad48}.axis b{left:4px;top:45px;background:#1463ff}.axis strong{right:0;top:45px;background:#ff4254}#empty{display:none;position:absolute;top:50%;width:100%;text-align:center;color:#969fab;pointer-events:none}.toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;min-height:58px;gap:8px}.toolbar button{padding:7px 11px;font-size:12px;margin-left:5px}.toolbar b{font-size:15px}.danger{color:#ed6770}.tips{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.tips>div{display:flex;gap:9px;background:#ffffffd9;border:1px solid var(--border);border-radius:10px;padding:13px 11px;color:#6f53f2;font-size:16px}.tips span{color:#77808d;font-size:11px;line-height:1.6}.tips>div:nth-child(2){color:#20ad9c}.tips>div:nth-child(3){color:#e9a32b}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px 18px}.stats>div{background:#f9fafc;border:1px solid #e7ebf1;border-radius:7px;padding:12px 10px;min-height:100px}.stats label{font-size:11px;color:#8a909c;margin-bottom:8px}.stats b{font-size:20px;white-space:nowrap}.stats p{color:#8c939f;font-size:10px;margin:5px 0 0}dl{margin:10px 18px 18px;padding-top:12px;border-top:1px solid #eff1f4}dl>div{display:flex;justify-content:space-between;gap:9px;margin:11px 0;font-size:11px;line-height:1.5}dt{color:#848b97;flex-shrink:0}dd{text-align:right;margin:0;color:#333945}.check{margin-top:15px}.check .note{margin:15px}.success{color:#168a54;background:#eefbf4;border-color:#ddf4e7}.error{color:#ce485b;background:#fff1f3;border-color:#fbd5dc}.disclaimer{padding:17px 15px;color:#9a9faa;font-size:11px;line-height:1.9;margin-top:15px}#toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,15px);padding:12px 22px;border-radius:9px;background:#262236;color:white;opacity:0;transition:.2s;pointer-events:none;z-index:9}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid var(--border);border-radius:15px;max-width:420px;padding:22px;color:#555f70;box-shadow:0 20px 80px #202f4530}dialog::backdrop{background:#28364a40}dialog h2{padding:0 0 13px;color:#242a34}dialog button{margin-top:12px}@media(min-width:1600px){.viewport{height:610px}}@media(max-width:1200px){body{padding:22px}main{grid-template-columns:245px minmax(350px,1fr)}.results{grid-column:1/-1;display:grid;grid-template-columns:2fr 1fr;gap:15px}.results>.panel:first-child{grid-row:span 2}.stats{grid-template-columns:repeat(4,1fr)}.check,.disclaimer{margin-top:0}.tips{gap:7px}.toolbar button{padding:7px}.stage-head h2{font-size:12px}}@media(max-width:760px){body{padding:16px}header{align-items:flex-start}header p{font-size:11px;max-width:240px}header .primary{white-space:nowrap;font-size:11px}main{display:flex;flex-direction:column}.workspace{order:0;width:100%}.parameters{order:1;width:100%}.results{order:2;display:block;width:100%}.viewport{height:420px}.tips{grid-template-columns:1fr}.tips>div{padding:9px 12px}.parameters section{padding:15px 18px}.toolbar{flex-wrap:wrap}.check,.disclaimer{margin-top:15px}.stats{grid-template-columns:1fr 1fr}.stage-head small{display:none}}
.axis{width:100px;height:100px;right:15px;bottom:16px;pointer-events:auto}.axis svg{display:block;width:100%;height:100%;overflow:visible}.axis-end{cursor:pointer;outline:none}.axis-end line{pointer-events:none}.axis-end text{pointer-events:none;font-family:Arial,sans-serif;font-weight:500}.axis-end:hover circle,.axis-end:focus-visible circle{stroke:#5630ff;stroke-width:2.5}

.tool-back{display:inline-block;color:#747b88;font-size:12px;text-decoration:none;margin-bottom:12px}.tool-back:hover{color:#5830ff}
