:root{color-scheme:light;font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:13px;--sheet: hsl(30 100% 95%);--sheet-deep: hsl(30 100% 92%);--panel: hsl(30 100% 98%);--panel-strong: #ffffff;--line: hsl(30 60% 88%);--line-strong: hsl(30 50% 80%);--ink: #3a2a1c;--muted: #8b6a4f;--accent: #c2410c;--accent-strong: #9a3412;--accent-soft: hsl(26 100% 94%);--green: #15803d;--green-soft: hsl(145 60% 94%);--preview: #b45309;--preview-soft: hsl(35 90% 92%);--danger: #b91c1c;--danger-soft: hsl(0 80% 96%);--mono: "JetBrains Mono", "Cascadia Mono", Consolas, monospace}*{box-sizing:border-box}html,body,#app{margin:0;height:100%}body{background:var(--sheet);color:var(--ink);overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--panel-strong);border:1px solid var(--line);border-radius:6px;padding:5px 10px;cursor:pointer;transition:border-color .11s ease,background .11s ease}button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}button:disabled{color:#bfa892;cursor:default}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}input,select,textarea{background:var(--panel-strong);border:1px solid var(--line);border-radius:6px;padding:4px 7px;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}.mono{font-family:var(--mono);font-size:11px}.muted{color:var(--muted)}.app-shell{display:grid;grid-template-columns:232px minmax(0,1fr) 296px;grid-template-rows:auto minmax(0,1fr) minmax(300px,1.05fr) auto;grid-template-areas:"toolbar toolbar toolbar" "assets viewport inspector" "assets nodes inspector" "status status status";height:100vh;overflow:hidden;gap:0}.app-shell.nodes-split{grid-template-columns:232px minmax(0,1fr) minmax(0,1fr) 296px;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"toolbar toolbar toolbar toolbar" "assets viewport nodes inspector" "status status status status"}.nodes-window{display:grid;grid-template-rows:auto minmax(0,1fr);height:100vh;background:var(--sheet-deep)}.nodes-window-bar{display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.nodes-window-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-strong)}.nodes-window .spacer{flex:1 1 auto}.nodes-window-body{display:grid;grid-template-columns:minmax(0,1fr) 288px;min-height:0}.nodes-window-body>.node-editor,.nodes-window-body>.inspector{grid-area:auto}.nodes-window-body .inspector{border-left:1px solid var(--line);overflow-y:auto}.context-backdrop{position:fixed;inset:0;z-index:60}.context-menu{position:fixed;z-index:61;min-width:208px;padding:5px;display:flex;flex-direction:column;background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px #6b4d2e33}.context-menu button{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border:1px solid transparent;background:transparent;text-align:left;padding:6px 9px}.context-menu button.danger{color:var(--danger)}.context-menu button small{font-size:10px;color:var(--muted)}.toolbar{grid-area:toolbar;display:flex;align-items:center;gap:14px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--line);min-width:0;overflow:hidden}.brand{display:flex;align-items:center;gap:9px}.brand-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--accent);color:#fff;font-weight:700;box-shadow:inset 0 -2px #0000001f}.brand strong{display:block;font-size:13px;line-height:1.1}.brand small{color:var(--muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.file-name{display:flex;align-items:center;gap:6px;min-width:180px}.file-name input{border-color:transparent;background:transparent;font-weight:600}.file-name input:hover{border-color:var(--line)}.dot{width:7px;height:7px;border-radius:50%;background:transparent}.dot.dirty{background:var(--preview)}.scope-tabs{display:flex;gap:2px;padding:2px;background:var(--sheet-deep);border-radius:7px}.scope-tabs button{border:none;background:transparent;padding:4px 12px;border-radius:5px;color:var(--muted)}.scope-tabs button.active{background:var(--panel-strong);color:var(--accent);box-shadow:0 1px 2px #783f0424;font-weight:600}.actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.actions button{white-space:nowrap}.actions button.primary{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:600}.actions button.primary:hover:not(:disabled){border-color:var(--accent-strong);background:var(--accent-strong);color:#fff}.actions::-webkit-scrollbar{display:none}.divider{width:1px;height:18px;background:var(--line)}.menu-anchor{position:relative}.menu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;min-width:190px;padding:6px;background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px #783f0429;display:flex;flex-direction:column;gap:2px}.menu button{display:flex;justify-content:space-between;gap:12px;border:none;background:transparent;text-align:left}.menu.align-left{right:auto;left:0}.menu-empty{padding:8px;color:var(--muted)}.menu-section{display:flex;flex-direction:column;gap:1px;margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}.menu-label{padding:3px 8px;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.kernel-badge{margin-left:auto;display:flex;align-items:center;gap:8px;max-width:320px}.pill{padding:2px 8px;border-radius:999px;background:var(--sheet-deep);color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.pill.occt{background:var(--green-soft);color:var(--green)}.pill.mesh{background:var(--accent-soft);color:var(--accent)}button.install{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.install:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.kernel-message{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assets{grid-area:assets;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;padding:10px 10px 20px;display:flex;flex-direction:column;gap:16px}.assets h2{margin:0 0 6px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.assets section{display:flex;flex-direction:column;gap:3px}.assets button{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;border:1px solid transparent;background:transparent;padding:6px 8px;border-radius:6px;text-align:left}.assets button.active{border-color:var(--accent);background:var(--accent-soft)}.assets button small{color:var(--muted);font-size:10px;white-space:nowrap}.asset-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-section{gap:6px}.panel-header{display:flex;align-items:baseline;justify-content:space-between}.scene-add{display:flex;gap:6px}.scene-add button{justify-content:center;border-color:var(--line);background:var(--panel-strong);font-size:11px;padding:5px 8px}.scene-add button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.scene-add-menu{display:flex;flex-direction:column;gap:4px;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--sheet)}.scene-add-menu button{flex-direction:column;align-items:flex-start;gap:1px;border-color:var(--line);background:var(--panel-strong)}.scene-add-menu button small{font-size:10px}.scene-tree{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.scene-row{display:flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid transparent;border-radius:6px;cursor:pointer;font-size:12px}.scene-row:hover{background:var(--sheet)}.scene-row.active{border-color:var(--accent);background:var(--accent-soft)}.scene-row.muted{opacity:.55}.scene-row.hidden .asset-name{text-decoration:line-through;color:var(--muted)}.assets .scene-row .scene-eye{margin-left:auto;flex:none;width:auto;display:inline-flex;justify-content:center;align-items:center;padding:2px 4px;border:1px solid transparent;background:transparent;color:var(--muted);opacity:.45;border-radius:4px}.scene-row:hover .scene-eye,.scene-row.active .scene-eye{opacity:1}.scene-eye:hover:not(:disabled){background:var(--accent-soft);border-color:transparent}.scene-row.hidden .scene-eye{color:var(--accent);opacity:1}.scene-kind{flex:none;width:16px;height:16px;border-radius:4px;display:grid;place-items:center;font-size:9px;font-weight:700;color:#fff;background:var(--accent)}.scene-kind.group{background:var(--green)}.scene-meta{margin-left:auto;color:var(--muted);font-size:10px}.scene-actions{display:flex;gap:6px}.scene-actions button{justify-content:center;border-color:var(--line);font-size:11px}.asset-row{display:flex;align-items:center;gap:4px}.asset-row.active{background:var(--accent-soft);border-radius:6px}.asset-main{flex:1 1 auto}.asset-action{flex:none;width:24px;justify-content:center;border-color:var(--line);color:var(--accent);font-weight:700}.small{font-size:10px}.checkbox{display:flex;align-items:center;gap:6px;font-size:12px}.checkbox input{width:auto}.empty{color:var(--muted);font-size:11px;margin:2px 4px 6px}.params{display:grid;grid-template-columns:1fr auto;gap:2px 8px;margin:0;font-size:11px}.params dt{color:var(--muted)}.params dd{margin:0;font-family:var(--mono)}.viewport-panel{grid-area:viewport;position:relative;background:var(--sheet);border-bottom:1px solid var(--line);min-height:0}.viewport-canvas{width:100%;height:100%;display:block;outline:none;touch-action:none}.viewport-hud{position:absolute;left:14px;bottom:12px;display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:8px;background:#fffcf8e0;border:1px solid var(--line);pointer-events:none;font-size:11px}.fatal{position:absolute;inset:18px;display:flex;flex-direction:column;justify-content:center;padding:22px;border-radius:10px;border:1px solid var(--preview);background:var(--preview-soft)}.view-navigator{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 6px 3px;border-radius:10px;background:#fffcf8e6;border:1px solid var(--line);box-shadow:0 2px 8px #785a3c14;user-select:none}.view-cube{width:96px;height:96px;overflow:visible}.view-cube-face{cursor:pointer}.view-cube-face polygon{fill:var(--panel-strong);stroke:var(--line);stroke-width:.04;stroke-linejoin:round;transition:fill 90ms ease-out}.view-cube-face:hover polygon{fill:var(--accent-soft);stroke:var(--accent)}.view-cube-face text{font-size:.26px;font-weight:700;letter-spacing:.01px;fill:var(--muted);text-anchor:middle;pointer-events:none}.view-cube-face:hover text{fill:var(--accent-strong)}.axis-triad{width:54px;height:54px;overflow:visible}.axis line{stroke-width:.11;stroke-linecap:round}.axis text{font-size:.42px;font-weight:700;text-anchor:middle;pointer-events:none}.axis-origin{fill:var(--muted);stroke:none}.axis-x line{stroke:#c0392b}.axis-x text{fill:#c0392b}.axis-y line{stroke:#1e8449}.axis-y text{fill:#1e8449}.axis-z line{stroke:#1f5fa8}.axis-z text{fill:#1f5fa8}.axis.head_on line{opacity:.2}.fatal h2{margin:0 0 8px;font-size:15px;color:var(--preview)}.inspector{grid-area:inspector;background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;padding:12px}.inspector h2{margin:0;font-size:14px}.inspector h3{margin:16px 0 6px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.inspector-body header{display:flex;align-items:center;justify-content:space-between;gap:8px}.hint{color:var(--muted);font-size:11px;line-height:1.45;margin:6px 0 12px}.fields{display:flex;flex-direction:column;gap:7px}.datum-row{display:flex;align-items:center;gap:6px;margin:4px 0 8px}.datum-row select{flex:1 1 auto;min-width:0}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;padding:0;border-radius:6px}.icon-button svg{display:block}.icon-button.picking{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.view-toggle.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.node-toggle{font-size:11px;color:var(--muted);white-space:nowrap}.node-toggle input{width:auto}.node-toggle.auto-connect{padding:2px 8px;border:1px solid var(--line-strong);border-radius:999px;color:var(--accent-strong);font-weight:600}.point-reference-row{display:flex;min-width:0;gap:4px}.point-reference-row select{min-width:0;width:50%}.fields label,.field{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.field{grid-template-columns:1fr;gap:4px}.fields label input[type=checkbox]{width:auto;justify-self:start;margin:0;padding:0;accent-color:var(--accent)}.summary{display:grid;grid-template-columns:96px 1fr;gap:4px 10px;margin:8px 0;font-size:11px}.summary dt{color:var(--muted)}.summary dd{margin:0;overflow:hidden;text-overflow:ellipsis}.notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.note{font-size:11px;padding:6px 8px;border-radius:6px;background:var(--sheet-deep);border-left:3px solid var(--line-strong)}.note.warning{background:var(--preview-soft);border-left-color:var(--preview)}.note.error{background:var(--danger-soft);border-left-color:var(--danger);color:var(--danger)}.note.info{border-left-color:var(--green)}.node-editor{grid-area:nodes;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border-bottom:1px solid var(--line);min-height:0;background:var(--sheet-deep)}.node-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;min-width:0}.node-title{display:flex;align-items:baseline;gap:8px;min-width:0;flex:0 1 auto}.node-title h2{margin:0;font-size:12px;white-space:nowrap}.node-title .crumb{padding:2px 7px;font-size:11px;color:var(--accent-strong);white-space:nowrap}.node-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;flex:1 1 auto;justify-content:flex-end}.palette-backdrop{position:fixed;inset:0;z-index:40}.palette{position:fixed;z-index:41;display:flex;flex-direction:column;background:var(--panel-strong);border:1px solid var(--line-strong);border-radius:9px;box-shadow:0 18px 40px #6b4d2e29;overflow:hidden}.palette-search{flex:0 0 auto;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--panel);padding:9px 11px;font-size:13px}.palette-search:focus{border-color:var(--line);outline:2px solid var(--accent-soft);outline-offset:-2px}.palette-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 0 8px}.palette-section h3{margin:0;padding:7px 11px 3px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.palette-item{display:grid;gap:1px;width:100%;padding:5px 11px;text-align:left;background:transparent;border:0;border-left:2px solid transparent;border-radius:0}.palette-item.active{background:var(--accent-soft);border-left-color:var(--accent)}.palette-name{font-size:12.5px;font-weight:600}.palette-hint{font-size:11px;line-height:1.3;color:var(--muted)}.palette-empty{margin:0;padding:14px 11px;font-size:12px;color:var(--muted)}.node-canvas-host{position:relative;min-height:0}.node-canvas-host:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.node-canvas{width:100%;height:100%;max-width:100%;display:block}.node-footer{display:flex;justify-content:space-between;gap:12px;padding:4px 12px;font-size:11px;background:var(--panel);border-top:1px solid var(--line);white-space:nowrap;overflow:hidden}.node-footer .muted{overflow:hidden;text-overflow:ellipsis}.status-bar{grid-area:status;display:flex;align-items:center;gap:14px;padding:6px 14px;background:var(--panel);border-top:1px solid var(--line);font-size:11px}.status-bar .spacer{flex:1}@media(max-width:1320px){.kernel-message,.brand small{display:none}.toolbar{gap:10px}.file-name{min-width:120px}}@media(max-width:1080px){.app-shell{grid-template-columns:200px minmax(0,1fr) 262px}.scope-tabs button{padding:4px 8px}}
