.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-board-surface{width:100%;min-width:100%;height:100%;min-height:100%;position:relative;overflow:hidden}.canvas-panel-board{will-change:transform;position:absolute;inset:0}.canvas-panel-meta-label{color:var(--muted-soft);text-transform:uppercase;letter-spacing:.12em;margin:0 0 4px;font-size:.66rem}.canvas-panel-scene{user-select:none;pointer-events:none;position:absolute;box-shadow:0 18px 36px #0003}.canvas-panel-scene.is-selected{box-shadow:0 0 0 1px #9fd0ff29,0 20px 36px #0003}.canvas-panel-scene.is-selected .canvas-panel-artboard{box-shadow:inset 0 0 0 2px #62beff}.canvas-panel-scene.is-dragging{z-index:2}.canvas-panel-badge{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;background:#ffffff0a;border:1px solid #ffffff17;border-radius:999px;padding:4px 8px;font-size:.72rem}.canvas-panel-artboard{pointer-events:none;background:#f7f5f0;width:100%;height:100%;position:relative;overflow:hidden}.canvas-panel-pixel-grid{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.canvas-panel-svg{pointer-events:none;width:100%;height:100%;display:block;position:relative}.canvas-panel-overlay-svg{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}.canvas-panel-shape-path path{fill:none}.canvas-panel-selection-line{fill:none;stroke:var(--overlay-selection-stroke);stroke-width:1px;vector-effect:non-scaling-stroke}.canvas-panel-selection-node{fill:var(--overlay-selection-fill);stroke:var(--overlay-selection-stroke);stroke-width:1px;vector-effect:non-scaling-stroke}.canvas-panel-selection-node.is-active{fill:var(--overlay-selection-stroke)}.canvas-panel-selection-node.is-anchor{stroke:var(--overlay-rotation-stroke)}.canvas-panel-selection-node.is-extent{stroke:var(--overlay-control-stroke)}.canvas-panel-selection-rotation-center{fill:var(--overlay-selection-fill);stroke:var(--overlay-rotation-stroke);stroke-width:1px;vector-effect:non-scaling-stroke}.canvas-panel-selection-rotation-guide{stroke:var(--overlay-rotation-stroke);stroke-width:1px;stroke-linecap:round;vector-effect:non-scaling-stroke}.canvas-panel-selection-radius-guide{fill:none;stroke:var(--overlay-control-stroke);stroke-width:1px;vector-effect:non-scaling-stroke}.canvas-panel-selection-control-line{stroke:var(--overlay-control-stroke);stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-opacity:.9}.canvas-panel-selection-control-node{fill:var(--overlay-selection-fill);stroke:var(--overlay-control-stroke);stroke-width:1px;vector-effect:non-scaling-stroke}.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{background:var(--bg-top);backdrop-filter:blur(10px);border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:6px;padding:6px;display:flex;box-shadow:0 10px 24px #1919192e}.canvas-panel-controls .ui-button{background:var(--panel-strong);border-color:var(--border);box-shadow:0 2px 6px #00000040}.canvas-panel-controls .ui-button:hover:not(:disabled){background:#636363;border-color:#ffffff2e}.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{color:#eef8ff;background:#62beff42;border-color:#62beff73}.canvas-panel-toggle-button.is-active:hover:not(:disabled){background:#62beff57;border-color:#62beff8c}.canvas-panel-empty-state{color:var(--muted);text-align:center;border:1px dashed #ffffff1f;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:#ffffff29;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:#ffffff6b;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:#ffffffb3}.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:#9fd0ff80;outline:none;box-shadow:0 0 0 1px #9fd0ff2e}.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 #9fd0fff2,0 0 0 1px #9fd0ff29}.object-tree-row.is-drop-after{box-shadow:inset 0 -2px #9fd0fff2,0 0 0 1px #9fd0ff29}.object-tree-row.is-drop-inside{background:#9fd0ff14;border-color:#9fd0ff66}.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{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;background:#ffffff0d;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:#ff6e5a}.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{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;background:#9fd0ff24;border-radius:999px;align-items:center;padding:4px 8px;font-size:.68rem;font-weight:700;display:flex}.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:#0000001f;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:#00000014;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{min-height:56px;color:var(--muted);border:1px dashed #ffffff1f;border-radius:8px;align-items:center;padding:10px 12px;line-height:1.4;display:flex}.properties-panel-field-list{flex-direction:column;align-items:start;gap:10px;display:flex}.properties-panel-field-row{flex-direction:column;align-self:stretch;align-items:stretch;gap:4px;display:flex}.properties-panel-field-label{color:var(--muted-soft);text-transform:uppercase;letter-spacing:.12em;font-size:.64rem}.properties-panel-field-input{border:1px solid var(--border);width:100%;min-width:0;color:var(--text);font:inherit;background:#00000029;border-radius:8px;padding:6px 8px;font-size:.82rem;line-height:1.3}.properties-panel-field-input-row{align-items:center;display:flex;position:relative}.properties-panel-field-preview{pointer-events:none;text-overflow:ellipsis;white-space:nowrap;max-width:45%;color:color-mix(in srgb, var(--text) 58%, transparent);font-variant-numeric:tabular-nums;font-size:.72rem;position:absolute;top:50%;right:8px;overflow:hidden;transform:translateY(-50%)}.properties-panel-field-input-row .properties-panel-field-input{padding-right:88px}.properties-panel-field-input:focus{border-color:#9fd0ff99;outline:none;box-shadow:0 0 0 2px #9fd0ff1f}.properties-panel-field-input.has-error{border-color:#ff5a46b3}.properties-panel-field-input.has-error:focus{border-color:#ff5a46e6;box-shadow:0 0 0 2px #ff5a4626}.properties-panel-field-error{color:#ff6e5a;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:#0000001f;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);cursor:pointer;background:#00000029;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{background:#0003;border-color:#9fd0ff38}.properties-panel-field-input-boolean:focus-visible{border-color:#9fd0ff99;outline:none;box-shadow:0 0 0 2px #9fd0ff1f}.properties-panel-field-input-boolean:checked{background-color:#9fd0ff1f;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;border-color:#9fd0ffb3}.properties-panel-tip{border:1px solid var(--border);color:var(--muted);background:#9fd0ff0d;border-radius:8px;margin:4px 0 0;padding:8px 10px;font-size:.74rem;line-height:1.5}.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);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,#ffffff0f)}.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{--bg:#2f2f2f;--bg-top:#3c3c3c;--panel:#4a4a4a;--panel-strong:#565656;--panel-soft:#434343;--border:#ffffff14;--text:#f3f3f3;--muted:#c6c6c6;--muted-soft:#9d9d9d;--accent:#9fd0ff;--accent-strong:#c6e2ff;--danger:#ff6e6e;--danger-soft:#f3d0d0;--danger-muted:#ff6e6e1f;--overlay-selection-stroke:#ff523b;--overlay-selection-fill:#fff;--overlay-control-stroke:#62beff;--overlay-rotation-stroke:#a855f7;--shadow: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-border:#ffffff17;--control-bg:#ffffff0a;--control-bg-strong:#3f3f3f;--control-bg-strong-hover:#4a4a4a;--control-border-hover:#9fd0ff47;--control-bg-hover:#ffffff14;--control-focus-ring:#9fd0ff73;--control-danger-border-hover:#ff6e6e4d;--control-danger-bg-hover:#ff6e6e1f;--control-danger-fg-hover:#f3d0d0;--control-danger-focus-ring:#ff6e6e52}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:linear-gradient(180deg, var(--bg-top) 0%, var(--bg) 100%);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{color:#303030;background:#f2f2f2;border-color:#0000}.ui-button-light:hover:not(:disabled){background:#fff}.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}
