:root{--bg-app: #0f1115;--bg-panel: #171a21;--border-subtle: #2a2f3a;--text: #e5e7eb;--text-muted: #9ca3af;--accent: #38bdf8;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);color:var(--text);background:var(--bg-app)}.app-shell{display:grid;height:100vh;grid-template-columns:240px minmax(0,1fr) 280px;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"toolbar toolbar toolbar" "sidebar canvas inspector"}.app-toolbar{grid-area:toolbar;display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel)}.app-toolbar__brand{font-weight:600;letter-spacing:.02em}.app-toolbar__modes,.app-toolbar__scene-edit{display:flex;gap:.35rem}.app-toolbar__btn{padding:.35rem .65rem;border:1px solid var(--border-subtle);border-radius:6px;background:#1f2430;color:var(--text);font:inherit;cursor:pointer}.app-toolbar__btn.is-active{border-color:var(--accent);color:var(--accent)}.app-toolbar__hint{font-size:.85rem;color:var(--text-muted)}.app-toolbar__trail{margin-left:auto;display:flex;align-items:center;gap:.75rem}.app-toolbar__exports{display:flex;flex-wrap:wrap;gap:.35rem}.app-sidebar{grid-area:sidebar;overflow:auto;padding:.85rem 1rem;border-right:1px solid var(--border-subtle);background:var(--bg-panel)}.app-inspector{grid-area:inspector;overflow:auto;padding:.85rem 1rem;border-left:1px solid var(--border-subtle);background:var(--bg-panel)}.app-inspector__globallight{margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--border-subtle)}.app-inspector__globallight-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-bottom:.35rem}.app-inspector__btn-inline{padding:.2rem .55rem;font-size:.76rem}.app-inspector__bulb{margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--border-subtle)}.app-bulb-pos{display:flex;flex-wrap:wrap;gap:.5rem}.app-bulb-pos label{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem;color:var(--text-muted)}.app-bulb-pos input[type=number]{width:5rem;padding:.25rem .35rem;border-radius:4px;border:1px solid var(--border-subtle);background:#1f2430;color:var(--text);font:inherit}.app-bulb-intensity{width:min(100%,12rem);vertical-align:middle}.app-canvas-area{grid-area:canvas;position:relative;min-height:0;background:var(--bg-app)}.builder-canvas-root{position:absolute;top:0;right:0;bottom:0;left:0}.builder-canvas-root canvas{display:block;width:100%;height:100%}.app-panel__title{margin:0 0 .65rem;font-size:.95rem;font-weight:600}.app-panel__placeholder{margin:0 0 .75rem;font-size:.85rem;color:var(--text-muted);line-height:1.45}.app-sidebar__list{margin:0;padding-left:1.1rem;font-size:.88rem;color:var(--text-muted);line-height:1.65}.app-library{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.app-library__item{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.55rem .65rem;border:1px solid var(--border-subtle);border-radius:8px;background:#13161f}.app-library__meta{flex:1 1 8rem;min-width:0;display:flex;flex-direction:column;gap:.2rem}.app-library__name{font-size:.9rem;font-weight:600;color:var(--text)}.app-library__desc{font-size:.78rem;color:var(--text-muted);line-height:1.4}.app-library__btn{flex:0 0 auto;padding:.38rem .65rem;border-radius:6px;border:1px solid var(--accent);background:transparent;color:var(--accent);font:inherit;font-size:.8rem;cursor:pointer}.app-library__btn:hover{background:#38bdf81f}.app-sidebar__section{margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--border-subtle)}.app-sidebar__subtitle{margin:0 0 .45rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.app-library__pill{display:inline-block;align-self:flex-start;padding:.12rem .4rem;border-radius:4px;font-size:.65rem;font-weight:600;letter-spacing:.04em;color:#a5b4fc;background:#6366f133}.app-library__pill.is-obj{color:#fde68a;background:#f59e0b2e}.app-obj-import{display:flex;flex-direction:column;gap:.45rem}.app-obj-import__unit-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.82rem;color:var(--text-muted)}.app-obj-import__unit-select{flex:1 1 10rem;min-width:0;padding:.3rem .45rem;border-radius:6px;border:1px solid var(--border-subtle);background:#13161f;color:var(--text);font:inherit;font-size:.85rem}.app-obj-import__trigger{padding:.45rem .65rem;border-radius:6px;border:1px dashed var(--border-subtle);background:#13161f;color:var(--text);font:inherit;font-size:.85rem;cursor:pointer}.app-obj-import__trigger:hover{border-color:var(--accent);color:var(--accent)}.app-obj-import__error{margin:0;font-size:.78rem;line-height:1.4;color:#f87171}.app-inspector__dl{margin:0 0 1rem;display:grid;grid-template-columns:auto 1fr;gap:.35rem .75rem;font-size:.82rem;align-items:baseline}.app-inspector__dt{margin:0;color:var(--text-muted);font-weight:500}.app-inspector__dd{margin:0;color:var(--text);word-break:break-all}.app-inspector__mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.78rem}.app-panel__muted{margin-top:.5rem;font-size:.78rem;opacity:.9}.app-inspector__row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.88rem;cursor:pointer}.app-inspector__row--margintop{margin-top:.35rem}.app-panel__narrow{max-width:100%}.app-inspector__actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem}.app-inspector__btn{padding:.35rem .6rem;border-radius:6px;border:1px solid var(--border-subtle);background:#1f2430;color:var(--text);font:inherit;font-size:.8rem;cursor:pointer}.app-inspector__btn:hover{border-color:var(--accent);color:var(--accent)}.app-color-row{display:flex;flex-direction:column;gap:.55rem}.app-color-swatches{display:flex;flex-wrap:wrap;gap:.35rem}.app-color-swatch{width:22px;height:22px;border-radius:5px;border:2px solid transparent;padding:0;cursor:pointer;box-shadow:inset 0 0 0 1px #00000059}.app-color-swatch.is-active{border-color:var(--accent);box-shadow:inset 0 0 0 1px #00000059,0 0 0 1px var(--accent)}.app-color-pickers{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}.app-color-picker-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--text-muted)}.app-color-picker-native{width:36px;height:28px;padding:0;border:1px solid var(--border-subtle);border-radius:4px;background:transparent;cursor:pointer}.app-hex-field{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--text-muted)}.app-hex-input{width:7.5rem;padding:.25rem .4rem;border-radius:4px;border:1px solid var(--border-subtle);background:#0f1218;color:var(--text);font-family:ui-monospace,Consolas,monospace;font-size:.78rem}
