:root{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#213047;background:#eef1f3;font-synthesis:none;--accent:#e67836;--line:#e1e6eb;--muted:#8a949f;--shadow:0 3px 16px #21304709}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;font-size:12px;color:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:9px 13px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}button:hover{background:#f5f7f8;border-color:#bdc7d1}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #e6783690;outline-offset:2px}input,select{min-width:0;border:1px solid #dce2e8;border-radius:5px;background:#fff;padding:8px 10px}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button{opacity:.3}input[type=range]{accent-color:var(--accent)}fieldset{margin:0;padding:0;border:0;min-width:0}.app{height:100dvh;min-height:580px;display:flex;flex-direction:column;overflow:hidden}.header{height:68px;flex-shrink:0;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;border-bottom:1px solid var(--line);z-index:10}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand b{font-size:23px;letter-spacing:-1px;font-weight:750}.brand-mark{color:var(--accent);display:flex}.brand-sub{border-left:1px solid var(--line);margin-left:8px;padding-left:16px;font-size:13px;font-weight:550}.project-name{display:flex;align-items:center;gap:9px;max-width:360px;flex:1}.project-name input{border:0;background:#f8f9fa;flex:1;min-width:90px;font-size:13px;padding:10px}.project-dot{height:6px;width:6px;background:#91a298;border-radius:100%}.header nav{display:flex;align-items:center;gap:8px}.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.primary:hover{background:#d86b29;border-color:#d86b29}.icon-btn{padding:7px;border-color:transparent;background:transparent}.divider{height:20px;border-left:1px solid var(--line);margin:0 6px}.workspace{display:grid;grid-template-columns:218px minmax(0,1fr) 266px;flex:1;min-height:0;gap:0}.panel{background:#fff;min-height:0;z-index:4}.panel-heading{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);font-size:13px;flex-shrink:0}.panel-heading small{font-size:9px;color:var(--muted);letter-spacing:1px}.library{border-right:1px solid var(--line);display:flex;flex-direction:column}.tabs{display:flex;margin:14px 14px 0;background:#f1f3f5;padding:3px;border-radius:6px}.tabs button{border:0;background:transparent;flex:1;font-size:11px;padding:7px 4px;border-radius:4px;color:#7d8995}.tabs button.active{background:#fff;color:#213047;box-shadow:0 1px 4px #16233912}.search{display:flex;align-items:center;border:1px solid var(--line);border-radius:5px;margin:14px;color:#9aa4ae;padding:0 9px}.search input{border:0;width:100%;padding:9px 6px;font-size:11px;outline:none}.library-list{overflow-y:auto;padding:0 8px;flex:1}.equipment{display:flex;text-align:left;width:100%;border:0;padding:14px 8px;gap:10px;margin-bottom:3px;background:transparent;border-radius:6px}.equipment:hover{background:#f1f4f6}.equipment-icon{height:36px;min-width:36px;display:flex;align-items:center;justify-content:center;color:#4d6476;background:#f3f5f7;border-radius:6px}.equipment span:nth-child(2){flex:1;min-width:0}.equipment b{display:block;font-size:12px;font-weight:500;white-space:nowrap}.equipment small{display:block;font-size:8px;color:#98a2ad;margin-top:5px;letter-spacing:.1px}.equipment .add-icon{opacity:0}.equipment:hover .add-icon{opacity:1;color:var(--accent)}.compact{padding:10px 12px}.library-tip{display:flex;gap:9px;padding:18px 14px;background:#fbfcfd;border-top:1px solid var(--line);color:#657587;align-items:center}.library-tip p{font-size:10px;line-height:1.8;margin:0}.library-tip p span{font-size:9px;color:#a0a8b0}.canvas-area{position:relative;min-width:0;overflow:hidden;background:#eff1f3}.scene{position:absolute;inset:0 0 100px}.scene canvas{display:block;touch-action:none;outline:none}.canvas-top{position:absolute;top:18px;left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none;z-index:2}.mode-switch,.view-switch{display:flex;background:#fff;border:1px solid #dde3e9;border-radius:7px;box-shadow:var(--shadow);pointer-events:auto;overflow:hidden}.mode-switch button,.view-switch button{border:0;background:transparent;border-radius:0;font-size:11px;padding:11px 14px;color:#6c7887;position:relative}.mode-switch button.active,.view-switch button.active{color:var(--accent);background:#fffaf6}.mode-switch button.active:after{content:"";height:2px;background:var(--accent);bottom:0;left:12px;right:12px;position:absolute}.scene-summary{position:absolute;top:79px;left:23px;display:flex;align-items:center;gap:14px;color:#536478;z-index:2;background:#ffffffde;border:1px solid #e3e7eb;border-radius:6px;padding:10px 14px;box-shadow:var(--shadow)}.scene-summary>div,.scene-summary>button{display:flex;align-items:baseline;gap:5px}.scene-summary b{font-size:15px;font-weight:600;color:#314357}.scene-summary span{font-size:10px;display:flex;gap:4px;align-items:center}.scene-summary i{height:16px;border-left:1px solid #dfe4e8}.scene-summary button{padding:0;background:none;border:0}.canvas-tools{position:absolute;right:20px;bottom:178px;display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:7px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.canvas-tools button{padding:10px;border:0;border-radius:0;color:#607187}.canvas-tools button+button{border-top:1px solid #eff2f4}.canvas-help{position:absolute;bottom:147px;left:0;right:0;text-align:center;font-size:10px;color:#83909c;pointer-events:none}.axis{position:absolute;left:33px;bottom:180px;width:45px;height:43px;font-size:10px}.axis i{position:absolute;left:20px;top:15px;height:24px;border-left:1px solid #8996a3;transform:rotate(-30deg)}.axis-x{position:absolute;right:0;bottom:0;color:#cd7868}.axis-y{position:absolute;left:0;bottom:3px;color:#659989}.axis-z{position:absolute;left:19px;top:0;color:#668eb0}.playback{position:absolute;bottom:14px;left:18px;right:18px;background:#fff;border:1px solid #e0e5ea;border-radius:9px;padding:14px 19px 12px;box-shadow:0 3px 14px #29405705}.play-heading{display:flex;align-items:center;gap:12px;margin-bottom:13px}.play-heading strong{font-size:12px;white-space:nowrap}.play-heading strong span{font-size:8px;color:#a9b0b8;letter-spacing:1.2px;margin-left:8px;font-weight:400}.targets{display:flex;align-items:center;gap:3px;margin-left:auto}.targets select{font-size:9px;border:0;background:#f4f6f8;padding:4px;max-width:89px}.sim-note{font-size:8px;color:#a2a9b0;white-space:nowrap}.play-controls{display:flex;align-items:center;gap:10px}.play-button{height:42px;width:42px;padding:0;color:#fff;background:var(--accent);border:0;border-radius:50%;flex-shrink:0}.play-button:hover{background:#d56b2b}.stop-button{width:28px;height:28px;padding:0;border-radius:50%;color:#99a2ae;margin-right:8px;flex-shrink:0}.timeline{flex:1;min-width:0}.stage-labels{display:flex;justify-content:space-between}.stage-labels button{font-size:10px;background:none;border:0;padding:0 0 5px;border-radius:0;color:#7b8796}.stage-labels button.active{color:var(--accent);font-weight:600}.timeline input{height:4px;padding:0;width:100%;margin:6px 0;display:block;appearance:none;border:0;background:linear-gradient(to right,var(--accent) var(--progress),#e2e7eb var(--progress));cursor:pointer}.timeline input::-webkit-slider-thumb{appearance:none;background:var(--accent);width:9px;height:9px;border-radius:50%}.stage-description{display:flex;justify-content:space-between;margin-top:9px;color:#9da6af;font-size:8px;gap:8px}.stage-description small{font-size:8px;white-space:nowrap}.play-controls>select{font-size:11px;margin-left:9px;padding:7px}.inspector{border-left:1px solid var(--line);display:flex;flex-direction:column}.selected-device{display:flex;align-items:center;gap:13px;padding:19px 20px;color:var(--accent);border-bottom:1px solid var(--line)}.selected-device h2{font-size:18px;font-weight:550;margin:0 0 4px}.selected-device span{font-size:10px;color:#8b97a3}.inspector fieldset{overflow:auto;flex:1}.inspector section{padding:16px 18px;border-bottom:1px solid var(--line)}h4{display:flex;justify-content:space-between;font-size:11px;margin:0 0 13px;font-weight:600}h4 small{font-size:9px;font-weight:400;color:#a2abb4}.text-field{display:flex;flex-direction:column;gap:7px;font-size:10px;color:#7b8796;margin-bottom:11px}.text-field:last-child{margin-bottom:0}.text-field input{width:100%;font-size:11px;color:#324459;padding:8px 10px}.field{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:9px 0;font-size:10px;color:#647589}.field>div{display:flex;align-items:center;border:1px solid #dce3e9;border-radius:5px;max-width:120px;min-width:0}.field input{border:0;width:100%;background:none;text-align:right;padding:7px 5px;font-size:11px}.field small{padding:0 8px;color:#98a1ac;font-size:10px;min-width:24px}.position-fields{display:flex;gap:12px}.position-fields .field{flex:1;min-width:0}.position-fields .field>div{max-width:85px}.wide{width:100%;font-size:10px;padding:7px;margin-top:5px}.subtle{background:#f8f9fa;border-color:#e9edf0;color:#6c7e8e}.micro{font-size:9px;line-height:1.7;color:#9aa4ae;margin:9px 0 0}.inspector-actions{padding:14px;display:flex;gap:8px}.inspector-actions button{font-size:10px;padding:9px 8px;flex:1}.danger{color:#cf766b;border-color:#ecd2cf}.empty{text-align:center;color:#a5b0ba;padding:90px 16px}.empty h3{font-size:14px;color:#657587;font-weight:500}.empty p{font-size:11px;line-height:1.9}.status{display:flex;align-items:center;height:34px;flex-shrink:0;border-top:1px solid var(--line);background:#fff;font-size:9px;padding:0 17px;gap:20px;color:#8b97a2;z-index:6}.status>span{display:flex;align-items:center;gap:6px;white-space:nowrap}.status button{font-size:9px;padding:3px 0;border:0;background:transparent}.status-center{margin:auto}.status .check-status{color:#659982}.status .warning{color:#b57c36}.saved i{height:5px;width:5px;background:#75a28c;border-radius:50%}.floor-popover,.issues-popover{position:absolute;width:280px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 50px #263a5126;z-index:8;padding:0 15px 15px;left:23px;top:137px}.floor-popover .panel-heading,.issues-popover .panel-heading{padding:0;height:44px;margin-bottom:13px}.floor-popover .field>div{max-width:150px}.issues-popover{top:auto;bottom:145px;width:340px;max-height:400px;overflow:auto}.issues-popover p{font-size:11px;display:flex;gap:6px;align-items:flex-start;color:#9c723c}.issues-popover p svg{flex-shrink:0}.issues-popover small{font-size:10px;color:#9da6af;line-height:1.7}.route-error{line-height:1.7}.presentation .workspace{grid-template-columns:minmax(0,1fr)}.presentation .library,.presentation .inspector{display:none}.presentation .scene-summary{top:80px;right:25px;left:auto}.presentation-title{position:absolute;left:35px;top:104px;pointer-events:none}.presentation-title small{font-size:10px;letter-spacing:1px;color:#80909f}.presentation-title h1{font-size:27px;letter-spacing:-1px;font-weight:550;margin:13px 0}.presentation-title p{font-size:12px;color:#86939f}.presentation-title button{pointer-events:auto;margin-top:10px;background:#ffffffb0;font-size:11px}.presentation .playback{max-width:950px;margin:auto}.modal-backdrop{position:fixed;inset:0;background:#18253666;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:#fff;max-width:680px;width:100%;border-radius:12px;padding:27px;max-height:94dvh;overflow:auto;box-shadow:0 20px 80px #192a4340}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start}.modal-heading small{font-size:9px;letter-spacing:2px;color:#99a4ae}.modal-heading h2{font-size:23px;font-weight:550;margin:11px 0 20px}.export-preview{display:flex;align-items:center;background:#f1f3f5;border-radius:7px;overflow:hidden}.export-preview img{width:50%;height:190px;object-fit:cover}.export-preview>div{padding:15px}.export-preview h3{font-size:16px;margin:0 0 10px}.export-preview p{font-size:10px;color:#85919c}.export-preview b{display:block;color:var(--accent);font-size:24px;font-weight:500;margin-top:17px}.export-preview small{font-size:9px;color:#9da5ae}.notice{font-size:10px;background:#fff6eb;color:#a77a42;padding:12px;line-height:1.8;border-radius:5px}.export-options{display:flex;flex-direction:column;gap:8px;margin-top:18px}.export-options button{justify-content:flex-start;text-align:left;padding:14px;gap:14px}.export-options span{flex:1}.export-options b{display:block;font-size:12px;font-weight:500}.export-options small{display:block;font-size:10px;color:#96a1ad;margin-top:5px}.export-options svg{color:#8293a5}.modal-footer{display:flex;align-items:center;gap:9px;margin-top:20px}.modal-footer button{font-size:10px;padding:8px}.modal-footer span{margin-left:auto;font-size:9px;color:#a4acb4}.toast{position:fixed;z-index:60;bottom:53px;left:50%;transform:translate(-50%);background:#26394b;color:#fff;padding:13px 20px;border-radius:7px;box-shadow:0 6px 25px #16263b30;display:flex;align-items:center;gap:10px;font-size:12px;max-width:85vw;line-height:1.7}.toast svg{flex-shrink:0}.mobile-toggle{display:none!important}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:#d8dfe5;border-radius:5px}@media(min-width:1600px){.workspace{grid-template-columns:240px minmax(0,1fr) 290px}.equipment{padding:17px 10px}.equipment b{font-size:13px}.equipment small{font-size:9px}.scene{bottom:110px}.playback{padding:18px 24px}.stage-labels button{font-size:12px}.playback strong{font-size:14px}.field,.text-field,.field input,.text-field input{font-size:12px}}@media(max-width:1180px){.workspace{grid-template-columns:190px minmax(0,1fr) 230px}.brand-sub{display:none}.header{padding:0 16px;gap:18px}.brand b{font-size:20px}.equipment{gap:6px;padding:12px 5px}.equipment-icon{min-width:30px}.equipment b{font-size:11px}.equipment small{font-size:7px}.canvas-top{left:12px;right:12px}.mode-switch button,.view-switch button{padding:10px 9px;font-size:10px}.scene-summary{left:14px;gap:10px;padding:10px}.scene-summary b{font-size:13px}.sim-note,.play-heading strong span{display:none}.playback{left:10px;right:10px;padding:13px 12px}.play-button{width:34px;height:34px}.stop-button{margin-right:0}.play-controls{gap:7px}.stage-labels button{font-size:8px}.stage-description{font-size:7px}.inspector section{padding:14px}.field>div{max-width:100px}.position-fields{gap:7px}.status{gap:14px}.undo{display:none}.scene{bottom:112px}}@media(max-width:900px){.workspace{grid-template-columns:175px minmax(0,1fr)}.inspector{display:none}.mobile-inspector .inspector{display:flex;position:absolute;right:0;top:68px;bottom:34px;width:250px;box-shadow:-5px 0 25px #26364a18;z-index:15}.status .mobile-toggle{display:flex!important}.status-center{display:none!important}.saved{margin-left:auto}.project-name{max-width:250px}.equipment b{font-size:10px}.scene-summary{top:76px}.play-heading strong{font-size:10px}.stage-labels button{font-size:9px}.canvas-help{font-size:8px}.scene{bottom:125px}}@media(max-width:620px){.app{min-height:540px}.header{height:58px;padding:0 12px;gap:8px}.brand b{font-size:18px}.brand-mark,.project-name{display:none}.header nav{gap:6px}.header nav button{padding:8px;font-size:10px}.header nav .divider{display:none}.workspace{grid-template-columns:minmax(0,1fr)}.library{display:none}.mobile-library .library{display:flex;position:absolute;top:58px;bottom:34px;left:0;width:205px;z-index:15;box-shadow:5px 0 25px #26364a20}.mobile-inspector .inspector{top:58px;width:245px}.canvas-top{top:13px;left:12px;right:12px}.mode-switch button,.view-switch button{padding:10px;font-size:9px;gap:4px}.mode-switch svg,.view-switch svg{width:13px}.scene-summary{top:65px;left:14px;font-size:9px;gap:10px}.scene-summary b{font-size:12px}.scene-summary span{font-size:9px}.scene{bottom:140px}.playback{bottom:12px;left:8px;right:8px;padding:11px 10px}.stage-labels button{font-size:8px}.play-controls{gap:6px}.play-button{width:30px;height:30px}.stop-button{width:24px;height:24px}.timeline{min-width:0}.play-controls>select{font-size:9px;padding:4px;margin:0}.stage-description span{font-size:7px}.stage-description small{display:none}.play-heading{gap:8px}.targets select{font-size:8px}.canvas-tools{right:13px;bottom:171px}.canvas-tools button{padding:9px}.canvas-help{bottom:136px;font-size:7px;padding:0 8px}.axis{bottom:172px;left:22px}.status{font-size:8px;padding:0 9px;gap:10px}.status>span{font-size:8px}.status .saved{display:none}.status button{font-size:8px}.modal-backdrop{padding:10px}.modal{padding:18px}.modal-heading h2{font-size:19px}.export-preview{display:block}.export-preview img{height:160px;width:100%}.export-preview>div{padding:12px}.export-preview b{margin-top:8px;font-size:20px}.export-preview h3{font-size:14px}.modal-footer{flex-wrap:wrap}.modal-footer span{display:none}.presentation-title{left:20px;top:126px}.presentation-title h1{font-size:21px}.presentation-title p{font-size:10px}.presentation .scene-summary{right:15px;top:64px}.floor-popover{left:14px;top:114px;width:270px}.issues-popover{left:10px;right:10px;width:auto}.toast{font-size:11px;padding:10px 14px;bottom:43px}.presentation .status .mobile-toggle{display:none!important}}.canvas-tools button.active{background:#fff3e8;color:var(--accent)}.loading-style{position:absolute;top:133px;left:23px;z-index:2;display:flex;align-items:center;gap:3px;padding:4px 5px 4px 10px;background:#fffef6ed;border:1px solid #dbe3df;border-radius:7px;box-shadow:var(--shadow)}.loading-style>span{font-size:10px;color:#74868a;margin-right:7px}.loading-style button{font-size:10px;padding:6px 10px;border:0;background:transparent;color:#61777b}.loading-style button[aria-pressed=true]{background:#285f6d;color:#fff}.presentation .loading-style{left:auto;right:23px}.floor-popover{z-index:5}@media(max-width:1180px){.loading-style{left:14px;top:130px}}@media(max-width:620px){.loading-style{top:113px;left:14px}.loading-style>span{font-size:9px;margin-right:4px}.loading-style button{font-size:9px;padding:6px 8px}.presentation .loading-style{right:14px;top:111px}.presentation-title{top:169px}}.video-modal{max-width:760px}.video-modal video{display:block;width:100%;aspect-ratio:16/9;background:#edf1f0;border-radius:8px}.video-intro{background:#f0f5f3;border:1px solid #e0e8e5;border-radius:8px;padding:28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;color:#2e6572}.video-intro b{font-size:18px}.video-intro span{font-size:12px;color:#687e83}.video-intro p{font-size:12px;margin:0;color:#7a8c91}.video-options{margin:22px 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.video-options legend{font-size:12px;margin-bottom:10px}.video-options label{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid #dce5e2;border-radius:6px;cursor:pointer}.video-options input{accent-color:#2e6572}.video-options b,.video-options small{display:block}.video-options b{font-size:12px;font-weight:550}.video-options small{font-size:10px;color:#829296;margin-top:5px}.video-actions{display:flex;gap:12px;justify-content:flex-end}.video-download{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border-radius:6px;text-decoration:none;font-size:12px}.video-note{font-size:10px;color:#89969a;line-height:1.8;margin:18px 0 0}.video-ready{display:flex;align-items:center;gap:8px;color:#54816c;font-size:12px}.video-progress{padding:24px 0 4px}.video-progress b{font-size:14px}.video-progress progress{display:block;width:100%;height:8px;margin:18px 0;accent-color:#2e6572}.video-progress p{font-size:12px;color:#7d9093}.video-error{display:flex;align-items:center;gap:8px;color:#a3493b;font-size:12px;background:#fff3ed;padding:12px;border-radius:6px}@media(max-width:620px){.header .brand b{font-size:15px}.header nav{gap:4px}.header nav .export-video-button{max-width:96px;font-size:9px;padding:8px 6px;gap:4px}.header nav .export-video-button svg{width:13px}.video-options{grid-template-columns:1fr}.video-intro{padding:22px 12px}.video-actions{justify-content:stretch}.video-actions>*{flex:1}.video-modal{padding:18px}.video-modal .modal-heading h2{font-size:18px}}.equipment-draggable:not(:disabled){cursor:grab;-webkit-user-select:none;user-select:none}.equipment-draggable:not(:disabled):active{cursor:grabbing}.placement-hint{position:fixed;z-index:100;pointer-events:none;background:#fffdf8;color:#304950;border:1px solid #e9ad83;border-radius:7px;padding:10px 14px;box-shadow:0 4px 20px #193b4620;font-size:12px;min-width:175px}.placement-hint b,.placement-hint span{display:block}.placement-hint span{font-size:10px;margin-top:5px;color:#7e8d90}.rotate-shortcut{color:#b65d26;background:#fff5ed;border-color:#f0cfb7;font-weight:600}.rotate-shortcut:hover{background:#ffead9;border-color:#e67836}.tour-controls{display:flex;align-items:center;gap:9px}.tour-controls label{pointer-events:auto;display:flex;align-items:center;gap:7px;background:#ffffffeb;border:1px solid var(--line);border-radius:6px;padding:3px 6px 3px 10px;font-size:11px;color:#687d82}.tour-controls select{cursor:pointer;padding:5px 6px;background:transparent;border:0;color:#2d505b}.tour-controls button[aria-pressed=true]{color:#b65d26;background:#fff3e8}@media(max-width:620px){.tour-controls{gap:6px}.tour-controls button{padding:8px 10px}.tour-controls label{font-size:10px}}.demo-switch{display:flex;gap:3px;border-radius:5px;background:#edf1f2;padding:3px;flex-shrink:0}.demo-switch button{font-size:10px;border:0;padding:5px 8px;background:transparent;color:#71828a}.demo-switch button[aria-pressed=true]{background:#fff;color:#bb652c;box-shadow:0 1px 3px #203b4812}.targets select[aria-label=换刀机械臂]{max-width:100px}.play-heading{flex-wrap:wrap;row-gap:8px}.stage-description>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:620px){.demo-switch button{font-size:9px;padding:5px 6px}.play-heading .targets{margin-left:auto;gap:2px}.play-heading .targets select{max-width:74px;font-size:8px}}
