.canvas-panel-stage{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.canvas-panel-board-frame{touch-action:none;overscroll-behavior:none;user-select:none;cursor:grab;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.canvas-panel-board-frame.is-panning{cursor:grabbing}.canvas-panel-board-frame.is-hidden{visibility:hidden}.canvas-panel-surface,.canvas-panel-grid-canvas{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.canvas-panel-selection-line{fill:none;stroke:var(--overlay-selection-stroke)}.canvas-panel-selection-rotation-guide{stroke:var(--overlay-rotation-stroke);stroke-linecap:round}.canvas-panel-selection-radius-guide{fill:none;stroke:var(--overlay-control-stroke)}.canvas-panel-selection-control-line{stroke:var(--overlay-control-stroke);stroke-opacity:.9}.canvas-panel-controls{z-index:10;align-items:flex-start;gap:var(--space-2);pointer-events:auto;flex-wrap:wrap;display:flex;position:absolute;top:10px;right:10px}.canvas-panel-controls.is-hidden{display:none}.canvas-panel-control-group{border:1px solid var(--border-strong);background:var(--bg);box-shadow:var(--shadow-lg);border-radius:14px;align-items:center;gap:6px;padding:6px;display:flex}.canvas-panel-controls .ui-button{background:var(--panel-strong);border-color:var(--border);box-shadow:var(--shadow-sm)}.canvas-panel-controls .ui-button:hover:not(:disabled){background:var(--panel-raised);border-color:var(--border-strong)}.canvas-panel-control-button{white-space:nowrap}.canvas-panel-control-button.ui-button-icon{width:var(--control-height-sm)}.canvas-panel-control-readout{min-width:58px}.canvas-panel-toggle-button{min-width:56px}.canvas-panel-toggle-button.is-active{background:var(--accent-fill);border-color:var(--accent-focus);color:var(--accent-strong)}.canvas-panel-toggle-button.is-active:hover:not(:disabled){background:var(--accent-border);border-color:var(--accent-active)}.canvas-panel-empty-state{border:1px dashed var(--border-strong);color:var(--muted);text-align:center;border-radius:10px;justify-content:center;align-items:center;padding:12px;display:flex;position:absolute;inset:24px}.object-tree-list{margin:0;padding:0;list-style:none}.object-tree-item{user-select:none;position:relative}.object-tree-children{margin-top:0;padding-left:14px;position:relative}.object-tree-children:before{content:"";background:var(--border-strong);width:1px;position:absolute;top:0;bottom:0;left:13px}.object-tree-row{width:var(--tree-row-width,100%);padding:var(--space-2);padding-left:var(--space-4);text-align:left;cursor:pointer;border:1px solid #0000;border-left:0;border-radius:0 7px 7px 0;align-items:center;gap:6px;margin:0;display:flex;position:relative}.object-tree-disclosure,.object-tree-disclosure-spacer{flex:none;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.object-tree-disclosure{color:var(--icon-muted);cursor:pointer;background:0 0;border:0;padding:0}.object-tree-disclosure:hover,.object-tree-row:hover .object-tree-disclosure,.object-tree-row.is-selected .object-tree-disclosure{color:var(--icon)}.object-tree-disclosure-end{margin-left:auto}.object-tree-disclosure-chevron{border-bottom:1.5px solid;border-right:1.5px solid;width:8px;height:8px;transition:transform .14s;transform:rotate(45deg)translateY(-1px)}.object-tree-disclosure.is-collapsed .object-tree-disclosure-chevron{transform:rotate(-45deg)translate(-1px)}.object-tree-row:hover,.object-tree-row.is-selected{background:var(--panel-strong);border-color:var(--border)}.object-tree-row:focus-visible{border-color:var(--accent-focus);box-shadow:0 0 0 1px var(--accent-fill);outline:none}.object-tree-row.is-selected{color:var(--accent)}.object-tree-row.is-dragging{opacity:.55}.object-tree-row.is-drop-before{box-shadow:inset 0 2px 0 var(--accent-edge), 0 0 0 1px var(--accent-fill)}.object-tree-row.is-drop-after{box-shadow:inset 0 -2px 0 var(--accent-edge), 0 0 0 1px var(--accent-fill)}.object-tree-row.is-drop-inside{border-color:var(--accent-focus);background:var(--accent-wash)}.object-tree-icon{width:16px;height:16px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:inline-flex}.object-tree-icon svg{fill:none;stroke:currentColor;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.object-tree-label{font-size:.82rem;font-weight:500;line-height:1.2}.object-tree-label.is-type-label{color:var(--muted)}.object-tree-row.is-selected .object-tree-label.is-type-label{color:inherit}.object-tree-value{background:var(--hover-weak);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;flex-shrink:0;max-width:128px;margin-left:auto;padding:2px 5px;font-family:ui-monospace,monospace;font-size:.75rem;overflow:hidden}.object-tree-row.is-error .object-tree-label,.object-tree-row.is-error .object-tree-icon{color:var(--danger)}.object-tree-drop-zone.is-available{cursor:copy}.panel-header-main{align-items:flex-start;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.panel-actions{align-items:center;gap:var(--space-2);display:flex}.objects-panel-actions{align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.objects-panel-icon-button{width:var(--control-height-md)}.objects-panel-icon-button svg{width:var(--control-icon-size);height:var(--control-icon-size);fill:none;stroke:currentColor;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round}.objects-panel-delete-button{min-width:58px}.objects-panel-section{padding:var(--space-4);user-select:none;padding-left:0}.objects-panel-section-label{margin:0;margin-bottom:var(--space-4);text-transform:uppercase;letter-spacing:.14em;color:var(--muted-soft);font-size:.68rem}@media (width<=720px){.panel-header-main{width:100%}.objects-panel-actions{overflow:auto hidden}.objects-panel-icon-button{flex-shrink:0}}.properties-panel-badge-group{align-items:center;gap:6px;display:inline-flex}.properties-panel-badge{background:var(--accent-fill);color:var(--accent);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;align-items:center;padding:4px 8px;font-size:.68rem;font-weight:700;display:flex}.properties-panel-tip-toggle{border:1px solid var(--border);width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.properties-panel-tip-toggle:hover{color:var(--accent);border-color:var(--accent)}.properties-panel-tip-toggle[aria-expanded=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-fill)}.properties-panel-badge svg{stroke:currentColor;fill:none;width:14px;height:14px;margin-right:4px}.properties-panel-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px;display:flex;overflow:auto}.properties-panel-summary{border:1px solid var(--border);background:var(--panel-strong);border-radius:10px;padding:12px}.properties-panel-summary-title h3{margin:0;font-family:Arial,sans-serif;font-size:1rem}.properties-panel-summary-title p{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:4px 0 0;font-size:.68rem}.properties-panel-metadata{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 0;display:grid}.properties-panel-metadata div{background:var(--sunken-soft);border-radius:8px;padding:8px}.properties-panel-metadata dt{color:var(--muted-soft);text-transform:uppercase;letter-spacing:.12em;font-size:.64rem}.properties-panel-metadata dd{margin:4px 0 0;font-size:.88rem}.properties-panel-section{border:1px solid var(--border);background:var(--sunken-soft);border-radius:10px;align-self:stretch;padding:10px 12px 12px}.properties-panel-section-label{text-transform:uppercase;letter-spacing:.14em;color:var(--muted-soft);margin:0 0 8px;font-size:.68rem}.properties-panel-section-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.properties-panel-section-header .properties-panel-section-label{margin:0}.properties-panel-placeholder{border:1px dashed var(--border-strong);min-height:56px;color:var(--muted);border-radius:8px;align-items:center;padding:10px 12px;line-height:1.4;display:flex}.properties-panel-field-list{gap:var(--space-6);flex-direction:column;align-items:start;display:flex}.properties-panel-field-row{flex-direction:column;align-self:stretch;align-items:stretch;gap:4px;display:flex}.properties-panel-field-header{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.properties-panel-field-label{color:var(--muted-soft);letter-spacing:.12em;font-size:.64rem}.properties-panel-field-input{border:1px solid var(--border);background:var(--sunken);width:100%;min-width:0;color:var(--text);font:inherit;border-radius:8px;padding:6px 8px;font-size:.82rem;line-height:1.3}.properties-panel-field-preview{color:color-mix(in srgb, var(--text) 58%, transparent);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.72rem;line-height:1.2;overflow:hidden}.properties-panel-field-input:focus{border-color:var(--accent-focus);box-shadow:0 0 0 2px var(--accent-fill);outline:none}.properties-panel-field-input.has-error{border-color:var(--danger)}.properties-panel-field-input.has-error:focus{border-color:var(--danger);box-shadow:0 0 0 2px var(--danger-fill)}.properties-panel-field-error{color:var(--danger);font-size:.72rem;line-height:1.35}.properties-panel-export-hint{color:var(--muted);margin:0;font-size:.72rem;line-height:1.4}.properties-panel-export-actions{flex-wrap:wrap;gap:6px;display:flex}.properties-panel-export-row{border:1px solid var(--border);background:var(--sunken-soft);border-radius:8px;flex-direction:column;align-self:stretch;gap:10px;padding:10px;display:flex}.properties-panel-export-row-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.properties-panel-export-enabled{color:var(--text);align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:inline-flex}.properties-panel-export-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.properties-panel-export-status{color:var(--muted);margin:0;font-size:.74rem;line-height:1.4}.properties-panel-field-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:28px}.properties-panel-field-input-boolean{appearance:none;border:1px solid var(--border);background:var(--sunken);cursor:pointer;border-radius:8px;align-self:flex-start;width:24px;height:24px;margin:0;transition:border-color .12s,box-shadow .12s}.properties-panel-field-input-boolean:hover{border-color:var(--accent-border);background:var(--sunken)}.properties-panel-field-input-boolean:focus-visible{border-color:var(--accent-focus);box-shadow:0 0 0 2px var(--accent-fill);outline:none}.properties-panel-field-input-boolean:checked{border-color:var(--accent-active);background-color:var(--accent-fill);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.2 8.3 6.5 11.4 12.8 4.6' fill='none' stroke='%23c6e2ff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.1'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:12px 12px}.properties-panel-tip-popover{z-index:1000;border:1px solid var(--border);background:var(--panel-strong);box-shadow:var(--shadow-md);color:var(--muted);letter-spacing:normal;text-transform:none;user-select:text;border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;font-size:.74rem;font-weight:400;line-height:1.5;display:flex;position:fixed}.properties-panel-tip-description{display:block}.properties-panel-tip-popover code{background:var(--accent-wash);color:var(--accent);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem}.properties-panel-tip-section-label{color:var(--muted-soft);letter-spacing:.12em;text-transform:uppercase;margin-top:2px;font-size:.62rem;font-weight:700;display:block}.properties-panel-tip-properties{border-collapse:collapse;table-layout:auto;width:100%;margin:0}.properties-panel-tip-properties tr+tr th,.properties-panel-tip-properties tr+tr td{border-top:1px solid var(--border)}.properties-panel-tip-properties th,.properties-panel-tip-properties td{vertical-align:top;text-align:left;padding:6px 0;font-weight:400}.properties-panel-tip-properties th{color:var(--accent);white-space:nowrap;padding-right:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.properties-panel-tip-properties td{color:var(--muted)}.properties-panel-tip-popover:before,.properties-panel-tip-popover:after{content:"";left:var(--tip-arrow-left,12px);border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute;transform:translate(-50%)}.properties-panel-tip-popover:before{border-bottom:7px solid var(--border);top:-7px}.properties-panel-tip-popover:after{border-bottom:7px solid var(--panel-strong);top:-6px}.properties-panel-empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;overflow:auto}.properties-panel-empty-title{letter-spacing:0;margin:0;font-family:Arial,sans-serif}.properties-panel-empty-text{color:var(--muted);line-height:1.45}.properties-panel-mobile-type{display:none}.mobile-tab-content .properties-panel-mobile-type{display:block}@media (width<=720px){.properties-panel-metadata,.properties-panel-export-fields{grid-template-columns:1fr}}.mobile-bottom-panel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.mobile-tab-bar{border-bottom:1px solid var(--border);background:var(--panel);flex:none;display:flex}.mobile-tab{height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;flex:1 1 0;font-size:.82rem;font-weight:600;transition:color .12s,box-shadow .12s}.mobile-tab.is-active{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.mobile-tab-content{flex:auto;min-height:0;overflow:hidden}.mobile-tab-content>.panel-shell{border:none;border-radius:0;height:100%}.mobile-tab-content>.panel-shell>.panel-header{display:none}.toolbar-header{justify-content:space-between;align-items:center;gap:var(--space-5);min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);flex:none;display:flex;position:relative}.toolbar-group{align-items:center;gap:var(--space-3);min-width:0;display:flex}.toolbar-group-end{justify-content:flex-end}.toolbar-title{letter-spacing:0;padding:0 var(--space-2);margin:0;font-family:Arial,sans-serif;font-size:1rem;line-height:1}.toolbar-button{height:34px;font-size:.88rem}.toolbar-file-input{display:none}.toolbar-menu{position:relative}.toolbar-menu-dropdown{top:calc(100% + var(--space-2));z-index:100;min-width:160px;padding:var(--space-1) 0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-xl);position:absolute;left:0}.toolbar-menu-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;font-size:.88rem;display:flex}.toolbar-menu-item-check{width:1em;color:var(--text);flex-shrink:0;font-size:.8em;display:inline-block}.toolbar-menu-item:hover:not(:disabled){background:var(--hover)}.toolbar-menu-item-disabled,.toolbar-menu-item:disabled{color:var(--muted);cursor:default}.toolbar-menu-separator{height:1px;margin:var(--space-1) 0;background:var(--border)}.toolbar-status{color:var(--muted);white-space:nowrap;padding:0 var(--space-2);margin:0;font-size:.78rem}.toolbar-document{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}@media (width<=720px){.toolbar-menu-dropdown{left:auto;right:0}}:root{--palette-bg:#1f1f1f;--palette-surface-1:#2f2f2f;--palette-surface-2:#3f3f3f;--palette-surface-3:#434343;--palette-surface-4:#4a4a4a;--palette-surface-5:#636363;--palette-fg:#f3f3f3;--palette-fg-muted:#c6c6c6;--palette-fg-subtle:#9d9d9d;--palette-white:#fff;--palette-accent:#9fd0ff;--palette-accent-rgb:159, 208, 255;--palette-accent-strong:#c6e2ff;--palette-control-blue:#62beff;--palette-selection:#ff523b;--palette-selection-rgb:255, 82, 59;--palette-rotation:#a855f7;--palette-danger:#ff6e6e;--palette-danger-rgb:255, 110, 110;--palette-danger-soft:#f3d0d0;--bg:var(--palette-bg);--panel:var(--palette-surface-1);--panel-strong:var(--palette-surface-2);--panel-soft:var(--palette-surface-3);--panel-hover:var(--palette-surface-4);--panel-raised:var(--palette-surface-5);--sunken-soft:#0000001a;--sunken:#00000029;--text:var(--palette-fg);--muted:var(--palette-fg-muted);--muted-soft:var(--palette-fg-subtle);--border:#ffffff14;--border-strong:#ffffff29;--hover-weak:#ffffff0a;--hover:#ffffff0f;--icon-muted:#ffffff6b;--icon:#ffffffb3;--accent:var(--palette-accent);--accent-strong:var(--palette-accent-strong);--accent-wash:rgba(var(--palette-accent-rgb), .1);--accent-fill:rgba(var(--palette-accent-rgb), .15);--accent-border:rgba(var(--palette-accent-rgb), .3);--accent-focus:rgba(var(--palette-accent-rgb), .5);--accent-active:rgba(var(--palette-accent-rgb), .7);--accent-edge:rgba(var(--palette-accent-rgb), .95);--danger:var(--palette-danger);--danger-soft:var(--palette-danger-soft);--danger-fill:rgba(var(--palette-danger-rgb), .15);--danger-border:rgba(var(--palette-danger-rgb), .3);--danger-focus:rgba(var(--palette-danger-rgb), .5);--overlay-selection-stroke:var(--palette-selection);--overlay-selection-fill:var(--palette-white);--overlay-grid-stroke:rgba(var(--palette-selection-rgb), .5);--overlay-control-stroke:var(--palette-control-blue);--overlay-rotation-stroke:var(--palette-rotation);--shadow-sm:0 2px 6px #00000040;--shadow-md:0 8px 20px #00000059;--shadow-lg:0 10px 24px #19191933;--shadow-xl:0 24px 60px #0000003d;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:16px;--radius-sm:8px;--radius-md:12px;--radius-pill:999px;--control-height-sm:28px;--control-height-md:32px;--control-padding-x-sm:8px;--control-padding-x-md:12px;--control-icon-size:18px;--control-bg:var(--hover-weak);--control-bg-hover:var(--border);--control-bg-strong:var(--panel-strong);--control-bg-strong-hover:var(--panel-hover);--control-border:#ffffff17;--control-border-hover:var(--accent-border);--control-focus-ring:var(--accent-focus);--control-danger-border-hover:var(--danger-border);--control-danger-bg-hover:var(--danger-fill);--control-danger-fg-hover:var(--danger-soft);--control-danger-focus-ring:var(--danger-focus);--button-light-bg:#f2f2f2;--button-light-bg-hover:#fff;--button-light-fg:#303030}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:var(--bg);margin:0;font-family:Arial,sans-serif;overflow:hidden}button,input,textarea,select{font:inherit}@media (width<=1100px){body{overflow:auto}}.appShell{flex-direction:column;gap:10px;height:100vh;padding:10px;display:flex;overflow:hidden}.workspaceGrid{flex:auto;grid-template-columns:auto 320px 1fr;grid-template-areas:"objects properties canvas";gap:12px;min-height:0;display:grid;overflow:hidden}.objects-panel{grid-area:objects}.properties-panel{grid-area:properties}.canvas-panel{grid-area:canvas}@media (width<=1100px){.workspaceGrid{grid-template:"canvas canvas"minmax(0,1fr)"objects properties"minmax(280px,1fr)/auto 1fr}}@media (width<=720px){.appShell{padding:var(--space-3);gap:var(--space-3)}}.workspaceMobile{gap:var(--space-3);flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.workspaceMobile>.canvas-panel{flex:1 1 0;min-height:0}.workspaceMobile>.mobile-bottom-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);flex:0 0 45vh;min-height:200px;max-height:55vh}.ui-button{justify-content:center;align-items:center;gap:var(--space-2);min-width:0;height:var(--control-height-md);padding:0 var(--control-padding-x-md);border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text);cursor:pointer;font-size:.82rem;font-weight:600;transition:background .12s,border-color .12s,color .12s,transform .12s;display:inline-flex}.ui-button:hover:not(:disabled){border-color:var(--control-border-hover);background:var(--control-bg-hover)}.ui-button:focus-visible{outline:2px solid var(--control-focus-ring);outline-offset:2px}.ui-button:active:not(:disabled){transform:translateY(1px)}.ui-button:disabled{opacity:.45;cursor:not-allowed}.ui-button-sm{height:var(--control-height-sm);padding:0 var(--control-padding-x-sm);font-size:.78rem}.ui-button-icon{width:var(--control-height-md);padding:0}.ui-button-icon.ui-button-sm{width:var(--control-height-sm)}.ui-button-light{background:var(--button-light-bg);color:var(--button-light-fg);border-color:#0000}.ui-button-light:hover:not(:disabled){background:var(--button-light-bg-hover)}.ui-button-danger:hover:not(:disabled){border-color:var(--control-danger-border-hover);background:var(--control-danger-bg-hover);color:var(--control-danger-fg-hover)}.ui-button-danger:focus-visible{outline-color:var(--control-danger-focus-ring)}.panel-shell{border:1px solid var(--border);background:var(--panel);border-radius:12px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-header{padding:var(--space-4);border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:start;gap:12px;display:flex}.panel-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--muted-soft);margin:0;font-size:.68rem}.panel-title{letter-spacing:0;margin:0;font-family:Arial,sans-serif;font-size:.96rem;font-weight:700}.panel-body{flex:auto;min-height:0;overflow:auto}
