:root{--bg:#14171c;--panel:#1b1f26;--panel-2:#222731;--border:#2d3340;--text:#d8dde6;--muted:#8a93a3;--accent:#ffb547;--accent-ink:#1b1406;--setup:#7ee0b5;--danger:#ff5f73;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}.topbar,.statusbar,.viewport,.section summary,.btn,.seg{-webkit-user-select:none;user-select:none}#app{grid-template:"top top"46px"side view"1fr"status status"28px/380px 1fr;height:100%;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--border);grid-area:top;align-items:center;gap:10px;padding:0 12px;display:flex}.brand{letter-spacing:.02em;align-items:center;gap:8px;margin-right:10px;font-weight:650;display:flex}.logo{border:2px solid var(--accent);background:linear-gradient(var(--accent), var(--accent)) center / 2px 100% no-repeat, linear-gradient(var(--accent), var(--accent)) center / 100% 2px no-repeat;border-radius:3px;width:18px;height:18px;transform:skew(-8deg)rotate(-6deg)}.spacer{flex:1}.segmented{background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:2px;display:inline-flex}.seg{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 11px}.seg:hover{color:var(--text)}.seg.active{background:var(--panel-2);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}body:not(.mode-deform) .segmented .seg.active[data-value=setup]{color:var(--setup)}body.mode-deform .segmented .seg.active[data-value=deform]{color:var(--accent)}select,input[type=number]{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:6px;min-width:0;padding:5px 7px}select:focus,input:focus{outline:1px solid var(--accent);outline-offset:-1px}.btn{background:var(--panel-2);color:var(--text);border:1px solid var(--border);font:inherit;cursor:pointer;white-space:nowrap;border-radius:6px;padding:6px 10px}.btn:hover:not(:disabled){background:#283040;border-color:#3d4556}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover:not(:disabled){background:#ffc46e;border-color:#ffc46e}.sidebar{background:var(--panel);border-right:1px solid var(--border);grid-area:side;overflow:hidden auto}.section{border-bottom:1px solid var(--border)}.section summary{cursor:pointer;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);-webkit-user-select:none;user-select:none;padding:10px 14px;font-size:11.5px;font-weight:600}.section summary:hover{color:var(--text)}.section-body{flex-direction:column;gap:8px;padding:0 14px 14px;display:flex}.section-body>.btn{width:100%}.row{gap:6px;display:flex}.row>*{flex:1;min-width:0}.row>select{flex:2}.row.three .field{flex-direction:row;align-items:center;gap:4px}.row.three .field span{flex:0}.row.three input{width:100%}.field{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;display:flex}.field input[type=number]{width:96px}.field input[type=range]{accent-color:var(--accent);flex:1}.check{cursor:pointer;align-items:center;gap:7px;display:flex}.check input{accent-color:var(--accent);margin:0}.checks{grid-template-columns:1fr 1fr;gap:7px;display:grid}.label{color:var(--muted)}.info{color:var(--muted);font-size:12px;line-height:1.45}.info:empty{display:none}.hint{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.viewport{grid-area:view;min-width:0;min-height:0;position:relative;overflow:hidden}.viewport canvas{touch-action:none;display:block}.box-select{border:1px dashed var(--accent);pointer-events:none;background:#ffb54714;display:none;position:absolute}.box-select.remove{border-color:var(--danger);background:#ff5f7314}.help{border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1b1f26eb;border-radius:8px;width:250px;padding:10px 12px;font-size:12px;position:absolute;bottom:12px;right:12px}.help.hidden{display:none}.help h3{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;font-size:12px}.help dl{grid-template-columns:auto 1fr;gap:3px 10px;margin:0;display:grid}.help dt{color:var(--text);white-space:nowrap}.help dd{color:var(--muted);margin:0}.help p{color:var(--muted);margin:8px 0 0}.toasts{pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.toast{background:var(--panel-2);border:1px solid var(--border);border-radius:7px;max-width:520px;padding:8px 12px}.toast.error{border-color:var(--danger);color:#ffd5db}.statusbar{background:var(--panel);border-top:1px solid var(--border);color:var(--muted);grid-area:status;align-items:center;gap:10px;padding:0 12px;font-size:12px;display:flex}.progress{background:var(--bg);visibility:hidden;border-radius:3px;width:160px;height:5px;overflow:hidden}.progress.visible{visibility:visible}.progress-fill{background:var(--accent);height:100%;transition:width .1s linear}.progress.indeterminate .progress-fill{animation:1.1s ease-in-out infinite slide;width:35%!important}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}body.dragging .viewport:after{content:"Drop splat, cage OBJ or project JSON";border:2px dashed var(--accent);color:var(--accent);background:#14171cbf;border-radius:12px;place-items:center;font-size:15px;display:grid;position:absolute;inset:12px}@media (width<=760px){#app{grid-template:"top""view"45vh"side"1fr"status"28px/1fr}.topbar{flex-wrap:wrap;padding:6px 12px}.help{display:none}}.divider{background:var(--border);width:1px;height:22px}.segmented.disabled{opacity:.35;pointer-events:none}.seg.lock{min-width:30px;font-weight:600}.seg.lock.locked{background:var(--panel-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--danger);text-decoration:line-through}.seg.lock-x:not(.locked){color:#ff6b6b}.seg.lock-y:not(.locked){color:#7ee07e}.seg.lock-z:not(.locked){color:#6fa8ff}body.mode-points .segmented .seg.active[data-value=points]{color:var(--accent)}.vector{color:var(--muted);grid-template-columns:24px repeat(3,minmax(0,1fr));align-items:center;gap:4px;display:grid}.vector input{width:100%}.name-input,.rename{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:6px;min-width:0;padding:5px 7px}.object-list{border:1px solid var(--border);background:var(--bg);border-radius:7px;margin:0;padding:0;list-style:none;overflow:hidden}.object-row{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:5px 6px;display:flex}.object-row:last-child{border-bottom:0}.object-row:hover{background:var(--panel-2)}.object-row.active{box-shadow:inset 2px 0 0 var(--accent);background:#ffb5471f}.object-row.hidden-object .object-name{color:var(--muted);font-style:italic}.object-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.object-row .rename{flex:1;padding:2px 5px}.object-empty{color:var(--muted);padding:10px;font-size:12px}.icon-btn{color:var(--muted);cursor:pointer;width:22px;height:22px;font:inherit;background:0 0;border:0;border-radius:4px;line-height:1}.icon-btn:hover{background:var(--panel);color:var(--text)}.icon-btn.eye{color:var(--setup)}.icon-btn.eye.off{color:var(--muted)}.icon-btn.remove:hover{color:var(--danger)}.badge{border:1px solid var(--border);color:var(--muted);border-radius:9px;padding:1px 6px;font-size:10.5px}.badge.deformed{color:var(--accent);border-color:#ffb54780}.badge.baked{color:var(--setup);border-color:#7ee0b580}.empty-hint{padding:12px 14px}.brush{pointer-events:none;border:1px solid #ffffffb3;border-radius:50%;display:none;position:absolute;box-shadow:0 0 0 1px #0006}.lasso{pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.lasso polyline{fill:#ffb54714;stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3}.lasso.remove polyline{fill:#ff5f7314;stroke:var(--danger)}.deformer-list .object-row{padding:4px 6px}.icon-btn.disabled{opacity:.25;pointer-events:none}.badge.masked{color:#9cc2ff;cursor:pointer;border-color:#6fa8ff80}.badge.masked:hover{text-decoration:line-through}body.mode-splats .segmented .seg.active[data-value=splats]{color:#ff8a3d}.role-list .object-row{cursor:default;gap:4px}.role-chip{border:1px solid var(--border);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:9px;padding:2px 7px;font-size:11px}.role-chip:hover{color:var(--text)}.role-chip.target.on{color:#cfe2ff;background:#6fa8ff2e;border-color:#6fa8ff}.role-chip.guide.on{color:#e3d6ff;background:#b08cff2e;border-color:#b08cff}.role-chip.source.on{border-color:var(--accent);color:#ffe2b8;background:#ffb5472e}.align-report{flex-direction:column;gap:6px;display:flex}.report-row{border:1px solid var(--border);background:var(--bg);color:var(--muted);border-radius:6px;flex-direction:column;gap:2px;padding:6px 8px;font-size:12px;display:flex}.report-row strong{color:var(--text);font-weight:600}.report-row.warn{border-color:#ff5f7380}.warn-text{color:#ffb3bd}body.mode-align .segmented .seg.active[data-value=align]{color:#9cc6ff}.btn.pivot-toggle.active{color:#fff;background:#6b3fd1;border-color:#9b74ff}body.pivot-mode .viewport{box-shadow:inset 0 0 0 2px #9b74ff8c}
