:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16181b;--panel-bg:#1f2226;--panel-border:#33383e;--text:#d7dbe0;--text-dim:#8b939c;--accent:#4f9cf0;--warn:#e0a83c;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0}.app-layout{grid-template:"toolbar toolbar toolbar"48px"library viewport properties"1fr"status status status"32px/240px 1fr 300px;height:100%;display:grid}.toolbar{background:var(--panel-bg);border-bottom:1px solid var(--panel-border);grid-area:toolbar;align-items:center;gap:16px;padding:0 12px;display:flex}.toolbar-title{white-space:nowrap;font-weight:600}.toolbar-scene-name{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toolbar-group{align-items:center;gap:6px;display:flex}.toolbar-group:first-of-type{margin-left:auto}.toolbar-toggle{align-items:center;gap:6px;font-size:.9rem;display:flex}.panel{background:var(--panel-bg);padding:12px;overflow-y:auto}.panel h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:0 0 10px;font-size:.85rem}.element-library{border-right:1px solid var(--panel-border);grid-area:library}.element-library ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.element-library button{text-align:left;width:100%}.element-library button.active{border-color:var(--accent);background:#2c3d52}.hint{color:var(--text-dim);margin-top:14px;font-size:.8rem;line-height:1.5}.panel-actions{gap:8px;margin-top:14px;display:flex}.panel-actions .danger{border-color:#7a4040}.panel-actions .danger:hover{border-color:#c05555}.properties-panel{border-left:1px solid var(--panel-border);grid-area:properties}.property-form{flex-direction:column;gap:10px;display:flex}.property-section{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:8px 0 0;font-size:.75rem}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--text-dim);align-items:baseline;gap:6px;font-size:.8rem;display:flex}.field-unit{opacity:.8;margin-left:auto;font-size:.75rem}.field input[type=number],.field input[type=text],.field select{width:100%;color:var(--text);border:1px solid var(--panel-border);background:#16181b;border-radius:4px;padding:6px 8px;font-size:.9rem}.field-invalid input{background:#2a1f1f;border-color:#c05555}.field-error{color:#e8a0a0;font-size:.75rem}.field-hint{color:var(--text-dim);font-size:.75rem}.field-checkbox label{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:.9rem}.field-checkbox input{width:auto}.field-readonly{gap:2px}.field-readonly-label{color:var(--text-dim);font-size:.8rem}.empty-state{color:var(--text-dim);font-size:.9rem;line-height:1.5}.viewport{grid-area:viewport;min-width:0;min-height:0;position:relative}.canvas-fallback{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.canvas-fallback p{max-width:40rem;color:var(--text-dim)}.canvas-fallback-error{text-align:left;white-space:pre-wrap;word-break:break-word;color:#e8a0a0;background:#2a1f1f;border:1px solid #5a3030;border-radius:4px;max-width:40rem;margin:12px 0;padding:10px 12px;font-size:.8rem}.status-bar{color:var(--text-dim);background:var(--panel-bg);border-top:1px solid var(--panel-border);grid-area:status;align-items:center;gap:20px;padding:0 12px;font-size:.85rem;display:flex}.status-throttled{color:var(--warn);font-weight:600}button{color:var(--text);border:1px solid var(--panel-border);cursor:pointer;background:#2a2f35;border-radius:4px;padding:5px 12px;font-size:.9rem}button:hover:not(:disabled){border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:disabled{opacity:.45;cursor:not-allowed}.modal-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:6px;width:min(28rem,100%);padding:20px 22px;box-shadow:0 12px 40px #00000073}.modal-dialog h2{margin:0 0 8px;font-size:1.1rem}.modal-dialog p{color:var(--text-dim);margin:0 0 12px;font-size:.9rem}.modal-error-list{color:#e8a0a0;max-height:12rem;margin:0 0 16px;padding-left:1.2rem;font-size:.85rem;overflow:auto}.modal-error-list code{color:#f0c0c0}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.modal-danger{background:#3a2222;border-color:#8a4040}
