:root{color-scheme:dark;font-family:Microsoft YaHei UI,Segoe UI,sans-serif;background:#070b10;color:#dce9ef;font-synthesis:none;text-rendering:optimizeLegibility;--panel: rgba(13, 20, 27, .92);--panel-strong: rgba(18, 28, 36, .96);--line: rgba(126, 231, 255, .16);--line-strong: rgba(126, 231, 255, .34);--text-muted: #82949f;--cyan: #72e6ff;--amber: #ffb45c;--danger: #ff6f61;--green: #80f2b3}*{box-sizing:border-box}body{margin:0;min-width:1180px;height:100vh;height:100dvh;overflow:hidden;background:linear-gradient(rgba(114,230,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(114,230,255,.045) 1px,transparent 1px),radial-gradient(circle at 76% 18%,rgba(255,180,92,.12),transparent 26%),#070b10;background-size:34px 34px,34px 34px,auto,auto}button,label{font:inherit}.app-shell{display:grid;grid-template-rows:62px minmax(0,1fr) 78px;gap:10px;height:100vh;height:100dvh;max-height:100dvh;padding:10px 12px;overflow:hidden}.topbar,.side-panel,.viewport-column,.review-panel,.stats-bar{border:1px solid var(--line);background:linear-gradient(180deg,#0f1820f5,#080d12f5);box-shadow:0 18px 60px #0000004d}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px}.brand-block,.panel-title-row,.viewport-header,.review-actions,.metric,.suggestion-title{display:flex;align-items:center}.brand-block{gap:12px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(114,230,255,.38);background:#0b1820;color:var(--cyan);font-weight:800;letter-spacing:0}h1,h2,p{margin:0}h1{font-size:19px;letter-spacing:0}h2{font-size:16px;letter-spacing:0}.brand-block p,.eyebrow,.viewport-meta,.load-message,.metric span,.axis-note p,.suggestion-box li{color:var(--text-muted)}.brand-block p{margin-top:2px;font-size:12px}.eyebrow{display:block;margin-bottom:4px;font-size:10px;font-weight:800;letter-spacing:0}.preset-group,.role-switch,.format-row{display:flex;gap:6px}.segmented{min-width:68px;height:34px;border:1px solid var(--line);background:#0b141b;color:#b7c8d1;cursor:pointer}.segmented:hover,.segmented.active{border-color:var(--line-strong);color:#fff;background:linear-gradient(180deg,#72e6ff2e,#72e6ff0f)}.workspace{display:grid;grid-template-columns:286px minmax(500px,1fr) 350px;gap:10px;min-height:0;overflow:hidden}.side-panel,.viewport-column,.review-panel{min-height:0;overflow:hidden}.side-panel{overflow:hidden}.import-panel,.review-panel{display:flex;flex-direction:column;gap:12px;padding:14px}.import-panel{height:100%;overflow-y:auto;scrollbar-color:rgba(114,230,255,.34) rgba(255,255,255,.04)}.review-panel{overflow-y:auto;scrollbar-color:rgba(114,230,255,.34) rgba(255,255,255,.04)}.panel-title-row{justify-content:space-between}.panel-title-row svg{color:var(--cyan)}.drop-zone{display:grid;place-items:center;gap:8px;width:100%;min-height:150px;border:1px dashed rgba(114,230,255,.35);background:linear-gradient(135deg,rgba(114,230,255,.08),transparent),#080f15d6;color:#d8edf4;cursor:pointer;text-align:center}.drop-zone.dragging{border-color:var(--amber);background:#ffb45c14}.drop-zone svg{color:var(--cyan)}.drop-zone strong{font-size:17px}.drop-zone span,.control-block label{color:var(--text-muted);font-size:12px}.picker-button{display:inline-flex;align-items:center;justify-content:center;min-width:116px;height:32px;margin-top:4px;border:1px solid rgba(255,180,92,.48);background:linear-gradient(180deg,#ffb45c33,#ffb45c0f);color:#ffe5c2!important;font-size:12px;font-weight:800}.file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.format-row span{flex:1;border:1px solid var(--line);padding:8px 0;color:var(--amber);text-align:center;font-size:12px;font-weight:800}.import-limit-note{margin-top:-4px;color:#8ba1ab;font-size:11px;line-height:1.35}.associated-import-card{display:grid;gap:10px;padding:12px;border:1px solid rgba(255,180,92,.3);background:#ffb45c12}.associated-import-title{display:flex;align-items:center;gap:7px;color:#ffe0a8;font-size:13px}.associated-import-card p{margin:0;color:#b8c9d2;font-size:12px;line-height:1.5}.associated-missing-list{display:grid;gap:5px;max-height:92px;overflow:auto}.associated-missing-list span{overflow:hidden;padding:5px 7px;border:1px solid rgba(255,255,255,.08);color:#dceef5;background:#0811169e;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.associated-import-action{justify-self:start;border:1px solid rgba(255,180,92,.55);padding:8px 12px;color:#fff4d7;background:#ffb45c21;font-weight:800;cursor:pointer}.associated-import-action:hover{border-color:#ffd48ad9;background:#ffb45c33}.control-block{display:grid;gap:9px}.load-message{display:flex;gap:8px;align-items:flex-start;min-height:52px;padding:12px;border:1px solid rgba(255,180,92,.18);background:#ffb45c0d;font-size:12px;line-height:1.45}.load-message.error{color:#ffc2bc;border-color:#ff6f6157;background:#ff6f6112}.load-message.ready{color:#bcffd6;border-color:#80f2b357;background:#80f2b312}.load-message.needs-related{color:#ffe0a8;border-color:#ffb45c6b;background:#ffb45c14}.model-inspector{position:relative;display:grid;gap:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.inspector-title{display:flex;align-items:center;gap:7px;color:#e7f7fc;font-size:13px}.caret{color:var(--cyan);font-size:12px}.inspector-section{display:grid;gap:7px}.inspector-section>span{color:#71828d;font-size:10px;font-weight:800;letter-spacing:0}.inspector-list{display:grid;gap:3px}.inspector-row{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:8px;min-height:30px;width:100%;border:1px solid transparent;background:transparent;color:#b8c8d0;text-align:left;cursor:pointer}.inspector-row:hover{border-color:#72e6ff29;background:#ffffff09}.inspector-row.active{border-color:#72e6ff73;background:#27aeda;color:#fff}.inspector-icon{display:grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;color:inherit}.wire-opacity-control{display:grid;grid-template-columns:1fr;gap:6px;margin:4px 0 4px 32px;padding:8px;border:1px solid var(--line);background:#72e6ff0b}.wire-opacity-control span,.wire-opacity-control b{color:#c9dce4;font-size:11px}.wire-opacity-control input{width:100%;accent-color:var(--cyan)}.inspector-glint{position:absolute;top:12px;right:2px;color:var(--amber);opacity:.7}.viewport-column{display:grid;grid-template-rows:58px minmax(0,1fr);overflow:hidden}.viewport-header{justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);min-width:0}.viewport-header h2{max-width:min(60vw,760px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-meta{display:flex;gap:10px;font-size:12px}.viewport-meta span{border:1px solid var(--line);padding:7px 10px;background:#ffffff08}.model-viewport{min-height:0;position:relative;overflow:hidden;isolation:isolate;background:#0b1117}.model-canvas-host{position:absolute;inset:0;z-index:0}.model-canvas-host canvas{display:block;width:100%;height:100%}.blender-plugin-shell{position:absolute;top:16px;right:16px;z-index:7}.blender-plugin-entry{display:inline-flex;align-items:center;gap:9px;min-width:142px;height:44px;border:1px solid rgba(114,230,255,.34);background:linear-gradient(180deg,#121b23e6,#070c11e0),linear-gradient(90deg,rgba(255,128,35,.12),transparent);color:#eaf8ff;padding:0 12px;box-shadow:0 12px 28px #00000052;cursor:pointer}.blender-plugin-entry:hover{border-color:#ffb45c94;background:linear-gradient(180deg,#19242df5,#080e13f0),linear-gradient(90deg,rgba(255,128,35,.2),transparent)}.blender-plugin-entry span{display:grid;gap:1px;text-align:left}.blender-plugin-entry strong{font-size:12px;line-height:1.05}.blender-plugin-entry em{color:#ffb45c;font-size:10px;font-style:normal;font-weight:800}.blender-mark{width:28px;height:28px;flex:0 0 auto;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}.blender-mark-orange{fill:#f08a24;stroke:#ffd1a0;stroke-width:.8}.blender-mark-blue{fill:#2b99d8;stroke:#c9f4ff;stroke-width:.75}.blender-mark-core{fill:#0d1821}.blender-plugin-popover{position:absolute;top:52px;right:0;width:min(360px,calc(100vw - 32px));border:1px solid rgba(88,139,177,.58);background:linear-gradient(180deg,#252a31fa,#14171cfa),linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px);background-size:auto,100% 28px;color:#dce8ee;padding:10px;box-shadow:0 24px 54px #00000085,inset 0 1px #ffffff14}.blender-plugin-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;border-bottom:1px solid rgba(255,255,255,.1);padding:0 0 9px}.blender-plugin-titlebar div{display:grid;gap:2px}.blender-plugin-titlebar span{color:#9eabb6;font-size:10px;font-weight:800;text-transform:uppercase}.blender-plugin-titlebar strong{color:#fff;font-size:14px}.blender-plugin-close,.viewport-dialogue-close{display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:#d7e7ef;cursor:pointer}.blender-plugin-close{width:28px;height:28px}.blender-plugin-close:hover,.viewport-dialogue-close:hover{border-color:#ffb45c94;color:#fff}.blender-plugin-copy,.blender-plugin-note{color:#aab9c2;font-size:12px;line-height:1.55}.blender-plugin-copy{margin:10px 0}.blender-download-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:38px;border:1px solid rgba(255,157,80,.68);background:linear-gradient(180deg,#ff802352,#a04a156b);color:#fff0df;font-size:13px;font-weight:800;text-decoration:none}.blender-download-button:hover{border-color:#ffd1a0e0;background:linear-gradient(180deg,#ff97356b,#b553187a)}.blender-guide-grid{display:grid;gap:10px;margin-top:12px}.blender-guide-grid section{min-width:0}.blender-guide-grid h3{display:inline-flex;align-items:center;gap:6px;margin:0 0 6px;color:#bfefff;font-size:12px}.blender-guide-grid ol{margin:0;padding-left:18px}.blender-guide-grid li{margin:5px 0;color:#c7d5dd;font-size:12px;line-height:1.45}.blender-guide-grid li::marker{color:#ffb45c;font-weight:800}.blender-plugin-note{margin-top:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:9px}.viewport-review-dialogue{position:absolute;inset:0;z-index:8;cursor:pointer}.viewport-doubao-avatar{position:absolute;left:clamp(12px,2vw,28px);bottom:0;z-index:1;width:clamp(150px,17vw,245px);height:clamp(250px,42vh,460px);object-fit:contain;object-position:center bottom;filter:drop-shadow(0 24px 26px rgba(0,0,0,.52));pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.viewport-dialogue-box{position:absolute;right:clamp(14px,2vw,30px);bottom:clamp(14px,2.4vh,26px);left:clamp(178px,19vw,270px);z-index:2;min-height:clamp(146px,20vh,218px);max-height:min(34vh,280px);overflow:auto;border:1px solid rgba(255,230,194,.55);background:linear-gradient(180deg,#12151ac7,#070a0edb),linear-gradient(90deg,#ffb45c2e,#72e6ff0f);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:20px clamp(118px,13vw,188px) 28px 24px;box-shadow:0 20px 46px #00000073,inset 0 0 0 1px #04080cb8,inset 0 1px #ffffff14}.viewport-dialogue-box:before{position:absolute;top:34px;left:-13px;width:22px;height:22px;border-left:1px solid rgba(255,230,194,.55);border-bottom:1px solid rgba(255,230,194,.55);background:#0e1217db;transform:rotate(45deg);content:""}.viewport-dialogue-close{position:absolute;top:12px;right:12px;z-index:3;width:28px;height:28px}.viewport-dialogue-speaker{display:inline-flex;align-items:center;gap:7px;min-height:29px;margin-bottom:10px;border:1px solid rgba(255,180,92,.38);background:#ffb45c17;color:#ffe5c8;padding:0 10px;font-size:13px}.viewport-dialogue-speaker svg{color:#ffbf7c}.viewport-dialogue-speaker span{color:#ffbf7c;font-size:11px;font-weight:800}.viewport-dialogue-title{margin-bottom:8px;color:#fff4e8;font-size:15px;font-weight:800;line-height:1.35;overflow-wrap:anywhere}.viewport-dialogue-text{color:#f4fbff;font-size:18px;line-height:1.66;overflow-wrap:anywhere}.viewport-dialogue-suggestions{display:grid;gap:7px;margin:10px 0 0;padding-left:22px;color:#dce9ef;font-size:13px;line-height:1.48}.viewport-dialogue-suggestions li::marker{color:#ffbf7c;font-weight:800}.viewport-dialogue-score{position:absolute;top:52px;right:18px;display:grid;justify-items:end;gap:1px;min-width:88px;border-left:1px solid rgba(114,230,255,.18);padding-left:14px}.viewport-dialogue-score span,.viewport-dialogue-score small{color:#9eddeb;font-size:10px;font-weight:800}.viewport-dialogue-score strong{color:#fff0df;font-size:38px;line-height:.95}.viewport-dialogue-next{position:absolute;right:18px;bottom:12px;display:inline-flex;align-items:center;gap:3px;color:#ffbf7c;font-size:11px;font-weight:800;animation:viewportDialogueNextPulse .9s ease-in-out infinite alternate}@keyframes viewportDialogueNextPulse{0%{transform:translate(0);opacity:.52}to{transform:translate(6px);opacity:1}}.triangle-card{position:relative;border:1px solid var(--line);background:linear-gradient(rgba(114,230,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(114,230,255,.04) 1px,transparent 1px),#040a0e9e;background-size:22px 22px;padding:14px 12px 12px}.triangle-source{position:absolute;top:10px;right:10px;color:var(--amber);font-size:10px;font-weight:800}.triangle-card svg{display:block;width:100%;height:clamp(150px,24vh,200px)}.triangle-card line,.triangle-ring,.triangle-frame{fill:none;stroke:#72e6ff3d;stroke-width:.7}.triangle-score{fill:#72e6ff33;stroke:var(--cyan);stroke-width:1.4}.score-dot{fill:var(--amber)}.score-value{fill:#fff5e6;font-size:7px;font-weight:800}.triangle-labels{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.triangle-labels span{border-top:1px solid var(--line);padding-top:8px;color:#c8d9e1;font-size:12px;text-align:center}.review-actions{gap:8px}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;min-width:122px;border:1px solid rgba(255,180,92,.52);background:linear-gradient(180deg,#ffb45c3d,#ffb45c14);color:#fff4e4;cursor:pointer}.primary-action:disabled{opacity:.5;cursor:not-allowed}.state-chip{display:inline-flex;align-items:center;gap:6px;min-width:0;height:38px;padding:0 10px;border:1px solid var(--line);color:var(--text-muted);font-size:12px;flex:1}.state-chip.ready{color:var(--green)}.state-chip.error{color:#ffc2bc}.spin{animation:spin .9s linear infinite}.axis-notes{display:grid;gap:8px}.axis-note{border-left:2px solid rgba(114,230,255,.42);padding:8px 10px;background:#ffffff08}.axis-note b{color:#eef9ff;font-size:13px}.axis-note p{margin-top:5px;font-size:12px;line-height:1.42}.suggestion-box{margin-top:auto;border:1px solid rgba(255,180,92,.22);background:#ffb45c0e;padding:12px}.suggestion-title{gap:8px;color:#ffe4bf;font-size:13px;font-weight:800}.suggestion-box ol{margin:10px 0 0;padding-left:20px}.suggestion-box li{margin:6px 0;font-size:12px;line-height:1.35}.stats-bar{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:1px;overflow:hidden;min-height:0}.metric{gap:9px;padding:10px 12px;background:#ffffff06;min-width:0}.metric svg{color:var(--cyan);flex:0 0 auto}.metric span{display:block;margin-bottom:4px;font-size:11px}.metric strong{display:block;color:#f4fbff;font-size:16px;white-space:nowrap}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1200px){body{min-width:0;height:auto;min-height:100dvh;overflow:auto}.app-shell{grid-template-rows:auto auto auto;height:auto;max-height:none;min-height:100dvh;overflow:visible}.topbar,.workspace,.stats-bar{grid-template-columns:1fr}.topbar{gap:14px;align-items:flex-start;flex-direction:column}.workspace{display:grid;overflow:visible}.side-panel,.viewport-column,.review-panel{overflow:visible}.model-viewport{min-height:420px}.blender-plugin-shell{top:10px;right:10px}.blender-plugin-entry{min-width:118px;height:38px;padding:0 10px}.blender-plugin-entry em{display:none}.blender-mark{width:24px;height:24px}.blender-plugin-popover{top:46px;width:min(330px,calc(100vw - 24px));max-height:min(340px,calc(100dvh - 126px));overflow:auto}.viewport-doubao-avatar{left:14px;bottom:190px;width:116px;height:178px}.viewport-dialogue-box{right:12px;bottom:12px;left:12px;min-height:176px;max-height:228px;padding:46px 16px 34px}.viewport-dialogue-box:before{display:none}.viewport-dialogue-speaker{position:absolute;top:13px;left:16px;margin-bottom:0}.viewport-dialogue-close{top:12px;right:12px}.viewport-dialogue-score{top:12px;right:48px;display:flex;align-items:baseline;gap:3px;min-width:0;border-left:0;padding-left:0}.viewport-dialogue-score span{display:none}.viewport-dialogue-score strong{font-size:26px}.viewport-dialogue-title{font-size:14px}.viewport-dialogue-text{font-size:14px;line-height:1.56}.viewport-dialogue-suggestions{gap:5px;font-size:12px;line-height:1.42}.stats-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}
