:root{--bg-start: #f3efe6;--bg-end: #eef4f8;--sidebar-start: #17324b;--sidebar-end: #284d66;--surface: rgba(255, 255, 255, .12);--surface-border: rgba(255, 255, 255, .18);--panel-light: #fffaf5;--panel-border: #d6d4ce;--viewport-border: rgba(25, 55, 79, .12);--text-main: #172430;--text-soft: #657383;--text-on-dark: #f2f7fb;--accent: #d17a22;--accent-soft: #f1b77b;--selection: rgba(209, 122, 34, .18);--danger: #b54f43;--danger-soft: rgba(181, 79, 67, .16);--shadow-lg: 0 28px 60px rgba(23, 36, 48, .16);--shadow-md: 0 16px 32px rgba(23, 36, 48, .08)}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{overflow:hidden;font-family:Bahnschrift,Segoe UI Variable Display,Trebuchet MS,sans-serif;color:var(--text-main);background:radial-gradient(circle at top left,rgba(209,122,34,.18),transparent 28%),linear-gradient(135deg,var(--bg-start),var(--bg-end))}button,input,select{font:inherit}button{cursor:pointer}.appShell{display:grid;grid-template-columns:var(--sidebar-width, 440px) var(--sidebar-resizer-width, 14px) minmax(0,1fr);height:100dvh;overflow:hidden}.sidebar,.viewportPanel{height:100dvh;min-height:0}.sidebar{display:flex;flex-direction:column;gap:12px;padding:18px 14px;overflow:hidden;background:radial-gradient(circle at top right,rgba(255,255,255,.12),transparent 30%),linear-gradient(180deg,var(--sidebar-start),var(--sidebar-end));border-right:1px solid rgba(255,255,255,.08)}.sidebarResizer{display:flex;align-items:center;justify-content:center;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(180deg,#17324b05,#17324b14);border-right:1px solid rgba(23,50,75,.08);transition:background-color .14s ease}.sidebarResizer:hover,.sidebarResizer:focus-visible{background:linear-gradient(180deg,#17324b14,#17324b24)}.sidebarResizer:focus-visible{outline:none}.sidebarResizerGrip{width:4px;height:88px;border-radius:999px;background:linear-gradient(180deg,#17324b33,#17324b66);box-shadow:0 0 0 1px #fff3}body.isSidebarResizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.sidebarHeader{padding:2px 4px 6px;color:var(--text-on-dark)}.sidebarPanels{display:flex;flex:1 1 auto;flex-direction:column;align-items:stretch;gap:12px;min-height:0;overflow-y:scroll;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:6px}.sidebarKicker{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:#f2f7fbb8}.sidebarTitle{margin:0;font-size:28px;line-height:1;letter-spacing:.02em}.panelCard{display:flex;flex:0 0 auto;flex-direction:column;border:1px solid var(--surface-border);border-radius:18px;background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-md);overflow:hidden}.panelToggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;border:none;background:transparent;color:var(--text-on-dark);text-align:left;transition:background-color .14s ease}.panelToggle:hover{background:#ffffff0f}.panelToggle:focus-visible{outline:2px solid var(--accent-soft);outline-offset:-2px}.panelTitle{margin:0;font-size:16px;color:var(--text-on-dark)}.panelIndicator{font-size:18px;transform:rotate(90deg);transition:transform .16s ease}.panelCard.isCollapsed .panelIndicator{transform:rotate(0)}.panelCollapse[hidden]{display:none}.panelCollapse{display:flex;flex:0 0 auto;flex-direction:column;gap:10px;padding:0 12px 12px}.panelBody{display:flex;flex-direction:column;gap:10px}.fieldGrid{display:grid;gap:8px}.fieldRow{display:grid;gap:4px;padding:8px 10px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#ffffff0a}.fieldLabelLine{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.fieldLabel{font-size:13px;font-weight:600;color:var(--text-on-dark)}.fieldInput,.dialogFieldInput{width:100%;min-width:0;border:1px solid rgba(255,255,255,.28);border-radius:10px;padding:8px 10px;background:#ffffff29;color:var(--text-on-dark);outline:none;transition:border-color .14s ease,background-color .14s ease,transform .14s ease}.fieldInput:focus,.dialogFieldInput:focus{border-color:var(--accent-soft);background:#ffffff38;transform:translateY(-1px)}.fieldInput::placeholder{color:#f2f7fb7a}.panelActions{display:flex;gap:8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid transparent;border-radius:12px;transition:transform .14s ease,border-color .14s ease,background-color .14s ease}.button:hover{transform:translateY(-1px)}.buttonPrimary{background:linear-gradient(135deg,#e19346,var(--accent));color:#fff}.buttonSecondary{background:#ffffff1a;border-color:#fff3;color:var(--text-on-dark)}.buttonDanger{background:var(--danger-soft);border-color:#b54f433d;color:#ffd9d4}.button:disabled{cursor:not-allowed;opacity:.45;transform:none}.stateInputRow{display:flex;gap:10px}.stateInputRow .fieldInput{flex:1 1 auto}.toolToolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.toolToolbar>.panelActions:last-child{margin-left:auto}.panelMeta{font-size:12px;line-height:1.35;color:#f2f7fbbd}.panelMetaStrong{font-size:13px;font-weight:700;color:var(--text-on-dark)}.panelMetaDark{color:var(--text-soft)}.toolList{display:grid;gap:8px}.entityTableCard{border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#ffffff14;overflow:hidden}.entityTableWrap{overflow-x:auto}.entityTable{width:100%;border-collapse:collapse;min-width:460px}.entityTable th,.entityTable td{padding:7px 9px;text-align:left;border-bottom:1px solid rgba(255,255,255,.1);color:var(--text-on-dark);white-space:nowrap}.entityTable th{position:sticky;top:0;background:#17324beb;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#f2f7fbb8}.entityTable tbody tr{cursor:pointer;transition:background-color .14s ease}.entityTable tbody tr:hover{background:#ffffff0f}.entityTable tbody tr.isHovered{background:#ffffff1a}.entityTable tbody tr.isActivated{background:#2db36a2e}.entityTable tbody tr.isSelected{background:var(--selection)}.entityTable tbody tr.isSelected.isActivated{background:linear-gradient(0deg,#2db36a2e,#2db36a2e),var(--selection)}.entityTable tbody tr:focus-visible{outline:2px solid var(--accent-soft);outline-offset:-2px}.entityTable tbody tr:last-child td{border-bottom:none}.entityTableEmptyCell{color:#f2f7fbb8;font-size:12px}.toolItem{display:grid;gap:8px;padding:10px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#ffffff0d;transition:border-color .14s ease,background-color .14s ease,transform .14s ease}.toolItem:hover{transform:translateY(-1px);border-color:#ffffff42}.toolItem.isSelected{border-color:var(--accent-soft);background:var(--selection)}.toolItemCard{padding:0;overflow:hidden}.toolItemSelect{display:grid;gap:8px;width:100%;padding:10px;border:none;background:transparent;text-align:left;color:inherit}.toolItemSelect:hover{background:#ffffff0a}.toolItemFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px 10px}.toolFlagButton{min-height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#ffffff1a;color:var(--text-on-dark);font-size:12px;font-weight:700;letter-spacing:.01em}.toolFlagButton.isActive{border-color:#d17a2294;background:#d17a2233;color:#fff4e8}.toolFlagButton.isLocked{border-style:dashed;opacity:.86}.toolItemMetaCompact{flex:1 1 auto;justify-content:flex-end;text-align:right}.toolItemHeader,.toolItemMeta{display:flex;align-items:center;justify-content:space-between;gap:12px}.toolItemTitle{font-size:14px;font-weight:700;color:var(--text-on-dark)}.toolItemMeta{font-size:12px;color:#f2f7fbb8}.toolBadge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#ffffff1f;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.toolEmptyState{padding:14px;border:1px dashed rgba(255,255,255,.22);border-radius:14px;font-size:13px;color:#f2f7fbb8}.detailEditor,.fixtureEditor{display:grid;gap:8px;padding:10px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#ffffff14}.detailEditor[hidden],.fixtureEditor[hidden]{display:none}.dllOptionsTable{width:100%;border-collapse:collapse}.dllOptionsTable td{padding:4px 0;vertical-align:middle}.dllOptionsTable td+td{padding-left:8px}.dllOptionLabel{width:34%;color:#f2f7fbb8;font-size:12px;white-space:nowrap}.dllOptionInput{min-height:32px;padding:6px 8px}.dllContextCard .panelActions{flex-wrap:wrap}.dllErrorBox{display:grid;gap:4px;padding:8px 10px;border:1px solid rgba(219,74,74,.46);border-radius:12px;background:#db4a4a29;color:#ffe7e7}.dllErrorTitle{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.dllErrorMessage{font-size:13px;line-height:1.35}.dllErrorDetails{color:#ffe7e7b8;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.dllChangeList{display:grid;gap:4px}.detailGroupRow{display:grid;gap:8px;align-items:start;min-width:0}.detailGroupRowGrid{grid-template-columns:minmax(0,1fr)}.detailGroupRowTrackGrid{display:grid;gap:8px;min-width:0;grid-template-columns:repeat(var(--detail-group-columns, 1),minmax(0,1fr))}.detailGroupRowScroll{grid-template-columns:36px minmax(0,1fr) 36px;align-items:stretch}.detailGroupRowTrackScroll{display:flex;gap:8px;min-width:0;overflow-x:auto;padding:2px;scroll-padding-inline:2px;scroll-snap-type:x proximity;scrollbar-width:thin}.detailGroupRowTrackScroll>.detailEditor,.detailGroupRowTrackScroll>.fieldGrid{flex:0 0 min(320px,100%);min-width:0;scroll-snap-align:start}.detailGroupRowScrollButton{display:inline-flex;align-items:center;justify-content:center;width:36px;min-width:36px;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#ffffff14;color:var(--text-on-dark)}.detailGroupRowScrollButton:disabled{opacity:.35;cursor:default}.detailGroupRowScrollButton:not(:disabled):hover{background:#ffffff24}.toolSetupWorkspace,.toolSetupSlotList{display:grid;gap:8px}.toolSetupSlotRow{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)) auto;align-items:center;gap:8px;width:100%;padding:9px 10px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#ffffff0d;color:var(--text-on-dark);text-align:left}.toolSetupSlotRow:hover,.toolSetupSlotRow.isSelected{background:#ffffff1f;border-color:#f1b77b61}.toolSetupSlotRow.isActivated{border-color:#2db36a80;background:#2db36a1f}.toolSetupSlotName{font-size:13px;font-weight:700}.toolSetupSlotMeta{font-size:12px;color:#f2f7fbc7}.toolSetupSlotBadge{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;background:#ffffff1a;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.toolSetupSlotBadge.isActive{background:#2db36a3d;color:#e6fff2}.toolSetupSlotDetail{display:grid;gap:8px}.toggleRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#ffffff0a}.toggleCopy{display:grid;gap:4px}.toggleInput{width:18px;height:18px;accent-color:var(--accent)}.fieldRange{width:100%;accent-color:var(--accent)}.placeholderCard{padding:10px;border:1px dashed rgba(255,255,255,.22);border-radius:12px;background:#ffffff0a;color:#f2f7fbb8;font-size:13px;line-height:1.5}.viewportPanel{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:radial-gradient(circle at top right,rgba(23,50,75,.08),transparent 30%),linear-gradient(180deg,#ffffffb8,#ffffff47)}.viewportHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:24px 28px 0}.viewportTitle{margin:0;font-size:30px;letter-spacing:.02em}.viewportHint{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--viewport-border);background:#ffffffa3;color:var(--text-soft);font-size:13px}.threeContainer{flex:1;min-height:0;padding:22px 24px 24px}.canvasShell{position:relative;isolation:isolate;height:100%;min-height:0;overflow:hidden;border:1px solid var(--viewport-border);border-radius:28px;background:radial-gradient(circle at top left,rgba(23,50,75,.06),transparent 26%),linear-gradient(180deg,#fbfcfd,#e7eef4);box-shadow:var(--shadow-lg)}#threeCanvas{display:block;width:100%;height:100%}.viewportToolbar{position:absolute;top:14px;left:14px;z-index:14;display:flex;flex-wrap:wrap;gap:8px;max-width:calc(100% - 140px)}.viewportToolButton{min-height:38px;padding:0 14px;border:1px solid rgba(23,50,75,.14);border-radius:999px;background:#ffffffe0;color:var(--text-main);font-size:13px;font-weight:600;letter-spacing:.01em;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}.viewportToolButton:hover:not(:disabled){transform:translateY(-1px);border-color:#17324b47}.viewportToolButton.isActive{border-color:#d17a227a;background:#d17a2224}.viewportToolButton:disabled{opacity:.56;cursor:default;box-shadow:none}.cubeCanvas{border:1px solid rgba(23,50,75,.12);border-radius:18px;background:#ffffffad;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toolDialog{width:min(440px,calc(100vw - 32px));padding:0;border:none;border-radius:22px;box-shadow:var(--shadow-lg);background:var(--panel-light);color:var(--text-main)}.toolDialog::backdrop{background:#0f182075}.toolDialogWide{width:min(920px,calc(100vw - 32px))}.dialogToolbarActions .buttonSecondary{border-color:var(--panel-border);background:#f4ede5;color:var(--text-main)}.setupInputRows{display:grid;gap:10px}.setupInputRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#f6efe6}.setupInputTag{font-family:Cascadia Code,Consolas,monospace;font-size:13px;color:var(--text-soft)}.setupInlineInput{max-width:150px}.setupCardWide{grid-column:1 / -1}.setupInputRowWide{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);align-items:center}.setupCardWide .setupInlineInput{max-width:none;width:100%}.setupDialogGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:start}.setupCard{display:grid;gap:12px;padding:16px;border:1px solid var(--panel-border);border-radius:18px;background:#fff}.setupCard[hidden]{display:none}.setupCardHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}.setupCardTitle{margin:0;font-size:17px;color:var(--text-main)}.setupCardText{margin:0;color:var(--text-soft);line-height:1.45;font-size:13px}.setupMetricGrid{display:grid;gap:10px}.setupMetricRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#f6efe6}.setupMetricLabel{font-family:Cascadia Code,Consolas,monospace;font-size:13px;color:var(--text-soft)}.setupMetricValue{font-size:14px;font-weight:700;color:var(--text-main)}.dialogCard{display:grid;gap:18px;padding:22px}.dialogHeader h3{margin:0 0 6px;font-size:22px}.dialogHeader p{margin:0;color:var(--text-soft);line-height:1.5}.dialogFields{display:grid;gap:12px}.dialogField{display:grid;gap:6px}.dialogFieldCheckbox{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialogField label{font-size:14px;font-weight:600}.dialogFieldInput{border-color:var(--panel-border);background:#fff;color:var(--text-main)}.dialogFieldInputCheckbox{width:18px;min-width:18px;height:18px;padding:0;border:none;border-radius:0;background:transparent;accent-color:var(--accent);justify-self:end}.dialogFieldInputCheckbox:focus{transform:none;background:transparent}.dialogActions{display:flex;justify-content:flex-end;gap:10px}.dialogActions .buttonSecondary{border-color:var(--panel-border);background:#f4ede5;color:var(--text-main)}.dialogActions .buttonPrimary{color:#fff}@media (max-width: 980px){body{overflow:auto}.appShell{grid-template-columns:1fr;height:auto;min-height:100dvh;overflow:visible}.sidebar,.viewportPanel{height:auto}.sidebarResizer{display:none}.sidebar{overflow:visible;border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}.sidebarPanels{min-height:auto;overflow:visible;scrollbar-gutter:auto;padding-right:0}.viewportPanel{min-height:100dvh}.viewportHeader{flex-direction:column;align-items:flex-start;padding-bottom:0}.threeContainer{min-height:58vh}.canvasShell{position:relative;isolation:isolate;height:100%;min-height:0;overflow:hidden;border:1px solid var(--viewport-border);border-radius:28px;background:radial-gradient(circle at top left,rgba(23,50,75,.06),transparent 26%),linear-gradient(180deg,#fbfcfd,#e7eef4);box-shadow:var(--shadow-lg)}}@media (max-width: 640px){.sidebar{padding:16px 12px}.viewportHeader{padding:20px 18px 0}.threeContainer{padding:16px 18px 18px}.panelActions,.dialogActions,.stateInputRow{flex-direction:column-reverse}.button{width:100%}.detailGroupRow,.detailGroupRowTrackGrid,.detailGroupRowScroll{grid-template-columns:1fr}.detailGroupRowScrollButton{display:none}}
