*{box-sizing:border-box}
:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#243946;background:#edf2f5}
body{margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #dc8a4d;outline-offset:2px}
button{border:1px solid #dce5eb;border-radius:9px;background:#fff;color:#435c6b;padding:9px 12px;font-size:12px}
button:hover{border-color:#b6c9d5}button:disabled{opacity:.45;cursor:not-allowed}
.topbar{height:70px;background:#fff;border-bottom:1px solid #e3eaf0;display:flex;align-items:center;gap:20px;padding:0 27px}
.brand{display:flex;align-items:center;gap:8px;color:#233845;font-weight:700;text-decoration:none;white-space:nowrap}.divider{width:1px;height:25px;background:#e0e7ec}.title{display:flex;flex-direction:column;gap:2px}.title strong{font-size:16px}.title small{font-size:10px;color:#8c9ba5}.example-link{margin-left:auto;color:#8b694e;font-size:12px;text-decoration:none}
.workspace{height:calc(100dvh - 70px);min-height:640px;display:grid;grid-template-columns:280px minmax(0,1fr) 308px}
.library,.inspector{background:#fff;overflow:auto;padding:24px 20px}.library{border-right:1px solid #e0e8ee}.inspector{border-left:1px solid #e0e8ee}
.panel-title{display:flex;gap:11px;align-items:flex-start;margin-bottom:21px}.panel-title>span{font-size:10px;letter-spacing:1px;color:#bf8051;background:#fff2e8;border-radius:7px;padding:7px}.panel-title strong{font-size:17px}.panel-title p{margin:5px 0 0;color:#9aa8b1;font-size:10px}
.catalog{display:grid;gap:8px}.catalog button{width:100%;display:flex;align-items:center;gap:11px;text-align:left;padding:11px;background:#f7f9fa;border-color:#edf1f4}.catalog button:hover{background:#fff5eb;border-color:#f0d0b4}.catalog .icon{width:36px;height:36px;display:grid;place-items:center;color:#b97849;border-radius:9px;background:#fff;font-size:23px}.catalog button>span:nth-child(2){flex:1}.catalog strong,.catalog small{display:block}.catalog strong{font-size:13px;color:#334c5a}.catalog small{font-size:10px;color:#92a0aa;margin-top:4px}.catalog b{font-size:20px;font-weight:400;color:#b87b50}
.list-heading{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid #edf1f4;margin-top:25px;padding-top:20px}.list-heading strong{font-size:13px}.list-heading strong span{color:#b47848}.list-heading small{font-size:10px;color:#9ba9b2}.part-list{display:grid;gap:6px;margin:12px 0 20px;min-height:55px}.part-list>p{font-size:11px;color:#a2aeb5;margin:9px 0}.part-item{display:flex;align-items:center;gap:8px;text-align:left;width:100%;padding:9px 10px}.part-item.selected{background:#fff0e4;border-color:#e6b98f;color:#a86939}.part-item .swatch{width:9px;height:9px;border-radius:50%;background:#8198a7}.part-item.selected .swatch{background:#d88c51}.part-item span:nth-child(2){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-actions{border-top:1px solid #edf1f4;padding-top:17px}.file-actions label{font-size:11px;color:#83929c}.file-actions input{width:100%;border:1px solid #dce5eb;border-radius:9px;padding:10px;margin-top:7px;color:#2b4553}.file-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:9px 0}.file-actions>button{width:100%}.file-actions p{font-size:10px;line-height:1.7;color:#a0acb4}
.viewer{position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#fff 10%,#e8eff3 100%)}#scene{position:absolute;inset:0}#scene canvas{display:block;touch-action:none}
.toolbar{position:absolute;top:18px;left:18px;right:18px;z-index:2;display:flex;gap:8px;flex-wrap:wrap;pointer-events:none}.tool-group{display:flex;align-items:center;gap:4px;background:#ffffffed;border:1px solid #e0e8ed;border-radius:12px;padding:5px;box-shadow:0 4px 20px #2944580d;pointer-events:auto}.tool-group>span{padding:0 7px;color:#8496a2;font-size:10px;white-space:nowrap}.tool-group button{border:0;background:transparent;padding:7px 8px;font-size:10px;white-space:nowrap}.tool-group button.active{background:#263e4d;color:#fff}.snap{font-size:10px;color:#5d7381;padding:0 6px;white-space:nowrap}.snap input{accent-color:#d48a50;vertical-align:middle}.history{margin-left:auto}
#empty-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;color:#8da0ac}#empty-hint span{display:block;font-size:54px;color:#cad7df}#empty-hint strong{display:block;color:#708796;font-size:16px;margin:8px 0}#empty-hint p{font-size:11px}
.viewbar{position:absolute;bottom:51px;left:50%;transform:translateX(-50%);display:flex;gap:3px;padding:5px;background:#ffffffeb;border:1px solid #e7edf1;border-radius:12px;white-space:nowrap;box-shadow:0 4px 20px #2944580d}.viewbar button{border:0;background:transparent;font-size:11px;padding:8px 12px}.viewbar button.active{background:#263e4d;color:white}.viewer-foot{position:absolute;bottom:17px;left:20px;right:20px;display:flex;justify-content:space-between;color:#8ea0ab;font-size:10px;pointer-events:none}
.no-selection{padding:30px 10px;text-align:center;color:#9aa9b3;font-size:12px;background:#f7f9fa;border-radius:13px}.properties h2{font-size:16px;margin:0 0 6px}.properties .type{font-size:10px;color:#a0adb5;margin:0 0 17px}.properties .section{border-top:1px solid #edf1f4;padding-top:15px;margin-top:16px}.properties .section h3{font-size:12px;color:#5c7381;margin:0 0 12px}.properties label{font-size:11px;color:#8294a0}.properties input{width:100%;margin-top:5px;padding:8px 9px;border:1px solid #dbe4ea;border-radius:8px;color:#273f4d;background:#fff;font-size:12px}.property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.property-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.property-grid label{min-width:0}.quick-turn{display:flex;gap:6px;margin-top:9px}.quick-turn button{flex:1;font-size:10px;padding:7px 4px}.object-actions{display:flex;gap:7px;margin-top:18px}.object-actions button{flex:1}.object-actions .danger{color:#ae6049;border-color:#eecfc3}
.export-panel{border-top:1px solid #edf1f4;margin-top:27px;padding-top:19px}.export-panel strong{font-size:13px}.export-panel p,.note{font-size:10px;line-height:1.7;color:#98a6af}.export-panel button{display:block;width:100%;margin-top:8px}.primary{background:#243d4c;color:#fff;border-color:#243d4c}.primary:hover{background:#314e60}.note{margin-top:19px}
#toast{position:fixed;z-index:10;bottom:24px;left:50%;transform:translateX(-50%);background:#263e4d;color:white;border-radius:10px;padding:11px 16px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s}#toast.visible{opacity:1}
@media(max-width:1200px){.workspace{grid-template-columns:235px minmax(0,1fr) 270px}.library,.inspector{padding:18px 14px}.tool-group>span{display:none}.toolbar{left:10px;right:10px;top:10px}}
@media(max-width:850px){.topbar{height:60px;padding:0 15px;gap:10px}.title strong{font-size:13px}.title small,.divider{display:none}.example-link{font-size:10px}.workspace{height:auto;min-height:0;display:flex;flex-direction:column}.viewer{order:0;height:58dvh;min-height:420px}.library{order:1;border:0;border-top:1px solid #e0e8ee;overflow:visible}.inspector{order:2;border:0;border-top:1px solid #e0e8ee;overflow:visible}.catalog{grid-template-columns:1fr 1fr}.toolbar{gap:4px}.tool-group{padding:3px}.tool-group button{font-size:9px;padding:6px 5px}.snap{font-size:9px}.history{margin-left:0}.viewbar{bottom:38px}.viewbar button{padding:7px 8px;font-size:10px}.viewer-foot{bottom:10px;font-size:9px}}
@media(max-width:480px){.brand{font-size:11px}.brand img{width:22px}.example-link{max-width:93px;text-align:right}.catalog button{padding:8px;gap:6px}.catalog .icon{width:27px;height:27px;font-size:17px}.catalog small{font-size:9px}.toolbar{right:8px;left:8px}.tool-group:nth-child(2){order:3}.history{margin-left:auto}.viewer{min-height:460px}}
