:root{--obs-bg:#030506;--obs-panel:#0a0e11db;--obs-panel-solid:#0a0e11;--obs-border:#bfd7d22e;--obs-border-strong:#bfd7d252;--obs-text:#eef4f2;--obs-muted:#8d9e9a;--obs-accent:#4cc9b0;--obs-warning:#f0c674;--obs-error:#ff8a80;--obs-radius:6px;--obs-panel-width:236px;--obs-safe-bottom:env(safe-area-inset-bottom,0px)}.observatory-shell{background:var(--obs-bg);width:100%;height:100%;min-height:100dvh;color:var(--obs-text);position:relative;overflow:hidden}.universe-viewport{position:absolute;inset:0}.universe-viewport canvas{touch-action:none;width:100%;height:100%;display:block}.view-reset-button{z-index:14;border:1px solid var(--obs-border);border-radius:var(--obs-radius);width:38px;height:38px;color:var(--obs-text);cursor:pointer;background:#070a0ce6;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:76px;left:50%;transform:translate(-50%)}.view-reset-button:hover,.view-reset-button:focus-visible{border-color:var(--obs-accent);color:var(--obs-accent)}.observatory-header{z-index:10;border-bottom:1px solid var(--obs-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#030506b8;justify-content:space-between;align-items:center;width:100%;height:62px;padding:0 20px;display:flex;position:absolute;top:0;left:0}.mode-switcher{z-index:16;border:1px solid var(--obs-border);border-radius:var(--obs-radius);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#070a0ceb;grid-template-columns:repeat(3,minmax(68px,1fr));min-height:38px;padding:3px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.mode-switcher button{min-width:0;min-height:30px;color:var(--obs-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:10px;display:inline-flex}.mode-switcher button[aria-pressed=true]{color:var(--obs-accent);background:#4cc9b021;border-color:#4cc9b075}.mode-switcher button:focus-visible{outline:1px solid var(--obs-accent);outline-offset:1px}.mode-switcher button:disabled{cursor:not-allowed;opacity:.36}.observatory-brand{align-items:baseline;gap:14px;min-width:0;display:flex}.observatory-brand strong{color:#fff;letter-spacing:0;font-size:18px;font-weight:750}.observatory-brand span{color:var(--obs-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.header-telemetry{align-items:center;gap:24px;display:flex}.header-telemetry>div{align-items:center;gap:8px;display:flex}.header-telemetry>div:first-child{flex-direction:column;align-items:flex-end;gap:2px}.header-telemetry span{color:var(--obs-muted);font-size:10px}.header-telemetry strong{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.backend-label{border:1px solid var(--obs-border);min-width:68px;color:var(--obs-muted);border-radius:4px;justify-content:center;padding:5px 8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.status-dot{background:var(--obs-warning);border-radius:50%;width:7px;height:7px}.status-dot-running{background:var(--obs-accent);box-shadow:0 0 10px #4cc9b0a6}.status-dot-paused{background:var(--obs-warning)}.observatory-panel{z-index:8;width:var(--obs-panel-width);border:1px solid var(--obs-border);border-radius:var(--obs-radius);background:var(--obs-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);max-height:calc(100% - 172px);position:absolute;top:78px;overflow:auto;box-shadow:0 16px 36px #0000003d}.body-directory-panel{left:16px}.body-inspector-panel{width:260px;right:16px}.creation-panel{width:304px;right:16px}.creation-panel-content{gap:14px;display:grid}.creation-panel-heading{margin-bottom:0}.creation-panel-heading p{color:var(--obs-text);align-items:center;gap:6px;display:inline-flex}.creation-panel-heading>span{color:var(--obs-warning);text-transform:none}.creation-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.creation-preset-grid button{min-width:0;min-height:52px;color:var(--obs-text);cursor:pointer;text-align:left;background:#ffffff06;border:1px solid #bfd7d21f;border-radius:4px;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:8px;padding:7px 8px;display:grid}.creation-preset-grid button:hover:not(:disabled){border-color:var(--obs-border-strong);background:#ffffff0e}.creation-preset-grid button[aria-checked=true]{background:#4cc9b01a;border-color:#4cc9b080}.creation-preset-grid button:disabled{cursor:not-allowed;opacity:.55}.creation-preset-grid button>span:last-child{gap:2px;min-width:0;display:grid}.creation-preset-grid strong,.creation-preset-grid small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.creation-preset-grid strong{font-size:10px;font-weight:650}.creation-preset-grid small{color:var(--obs-muted);font-size:8px}.creation-preset-swatch{width:10px;height:10px;box-shadow:0 0 9px color-mix(in srgb, currentColor 50%, transparent);border:1px solid #ffffff8c;border-radius:50%;display:block}.creation-measurements{border-top:1px solid #bfd7d21a;border-left:1px solid #bfd7d21a;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.creation-measurements>div{border-bottom:1px solid #bfd7d21a;border-right:1px solid #bfd7d21a;gap:3px;min-width:0;padding:8px;display:grid}.creation-measurements dt,.creation-measurements dd{min-width:0;margin:0}.creation-measurements dt{color:var(--obs-muted);font-size:8px}.creation-measurements dd{text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;overflow:hidden}.creation-preview-summary{gap:7px;display:grid}.creation-preview-summary>div:first-child{justify-content:space-between;align-items:center;gap:12px;display:flex}.creation-preview-summary>div:first-child span{color:var(--obs-muted);font-size:9px}.creation-preview-summary>div:first-child strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;font-weight:500}.creation-risk{border-left:2px solid var(--obs-border-strong);background:#ffffff06;align-content:center;gap:3px;min-height:48px;padding:8px 10px;display:grid}.creation-risk strong{font-size:10px}.creation-risk span,.creation-preview-summary>small{color:var(--obs-muted);font-size:8px}.creation-risk-stable{border-left-color:var(--obs-accent)}.creation-risk-stable strong{color:var(--obs-accent)}.creation-risk-escape,.creation-risk-pending{border-left-color:var(--obs-warning)}.creation-risk-escape strong,.creation-risk-pending strong{color:var(--obs-warning)}.creation-risk-collision{border-left-color:var(--obs-error)}.creation-risk-collision strong{color:var(--obs-error)}.creation-error{color:var(--obs-error);border:1px solid #ff8a8052;margin:0;padding:8px;font-size:9px}.creation-actions{grid-template-columns:1fr 1.35fr;gap:6px;display:grid}.creation-actions button{border:1px solid var(--obs-border);min-height:38px;color:var(--obs-text);cursor:pointer;background:#ffffff09;border-radius:4px;justify-content:center;align-items:center;gap:6px;font-size:10px;display:inline-flex}.creation-actions button:disabled{cursor:not-allowed;opacity:.42}.creation-actions .creation-confirm-button{color:#7be0cb;background:#4cc9b024;border-color:#4cc9b080}.body-editing-panel{width:340px}.body-editing-panel-content,.body-editing-fields,.body-editing-field,.body-editing-input-shell{min-width:0}.body-editing-fields{gap:10px;display:grid}.body-editing-scalar-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.body-editing-vector-fields{border:0;border-top:1px solid #bfd7d21c;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0;margin:0;padding:9px 0 0;display:grid}.body-editing-vector-fields legend{color:var(--obs-muted);padding:0 8px 0 0;font-size:9px;font-weight:650}.body-editing-field{color:var(--obs-muted);align-content:start;gap:4px;font-size:8px;display:grid}.body-editing-input-shell{display:block;position:relative}.body-editing-input-shell input{width:100%;min-width:0;height:34px;color:var(--obs-text);background:#ffffff09;border:1px solid #bfd7d229;border-radius:4px;outline:none;padding:0 34px 0 8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.body-editing-input-shell input:read-only{color:var(--obs-muted);padding-right:8px}.body-editing-input-shell input:focus-visible{border-color:#4cc9b0b8;box-shadow:0 0 0 2px #4cc9b01f}.body-editing-input-shell input[aria-invalid=true]{border-color:#ff8a80a8}.body-editing-input-shell input:disabled{cursor:not-allowed;opacity:.52}.body-editing-unit{color:var(--obs-muted);pointer-events:none;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.body-editing-field-error{color:var(--obs-error);font-size:8px;line-height:1.35}.body-editing-preview .creation-risk strong{align-items:center;gap:5px;display:inline-flex}.body-editing-conflict{border-left:2px solid var(--obs-warning);background:#f0c6740f;gap:6px;padding:9px 10px;display:grid}.body-editing-conflict strong{color:var(--obs-warning);font-size:10px}.body-editing-conflict>span{color:var(--obs-muted);font-size:8px;line-height:1.45}.body-editing-conflict button{width:-moz-fit-content;width:fit-content;min-height:30px;color:var(--obs-warning);cursor:pointer;background:#f0c67414;border:1px solid #f0c67452;border-radius:4px;align-items:center;gap:5px;padding:0 9px;font-size:9px;display:inline-flex}.body-delete-warning{color:var(--obs-error);grid-template-columns:24px minmax(0,1fr);align-items:start;gap:9px;display:grid}.body-delete-warning h2,.body-delete-warning p{margin:0}.body-delete-warning h2{color:var(--obs-text);font-size:14px}.body-delete-warning p{color:var(--obs-muted);margin-top:4px;font-size:9px;line-height:1.45}.creation-actions .body-delete-confirm-button{color:var(--obs-error);background:#ff8a801f;border-color:#ff8a807a}.inspector-actions{grid-template-columns:1fr 1fr;gap:6px;padding-top:2px;display:grid}.inspector-actions button{border:1px solid var(--obs-border);min-height:34px;color:var(--obs-text);cursor:pointer;background:#ffffff09;border-radius:4px;justify-content:center;align-items:center;gap:5px;font-size:9px;display:inline-flex}.inspector-actions button:hover:not(:disabled){border-color:var(--obs-border-strong);background:#ffffff0f}.inspector-actions .danger-button{color:var(--obs-error)}.inspector-actions button:disabled,.body-list-item:disabled{cursor:not-allowed;opacity:.45}.observatory-shell[data-mode=create] .body-inspector-panel{display:none}.panel-content{padding:14px}.body-directory-content{max-height:inherit;flex-direction:column;display:flex;overflow:hidden}.body-directory-panel{overflow:hidden}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-heading p,.panel-heading span{color:var(--obs-muted);letter-spacing:0;text-transform:uppercase;margin:0;font-size:10px;font-weight:650}.body-groups{overscroll-behavior:contain;scrollbar-color:#8d9e9a8c transparent;scrollbar-gutter:stable;scrollbar-width:thin;gap:12px;min-height:0;display:grid;overflow-y:auto}.body-groups::-webkit-scrollbar{width:6px}.body-groups::-webkit-scrollbar-track{background:0 0}.body-groups::-webkit-scrollbar-thumb{background:#8d9e9a6b;border-radius:3px}.body-directory-group h3{color:var(--obs-muted);justify-content:space-between;align-items:center;margin:0 0 4px;font-size:9px;font-weight:650;display:flex}.body-directory-group h3 small{font:inherit;font-variant-numeric:tabular-nums}.body-list{gap:4px;display:grid}.body-list-item{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px;display:grid}.body-list-item:hover{background:#ffffff0a}.body-list-item[aria-current=true]{background:#4cc9b017;border-color:#4cc9b06b}.body-list-item>span:nth-child(2){gap:2px;min-width:0;display:grid}.body-list-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.body-list-item small,.body-list-state{color:var(--obs-muted);font-size:9px}.body-list-state{opacity:0}.body-list-item[aria-current=true] .body-list-state,.body-list-item[data-selected=true] .body-list-state{opacity:1}.body-swatch{background:#aeb8bd;border:1px solid #ffffff8c;border-radius:50%;width:10px;height:10px;display:block}.inspector-title{border-bottom:1px solid var(--obs-border);align-items:center;gap:10px;padding-bottom:14px;display:flex}.inspector-title .body-swatch{width:18px;height:18px}.inspector-title h2,.inspector-title p{margin:0}.inspector-title h2{font-size:16px;font-weight:650}.inspector-title p{color:var(--obs-muted);margin-top:2px;font-size:10px}.measurement-list{gap:0;margin:8px 0 0;display:grid}.measurement-list>div{border-bottom:1px solid #bfd7d214;justify-content:space-between;align-items:center;gap:12px;min-height:34px;display:flex}.measurement-list dt,.measurement-list dd{margin:0;font-size:10px}.measurement-list dt{color:var(--obs-muted)}.measurement-list dd{overflow-wrap:anywhere;text-align:right;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.diagnostics-block{gap:8px;margin-top:14px;display:grid}.diagnostics-block>p{color:var(--obs-muted);margin:0 0 2px;font-size:10px;font-weight:650}.diagnostics-block>div{gap:3px;display:grid}.diagnostics-block span{color:var(--obs-muted);font-size:9px}.diagnostics-block small{color:var(--obs-accent);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}.diagnostics-block strong{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;font-weight:500}.time-controls{z-index:12;border:1px solid var(--obs-border-strong);border-radius:var(--obs-radius);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#070a0ceb;align-items:center;gap:8px;width:min(94vw,470px);min-height:56px;padding:8px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #00000061}.time-controls button,.mobile-panel-tabs button,.mobile-panel-close,.error-notice button{border:1px solid var(--obs-border);cursor:pointer;background:#ffffff09;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.time-controls button{flex:0 0 38px;width:38px;height:38px}.time-controls button:hover:not(:disabled),.mobile-panel-tabs button:hover,.error-notice button:hover{border-color:var(--obs-border-strong);background:#ffffff14}.time-controls button:disabled,.time-controls select:disabled{cursor:not-allowed;opacity:.45}.time-controls .primary-time-control{color:#7be0cb;background:#4cc9b026;border-color:#4cc9b085}.control-divider{background:var(--obs-border);width:1px;height:28px;margin:0 3px}.time-controls label{flex:1;gap:3px;min-width:0;display:grid}.time-controls label>span{color:var(--obs-muted);font-size:9px}.time-controls select{width:100%;height:24px;color:var(--obs-text);cursor:pointer;background:0 0;border:0;padding:0 24px 0 0;font-size:11px}.time-controls select option{background:var(--obs-panel-solid)}.time-controls output{min-width:74px;color:var(--obs-accent);font-variant-numeric:tabular-nums;text-align:right;padding-right:6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.observatory-notice{z-index:20;border:1px solid var(--obs-border);border-radius:var(--obs-radius);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#070a0cf0;align-items:center;display:flex;position:absolute;top:78px;left:50%;transform:translate(-50%)}.loading-notice{color:var(--obs-muted);gap:8px;padding:9px 12px;font-size:11px}.status-pulse{background:var(--obs-accent);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite status-pulse}.error-notice{border-color:#ff8a806b;gap:20px;max-width:min(560px,100vw - 32px);padding:12px 14px}.error-notice strong,.error-notice p{margin:0}.error-notice strong{color:var(--obs-error);font-size:12px}.error-notice p{color:var(--obs-muted);margin-top:3px;font-size:10px}.error-notice button{flex:none;gap:6px;min-height:34px;padding:0 10px;font-size:10px}.mobile-panel-tabs,.mobile-panel-close{display:none}@keyframes status-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.status-pulse{animation:none}}@media (max-width:720px){.view-reset-button{top:110px}.observatory-header{height:54px;padding:0 12px}.mode-switcher{grid-template-columns:repeat(3,minmax(52px,1fr));top:62px}.mode-switcher button{min-height:30px;padding:0 6px}.observatory-brand{gap:8px}.observatory-brand strong{font-size:16px}.observatory-brand span,.header-telemetry>div:first-child,.header-telemetry>.backend-label{display:none}.header-telemetry{gap:0}.observatory-panel{z-index:30;top:auto;right:8px;bottom:calc(128px + var(--obs-safe-bottom));opacity:0;pointer-events:none;visibility:hidden;background:#070a0cf7;width:auto;max-height:min(58vh,430px);transition:transform .18s,opacity .18s,visibility .18s;left:8px;transform:translateY(20px)}.observatory-shell[data-mode=create] .body-directory-panel,.observatory-shell[data-mode=create] .body-inspector-panel,.observatory-shell[data-mode=create] .mobile-panel-tabs,.observatory-shell[data-mode=create] .time-controls,.observatory-shell[data-editing-active=true] .body-directory-panel,.observatory-shell[data-editing-active=true] .mobile-panel-tabs,.observatory-shell[data-editing-active=true] .time-controls{display:none}.creation-panel{z-index:30;top:auto;right:8px;bottom:calc(8px + var(--obs-safe-bottom));opacity:1;pointer-events:auto;visibility:visible;background:#070a0cf7;width:auto;max-height:min(56vh,480px);display:block;left:8px;transform:none}.creation-panel-content{gap:10px}.body-editing-panel{max-height:min(60vh,520px)}.body-editing-input-shell input{height:36px}.creation-actions{background:linear-gradient(#0000,#070a0c 28%);padding:8px 0 14px;position:sticky;bottom:-14px}.creation-actions button{min-height:44px}.body-groups{max-height:calc(min(58vh,430px) - 62px)}.observatory-panel[data-mobile-open=true]{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)}.mobile-panel-close{z-index:2;width:30px;height:30px;display:inline-flex;position:absolute;top:8px;right:8px}.panel-heading{padding-right:34px}.mobile-panel-tabs{z-index:14;bottom:calc(86px + var(--obs-safe-bottom));gap:5px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.mobile-panel-tabs button{min-width:68px;height:34px;color:var(--obs-muted);background:#070a0ce6;gap:6px;padding:0 10px;font-size:10px}.mobile-panel-tabs button[aria-pressed=true]{color:var(--obs-accent);border-color:#4cc9b080}.time-controls{bottom:calc(10px + var(--obs-safe-bottom));width:calc(100vw - 16px);min-height:62px}.time-controls output{min-width:58px;font-size:10px}.observatory-notice{top:110px}}@media (max-width:390px){.time-controls{gap:6px;padding:7px}.time-controls button{flex-basis:36px;width:36px;height:36px}.time-controls output{display:none}}.universe-viewport{isolation:isolate;background:#030506;width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.universe-viewport__canvas{cursor:grab;touch-action:none;outline:none;width:100%;height:100%;display:block}.universe-viewport__canvas:active{cursor:grabbing}.universe-viewport__canvas[data-creation-active=true],.universe-viewport__canvas[data-creation-active=true]:active{cursor:crosshair}:root{color:#eef4f2;font-synthesis:none;text-rendering:optimizelegibility;background:#030506;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button,select{color:inherit;font:inherit}button:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #74dfc8}
