#nxModelPanel{margin:20px 0;padding:20px;border:1px solid #dce5ea;border-radius:12px;background:#f7fafb;color:#24323b}#nxModelPanel[hidden]{display:none!important}body:not([data-lg-step="model"]) #nxModelPanel{display:none}.nxm-head{display:flex;justify-content:space-between;gap:16px}.nxm-head h3{margin:4px 0;font-size:18px}.nxm-head small{letter-spacing:.1em;color:#617985}.nxm-head>span{font-size:12px;color:#3b7065}.nxm-actions{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.nxm-actions label{min-width:120px}.nxm-actions>span,#nxModelSource,#nxModelBodies p{font-size:13px;color:#526672}.nxm-body-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-bottom:16px}.nxm-body{display:flex;gap:10px;padding:12px;background:white;border:1px solid #dbe5ea;border-radius:8px}.nxm-body input{width:16px!important;min-height:16px!important;margin-top:3px}.nxm-body small{display:block;color:#61717c;font-size:12px}.nxm-body strong{font-size:14px}.nxm-busy #nxModelStatus:before{content:'◌ ';color:#3578b8}#nxModelStatus{white-space:pre-line;color:#256455}#nxModelStatus.error{color:#b33d42}
/* Step 01 is geometry only; CAM details belong to step 02. */
body.lg-editor[data-lg-step="model"] :is(#programGroupDraft,#cadDraft,#learningPanel){display:none!important}
#nxModelOptions>summary{cursor:pointer;font-size:14px;font-weight:600;color:#385b69;padding:10px 0;list-style-position:inside}
#nxModelOptions[open]>summary{margin-bottom:10px}
#nxModelPanel.nxm-ready{padding:12px 18px;margin:12px 0}
#nxModelPanel.nxm-ready .nxm-head,#nxModelPanel.nxm-ready #nxModelSource{display:none}
#nxModelPanel.nxm-ready #nxModelStatus:empty{display:none}
#nxModelPanel.nxm-ready #nxModelStatus{font-size:12px;margin:4px 0}

#nxModelFrame{max-width:520px;margin:6px 0}#nxModelBodies{margin-top:12px}

/* High-visibility geometry confirmation, isolated from the rest of the editor. */
#nxConfirmProgress{--nxcp-accent:#67e8f9;position:relative;isolation:isolate;overflow:hidden;margin:20px 0 2px;padding:24px;color:#e5edf8;background:radial-gradient(ellipse at 90% 0%,#144b6659,transparent 60%),linear-gradient(135deg,#101e32,#101825);border:1px solid #39546c;border-radius:16px;box-shadow:0 10px 24px #0b1c3014;font-size:14px}
#nxConfirmProgress[hidden]{display:none!important}
#nxConfirmProgress>header{display:flex;gap:16px;align-items:center;margin-bottom:22px}
#nxConfirmProgress .nxcp-heading{flex:1;min-width:0}
#nxConfirmProgress .nxcp-heading>small{font:600 10px/1.6 Inter,sans-serif;letter-spacing:.16em;color:#8ab4d0}
#nxConfirmProgress h4{font-size:20px;line-height:1.4;margin:3px 0 6px;color:#f4f8ff}
#nxcpMessage{font-size:14px;line-height:1.6;color:#c6daeb;margin:0;overflow-wrap:anywhere}
#nxConfirmProgress .nxcp-badge{flex-shrink:0;padding:5px 10px;border:1px solid #39718d;border-radius:20px;color:#a5f3fc;background:#12394b;font-size:12px}
#nxConfirmProgress .nxcp-orbit{position:relative;display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border-radius:50%;border:1px solid #417287;background:#132f42;color:#a5f3fc;font:600 15px Inter,sans-serif}
#nxConfirmProgress .nxcp-orbit:before{content:'';position:absolute;inset:-4px;border:2px solid transparent;border-top-color:var(--nxcp-accent);border-right-color:#67e8f959;border-radius:50%;animation:nxcp-orbit 2s linear infinite}
#nxConfirmProgress .nxcp-track{position:relative;height:6px;border-radius:10px;background:#314155;overflow:hidden}
#nxConfirmProgress .nxcp-track>i{position:absolute;inset:0 auto 0 0;width:var(--nxcp-fill,0%);background:linear-gradient(90deg,#3b82f6,#67e8f9);border-radius:10px;transition:width .3s ease}
#nxConfirmProgress[data-state=running] .nxcp-track:after{content:'';position:absolute;inset:0;width:25%;background:linear-gradient(90deg,transparent,#d8f9ff99,transparent);animation:nxcp-scan 2.2s ease-in-out infinite}
#nxConfirmProgress .nxcp-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;padding:0;margin:18px 0;gap:10px}
#nxConfirmProgress .nxcp-steps li{display:grid;gap:4px;padding:10px 8px;border:1px solid #354255;border-radius:9px;background:#ffffff03;color:#9bafc3}
#nxConfirmProgress .nxcp-steps li>span{font:600 12px Inter,sans-serif;font-variant-numeric:tabular-nums;color:#9bafc3}
#nxConfirmProgress .nxcp-steps li>b{font-size:13px;line-height:1.6;white-space:nowrap}
#nxConfirmProgress .nxcp-steps li>small{font-size:12px;color:inherit}
#nxConfirmProgress .nxcp-steps li[data-state=active]{background:#123b51;border-color:#54b5d0;color:#c3f5ff;box-shadow:inset 0 0 12px #22d3ee09}
#nxConfirmProgress .nxcp-steps li[data-state=done]{border-color:#32766c;background:#15382f;color:#99e9ca}
#nxConfirmProgress .nxcp-steps li[data-state=done]>span{color:#99e9ca}
#nxConfirmProgress>footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:#bed2e5;font-variant-numeric:tabular-nums}
#nxcpHint{font-size:12px!important;line-height:1.7;color:#a8bdd0!important;margin:12px 0 0}
#nxConfirmProgress .nxcp-result{margin-top:16px;padding:12px 14px;border-radius:9px;border:1px solid #3e766e;background:#17392f}
#nxConfirmProgress .nxcp-result strong,#nxConfirmProgress .nxcp-result span{display:block;overflow-wrap:anywhere}
#nxConfirmProgress .nxcp-result strong{font-size:14px;color:#d7ffec}
#nxConfirmProgress .nxcp-result span{font-size:12px;margin-top:5px;color:#b7d9cc}
#nxConfirmProgress .nxcp-log{margin-top:16px;border-top:1px solid #354255;padding-top:10px}
#nxConfirmProgress .nxcp-log summary{font-size:12px;cursor:pointer;color:#a9c6dd}
#nxConfirmProgress .nxcp-log ol{padding-left:20px;margin:10px 0 0;font-size:12px;line-height:1.9;color:#b7cadd}
#nxConfirmProgress .nxcp-retry{margin-top:14px;background:#dbeafe;color:#172f52;border:0}
#nxConfirmProgress[data-state=done] .nxcp-orbit{color:#a7f3d0;border-color:#448f78;background:#16382e}
#nxConfirmProgress[data-state=done] .nxcp-badge{background:#193f31;color:#bbf7d0;border-color:#498c6d}
#nxConfirmProgress:not([data-state=running]) .nxcp-orbit:before{animation:none;display:none}
#nxConfirmProgress[data-state=error]{border-color:#ad655f}
#nxConfirmProgress[data-state=error] .nxcp-badge{background:#542b2a;color:#ffceca;border-color:#a96b63}
#nxConfirmProgress[data-state=preview-error] .nxcp-badge{background:#4b3b21;color:#ffe0a1;border-color:#a38a54}
#nxModelPanel.nxm-confirming .nxm-actions>button{cursor:wait}
@keyframes nxcp-orbit{to{transform:rotate(360deg)}}
@keyframes nxcp-scan{from{transform:translateX(-100%)}to{transform:translateX(500%)}}
@media(max-width:640px){#nxConfirmProgress{padding:16px}#nxConfirmProgress>header{gap:12px;flex-wrap:wrap}#nxConfirmProgress h4{font-size:18px}#nxConfirmProgress .nxcp-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}#nxConfirmProgress .nxcp-orbit{width:44px;height:44px;flex-basis:44px}#nxConfirmProgress .nxcp-badge{margin-left:auto}}
@media(prefers-reduced-motion:reduce){#nxConfirmProgress *,#nxConfirmProgress *:before,#nxConfirmProgress *:after{animation:none!important;transition:none!important}}

#nxConfirmProgress>header{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;color:inherit!important}
