:root{--bg-dark:#f6e8e0;--bg-panel:#fff;--bg-surface:#deceed;--bg-input:#f7f3b7;--text-primary:#10121c;--text-secondary:#5e5b8c;--accent:#3388de;--accent-hover:#36c5f4;--border:#b0a7b8;--danger:#ec273f;--success:#5ab552;--warning:#f3a833;--white:#fff;--accent-tint:#3388de1a;--accent-light:#3388de26;--accent-mid:#3388de33;--accent-hover-bg:#3388de40;--accent-outline:#3388de4d;--success-tint:#5ab5521a;--success-light:#5ab55226;--success-hover-bg:#5ab55240;--success-outline:#5ab5524d;--danger-tint:#ec273f1a;--danger-light:#ec273f26;--danger-mid:#ec273f33;--danger-hover-bg:#ec273f40;--danger-outline:#ec273f4d;--warning-light:#f3a83326;--warning-hover-bg:#f3a83340;--warning-outline:#f3a8334d;--radius-sm:3px;--radius:4px;--radius-lg:6px;--radius-xl:8px;--transition:all .15s;--label-spacing:.05em;--text-xs:9px;--text-sm:10px;--text-base:11px;--text-md:12px;--text-lg:14px;--text-xl:18px}:root.dark{--bg-dark:#1a1a2e;--bg-panel:#16213e;--bg-surface:#1f2b47;--bg-input:#0f1a30;--text-primary:#e8e8f0;--text-secondary:#8890a8;--accent:#3388de;--accent-hover:#36c5f4;--border:#2a3550;--danger:#ec273f;--success:#5ab552;--warning:#f3a833;--white:#fff;--accent-tint:#3388de1a;--accent-light:#3388de26;--accent-mid:#3388de33;--accent-hover-bg:#3388de40;--accent-outline:#3388de4d;--success-tint:#5ab5521a;--success-light:#5ab55226;--success-hover-bg:#5ab55240;--success-outline:#5ab5524d;--danger-tint:#ec273f1a;--danger-light:#ec273f26;--danger-mid:#ec273f33;--danger-hover-bg:#ec273f40;--danger-outline:#ec273f4d;--warning-light:#f3a83326;--warning-hover-bg:#f3a83340;--warning-outline:#f3a8334d}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-dark);width:100%;height:100%;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}#app{zoom:var(--ui-scale,1);flex-direction:column;width:100%;height:100%;display:flex}.top-bar{padding:0 10px;padding-top:env(safe-area-inset-top,0px);background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;min-height:36px;display:flex}.tools-grid{grid-template-columns:repeat(auto-fill,28px);gap:2px;padding:4px;display:grid}.tools-grid .tool-btn{aspect-ratio:1;font-size:var(--text-md);border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:0}.snap-control{align-items:center;gap:4px;display:flex}.snap-label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--label-spacing);color:var(--text-secondary);font-weight:600}.snap-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-base);cursor:pointer;outline:none;padding:2px 4px}.snap-select:focus{border-color:var(--accent)}.snap-custom-input{background:var(--bg-input);border:1px solid var(--accent);border-radius:var(--radius);width:42px;color:var(--text-primary);font-size:var(--text-base);outline:none;padding:2px 4px;font-family:monospace}.toolbar-logo{width:28px;height:28px;color:var(--accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.toolbar-logo:hover{color:var(--text-primary)}.toolbar-logo svg{width:100%;height:100%}.prefs-trigger{flex-shrink:0;position:relative}.prefs-dropdown{z-index:10001;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;padding:6px 0;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.prefs-row{font-size:var(--text-base);color:var(--text-primary);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:6px 12px;display:flex}.prefs-row:hover{background:var(--bg-input)}.toggle{flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-track{background:var(--bg-input);border:1px solid var(--border);cursor:pointer;border-radius:10px;transition:background .15s,border-color .15s;position:absolute;inset:0}.toggle-track:after{content:"";background:var(--text-secondary);border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.toggle input:checked+.toggle-track{background:var(--accent);border-color:var(--accent)}.toggle input:checked+.toggle-track:after{background:#fff;transform:translate(16px)}.prefs-scale{cursor:default}.prefs-scale-val{font-size:var(--text-xs);text-align:center;min-width:32px;color:var(--text-secondary)}.prefs-scale-btn{width:24px;height:24px;font-size:var(--text-lg);justify-content:center;align-items:center;padding:0;display:flex}.prefs-action{width:100%;color:var(--text-primary);font-size:var(--text-base);text-align:left;cursor:pointer;background:0 0;border:none;padding:6px 12px;display:block}.prefs-action:hover{background:var(--bg-input)}.toolbar-sep{background:var(--border);width:1px;height:24px;margin:0 8px}.tool-btn{border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-lg);transition:var(--transition);background:0 0;border:1px solid #0000;align-items:center;gap:3px;padding:4px 8px;display:flex}.tool-btn:hover:not(:disabled){color:var(--text-primary);background:var(--bg-surface)}.tool-btn.active{color:var(--accent);border-color:var(--accent);background:var(--accent-tint)}.tool-btn:disabled{opacity:.3;cursor:default}.tool-btn.snap-active{color:var(--success);border-color:var(--success);background:var(--success-tint)}.tool-key{font-size:var(--text-xs);opacity:.6}.action-btn{border-radius:var(--radius);cursor:pointer;font-size:var(--text-md);transition:var(--transition);padding:4px 12px;font-weight:500}.export-btn{background:var(--success-light);color:var(--success);border:1px solid var(--success-outline)}.export-btn:hover{background:var(--success-hover-bg);border-color:var(--success)}.save-btn{background:var(--accent-light);color:var(--accent);border:1px solid var(--accent-outline)}.save-btn:hover{background:var(--accent-hover-bg);border-color:var(--accent)}.load-btn{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border)}.load-btn:hover{background:var(--bg-input);color:var(--text-primary)}.clear-btn{background:var(--danger-tint);color:var(--danger);border:1px solid var(--danger-hover-bg)}.clear-btn:hover{background:var(--danger-mid);border-color:var(--danger)}.import-btn{background:var(--warning-light);color:var(--warning);border:1px solid var(--warning-outline)}.import-btn:hover{background:var(--warning-hover-bg);border-color:var(--warning)}.main-area{flex:1;display:flex;overflow:hidden}.panel-wrapper{background:var(--bg-panel);flex-direction:column;display:flex;overflow:hidden}.panel-wrapper.docked{width:var(--panel-width,200px);min-width:var(--panel-min-w,120px);max-width:var(--panel-max-w,360px);border-right:1px solid var(--border);flex-shrink:0}.panel-wrapper.docked[dockside=right]{border-right:none;border-left:1px solid var(--border)}.panel-wrapper.floating{border:1px solid var(--border);border-radius:var(--radius-lg);max-height:calc(100vh - 48px);min-width:var(--panel-min-w,120px);max-width:var(--panel-max-w,360px);position:fixed;box-shadow:0 8px 32px #00000026}.panel-wrapper.floating.dragging,.panel-wrapper.floating.resizing{opacity:.9;transition:none;box-shadow:0 12px 48px #0003}.panel-resize-handle{cursor:nwse-resize;touch-action:none;z-index:2;width:18px;height:18px;position:absolute;bottom:0;right:0}.panel-resize-handle:before,.panel-resize-handle:after{content:"";border-bottom:1.5px solid var(--text-secondary);opacity:.4;position:absolute;right:4px}.panel-resize-handle:before{width:10px;bottom:5px}.panel-resize-handle:after{width:5px;bottom:9px}.panel-header{border-bottom:1px solid var(--border);font-size:var(--text-base);text-transform:uppercase;letter-spacing:var(--label-spacing);color:var(--text-secondary);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;font-weight:600;display:flex}.panel-header:active{cursor:grabbing}.panel-wrapper.floating .panel-header{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--bg-surface)}.panel-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.panel-header-actions{align-items:center;gap:4px;display:flex}.panel-minimize-btn{color:var(--text-secondary);cursor:pointer;font-size:var(--text-md);transition:var(--transition);background:0 0;border:none;padding:0 4px;line-height:1}.panel-minimize-btn:hover{color:var(--text-primary)}.panel-body{flex:1;min-height:0;overflow-y:auto}.panel-wrapper.collapsed .panel-body{display:none}.panel-wrapper.collapsed .panel-header{border-bottom:none}.objlist-actions{border-bottom:1px solid var(--border);gap:4px;padding:6px 10px;display:flex}.objlist-action-btn{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-base);cursor:pointer;transition:var(--transition);flex:1;padding:4px 0}.objlist-action-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint)}.objlist-action-btn:disabled{opacity:.3;cursor:default}.objlist-empty{text-align:center;font-size:var(--text-base);color:var(--text-secondary);opacity:.6;padding:20px 12px}.objlist-items{flex-direction:column;display:flex}.objlist-item{cursor:pointer;border-bottom:1px solid var(--border);font-size:var(--text-base);align-items:center;gap:6px;padding:6px 10px;transition:background .1s;display:flex}.objlist-item:hover{background:var(--bg-surface)}.objlist-item.dragging{opacity:.4}.objlist-item.drag-over{background:var(--accent-mid);border-top:2px solid var(--accent)}.insertion-line{background:var(--accent);pointer-events:none;height:2px;margin:0}.objlist-item.selected{background:var(--accent-light);border-left:2px solid var(--accent)}.objlist-item.is-group{background:#3388de0d;font-weight:600}.objlist-item.is-child{border-left:2px solid var(--border);padding-left:24px}.objlist-group-icon{color:var(--accent);font-size:var(--text-md);flex-shrink:0}.objlist-chevron{color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;transition:transform .15s}.objlist-chevron:hover{color:var(--text-primary)}.objlist-color{background:var(--accent);border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:10px;height:10px}.objlist-name{text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize;cursor:default;flex:1;overflow:hidden}.objlist-name-input{background:var(--bg-input);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-md);outline:none;flex:1;min-width:0;padding:1px 4px;font-family:inherit}.objlist-op{border-radius:var(--radius-sm);font-size:var(--text-xs);text-transform:uppercase;cursor:pointer;border:none;flex-shrink:0;padding:1px 5px;font-weight:600}.objlist-op.solid{background:var(--accent-mid);color:var(--accent)}.objlist-op.hole{background:var(--danger-mid);color:var(--danger)}.objlist-vis{font-size:var(--text-xs);cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;transition:color .15s}.objlist-vis:hover{color:var(--text-primary)}.objlist-vis.is-hidden{color:var(--border);opacity:.5}.objlist-delete{color:var(--text-secondary);cursor:pointer;font-size:var(--text-md);opacity:0;background:0 0;border:none;flex-shrink:0;padding:0 2px;transition:opacity .1s}.objlist-item:hover .objlist-delete{opacity:1}.objlist-delete:hover{color:var(--danger)}.sidebar-tabs{border-bottom:1px solid var(--border);display:flex}.sidebar-tab{color:var(--text-secondary);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--label-spacing);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:6px 0;font-weight:600}.sidebar-tab:hover{color:var(--text-primary);background:var(--bg-surface)}.sidebar-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.shape-list{grid-template-columns:repeat(auto-fill,32px);gap:4px;padding:10px;display:grid}.shape-btn{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-primary);cursor:pointer;transition:var(--transition);justify-content:center;align-items:center;padding:0;display:flex}.shape-btn:hover{background:var(--accent);color:var(--white);border-color:var(--accent)}.shape-btn svg{width:20px;height:20px}.prop-empty{text-align:center;font-size:var(--text-base);color:var(--text-secondary);opacity:.6;padding:20px 12px}.prop-section{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:8px 10px;display:flex}.prop-section:last-child{border-bottom:none}.section-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--label-spacing);color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:4px;font-weight:600}.prop-row{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.prop-row-2{grid-template-columns:1fr 1fr;gap:6px;display:grid}.slider-row{align-items:center;gap:6px;display:flex}.slider-row label,.slider-row span{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--label-spacing);flex-shrink:0;min-width:14px;font-weight:600}.slider-row input[type=range]{min-width:0;height:4px;accent-color:var(--accent);cursor:pointer;flex:1}.number-input.compact{align-items:center;gap:2px;min-width:85px;display:flex}.number-input.compact input{width:62px;padding:2px 4px}.number-input{flex-direction:column;gap:2px;display:flex}.number-input label,.number-input span{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--label-spacing);font-weight:600}.number-input .axis-x,.slider-row .axis-x{color:var(--danger)}.number-input .axis-y,.slider-row .axis-y{color:var(--success)}.number-input .axis-z,.slider-row .axis-z{color:var(--accent)}.number-input .row{align-items:center;gap:4px;display:flex}.number-input input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-size:var(--text-base);outline:none;padding:4px;font-family:monospace}.number-input input:focus{border-color:var(--accent);background:var(--bg-panel)}.number-input .unit{font-size:var(--text-sm);color:var(--text-secondary);min-width:16px}.name-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-size:var(--text-md);outline:none;padding:4px 6px;font-family:inherit}.name-input:focus{border-color:var(--accent);background:var(--bg-panel)}.toggle-btn{color:var(--text-primary);cursor:pointer;font-size:var(--text-md);background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:6px 0;display:flex}.toggle-track{background:var(--bg-surface);border:1px solid var(--border);border-radius:9px;flex-shrink:0;width:32px;height:18px;transition:background .2s;position:relative}.toggle-btn.active .toggle-track{background:var(--accent);border-color:var(--accent)}.toggle-thumb{background:var(--white);border-radius:50%;width:12px;height:12px;transition:transform .2s;position:absolute;top:2px;left:2px}.toggle-btn.active .toggle-thumb{transform:translate(14px)}.delete-btn{background:var(--danger-light);border:1px solid var(--danger-outline);border-radius:var(--radius);width:100%;color:var(--danger);cursor:pointer;font-size:var(--text-md);padding:6px}.delete-btn:hover{background:var(--danger-hover-bg);border-color:var(--danger)}.align-row{align-items:center;gap:4px;display:flex}.align-axis-label{font-size:var(--text-sm);text-align:center;flex-shrink:0;width:14px;font-weight:700}.align-axis-label:first-of-type{color:var(--danger)}.align-row:nth-child(2) .align-axis-label{color:var(--success)}.align-row:nth-child(3) .align-axis-label{color:var(--accent)}.align-btn{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;font-size:var(--text-lg);text-align:center;flex:1;padding:4px 0}.align-btn:hover{border-color:var(--accent);background:var(--accent-tint)}.distribute-row{gap:6px;display:flex}.distribute-btn{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;font-size:var(--text-base);text-align:center;flex:1;padding:4px 0}.distribute-btn:hover{border-color:var(--accent);background:var(--accent-tint)}.statusbar{background:var(--bg-panel);border-top:1px solid var(--border);height:24px;padding:0 12px;padding-bottom:env(safe-area-inset-bottom,0px);font-size:var(--text-base);flex-shrink:0;align-items:center;gap:16px;display:flex}.status-item{color:var(--text-secondary)}.status-item.accent{color:var(--accent)}.spacer{flex:1}.color-swatches{flex-wrap:wrap;gap:4px;display:flex}.color-swatch{border-radius:var(--radius-sm);cursor:pointer;border:2px solid #0000;width:18px;height:18px;transition:border-color .15s,transform .1s}.color-swatch:hover{transform:scale(1.2)}.color-swatch.active{border-color:var(--text-primary)}.dim-overlay{pointer-events:none;z-index:10;will-change:transform;position:absolute;inset:0}.measure-overlay{pointer-events:none;z-index:11;position:absolute;inset:0}.move-panel.svelte-ytxh3m{flex-direction:column;gap:6px;display:flex}.move-row.svelte-ytxh3m{font-size:var(--text-base);align-items:center;gap:6px;display:flex}.move-label.svelte-ytxh3m{min-width:70px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:600;font-size:var(--text-sm)}.move-select.svelte-ytxh3m{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-base);cursor:pointer;outline:none;padding:2px 4px}.move-select.svelte-ytxh3m:focus{border-color:var(--accent)}.move-input.svelte-ytxh3m{background:var(--bg-input);border:1px solid var(--accent);border-radius:var(--radius);width:42px;color:var(--text-primary);font-size:var(--text-base);outline:none;padding:2px 4px;font-family:monospace}.rotate-panel.svelte-13gavf4{flex-direction:column;gap:6px;display:flex}.rotate-row.svelte-13gavf4{font-size:var(--text-base);align-items:center;gap:6px;display:flex}.rotate-label.svelte-13gavf4{min-width:70px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:600;font-size:var(--text-sm)}.rotate-select.svelte-13gavf4{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-base);cursor:pointer;outline:none;padding:2px 4px}.rotate-select.svelte-13gavf4:focus{border-color:var(--accent)}.rotate-input.svelte-13gavf4{background:var(--bg-input);border:1px solid var(--accent);border-radius:var(--radius);width:42px;color:var(--text-primary);font-size:var(--text-base);outline:none;padding:2px 4px;font-family:monospace}.scale-panel.svelte-7zw2qb{flex-direction:column;gap:6px;display:flex}.scale-row.svelte-7zw2qb{font-size:var(--text-base);align-items:center;gap:6px;display:flex}.scale-label.svelte-7zw2qb{min-width:70px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:600;font-size:var(--text-sm)}.scale-select.svelte-7zw2qb{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-base);cursor:pointer;outline:none;padding:2px 4px}.scale-select.svelte-7zw2qb:focus{border-color:var(--accent)}.scale-input.svelte-7zw2qb{background:var(--bg-input);border:1px solid var(--accent);border-radius:var(--radius);width:42px;color:var(--text-primary);font-size:var(--text-base);outline:none;padding:2px 4px;font-family:monospace}.measure-panel.svelte-18z7kml{flex-direction:column;gap:4px;display:flex}.measure-hint.svelte-18z7kml{font-size:var(--text-base);color:var(--text-secondary);margin:0}.polygon-panel.svelte-1xu98kn{flex-direction:column;gap:4px;display:flex}.polygon-hint.svelte-1xu98kn{font-size:var(--text-base);color:var(--text-secondary);margin:0}.zoom-panel.svelte-us7yyc{gap:4px;display:flex}.zoom-btn.svelte-us7yyc{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-base);cursor:pointer;transition:var(--transition);flex:1;padding:4px 0}.zoom-btn.svelte-us7yyc:hover{border-color:var(--accent);background:var(--accent-tint)}.array-panel.svelte-1c3b5po{flex-direction:column;gap:6px;display:flex}.mode-toggle.svelte-1c3b5po{gap:2px;margin-bottom:2px;display:flex}.mode-btn.svelte-1c3b5po{background:var(--bg-input);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;text-align:center;text-transform:uppercase;letter-spacing:.05em;border-radius:4px;flex:1;padding:4px 0;font-weight:600}.mode-btn.active.svelte-1c3b5po{background:var(--accent);color:#fff;border-color:var(--accent)}.move-row.svelte-1c3b5po{font-size:var(--text-base);align-items:center;gap:6px;display:flex}.move-label.svelte-1c3b5po{min-width:46px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:600;font-size:var(--text-sm)}.array-input.svelte-1c3b5po{background:var(--bg-input);border:1px solid var(--border);width:60px;color:var(--text-primary);font-size:var(--text-md);border-radius:4px;outline:none;padding:3px 6px;font-family:monospace}.array-input.svelte-1c3b5po:focus{border-color:var(--accent)}.array-axis-group.svelte-1c3b5po{gap:2px;display:flex}.array-axis-btn.svelte-1c3b5po{background:var(--bg-input);border:1px solid var(--border);font-size:var(--text-sm);cursor:pointer;border-radius:3px;padding:2px 8px;font-weight:600}.array-axis-btn.active.svelte-1c3b5po{background:var(--accent);color:#fff;border-color:var(--accent)}.array-unit.svelte-1c3b5po{font-size:var(--text-sm);color:var(--text-secondary);min-width:14px}.array-apply-btn.svelte-1c3b5po{width:100%;color:var(--success);cursor:pointer;font-size:var(--text-base);background:#5ab55226;border:1px solid #5ab5524d;border-radius:4px;padding:5px;font-weight:600}.array-apply-btn.svelte-1c3b5po:hover:not(:disabled){border-color:var(--success);background:#5ab55240}.array-apply-btn.svelte-1c3b5po:disabled{opacity:.4;cursor:default}.objlist-breadcrumb.svelte-gv5b3h{background:var(--bg-input);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:4px 8px;display:flex}.breadcrumb-btn.svelte-gv5b3h{color:var(--accent);cursor:pointer;font-size:var(--text-md);background:0 0;border:none;padding:2px 4px}.breadcrumb-btn.svelte-gv5b3h:hover{text-decoration:underline}.breadcrumb-name.svelte-gv5b3h{font-size:var(--text-base);color:var(--text-primary);font-weight:600}.objlist-chevron.svelte-gv5b3h{color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;transition:transform .15s}.objlist-chevron.svelte-gv5b3h:hover{color:var(--text-primary)}.insertion-line.svelte-gv5b3h{background:var(--accent);pointer-events:none;height:2px}.viewport-wrap.svelte-10js0q2{flex:1;min-width:0;position:relative}.viewport-wrap.svelte-10js0q2 canvas{width:100%;height:100%;display:block}.prop-empty.svelte-1sjekv1{text-align:center;font-size:var(--text-base);color:var(--text-secondary);opacity:.6;padding:20px 12px}.prop-row.svelte-1sjekv1{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.name-input.svelte-1sjekv1{background:var(--bg-input);border:1px solid var(--border);width:100%;color:var(--text-primary);font-size:var(--text-md);border-radius:4px;outline:none;padding:4px 6px;font-family:inherit}.name-input.svelte-1sjekv1:focus{border-color:var(--accent);background:#fff}.align-row.svelte-1sjekv1{align-items:center;gap:4px;display:flex}.align-axis-label.svelte-1sjekv1{font-size:var(--text-sm);text-align:center;flex-shrink:0;width:14px;font-weight:700}.align-btn.svelte-1sjekv1{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;font-size:var(--text-lg);text-align:center;border-radius:4px;flex:1;padding:4px 0}.align-btn.svelte-1sjekv1:hover{border-color:var(--accent);background:#3388de1a}.distribute-row.svelte-1sjekv1{gap:6px;display:flex}.distribute-btn.svelte-1sjekv1{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;font-size:var(--text-base);text-align:center;border-radius:4px;flex:1;padding:4px 0}.distribute-btn.svelte-1sjekv1:hover{border-color:var(--accent);background:#3388de1a}.text-font-row.svelte-1sjekv1{grid-template-columns:1fr;gap:4px;margin-top:6px}.builtin-font-list.svelte-1sjekv1{flex-wrap:wrap;gap:4px;display:flex}.builtin-font-btn.svelte-1sjekv1{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-xs);cursor:pointer;transition:var(--transition);padding:2px 6px}.builtin-font-btn.svelte-1sjekv1:hover{border-color:var(--accent)}.builtin-font-btn.active.svelte-1sjekv1{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.font-combo.svelte-1sjekv1{position:relative}.font-combo-input.svelte-1sjekv1{font-size:var(--text-sm)}.font-dropdown.svelte-1sjekv1{z-index:10;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);max-height:150px;margin:0;padding:0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.font-item.svelte-1sjekv1{cursor:pointer;font-size:var(--text-base);align-items:baseline;gap:6px;padding:4px 8px;display:flex}.font-item.svelte-1sjekv1:hover{background:var(--bg-input)}.font-family.svelte-1sjekv1{color:var(--text-primary)}.font-style.svelte-1sjekv1{color:var(--text-secondary);font-size:var(--text-xs)}.font-upload-label.svelte-1sjekv1{font-size:var(--text-sm);color:var(--accent);cursor:pointer;text-decoration:underline}.font-status.svelte-1sjekv1{font-size:var(--text-sm);color:var(--text-secondary);margin-top:2px}.group-info.svelte-1sjekv1{font-size:var(--text-sm);color:var(--text-secondary)}.ltp-panel.svelte-1hinexl{flex-direction:column;gap:10px;padding:10px;display:flex}.ltp-section.svelte-1hinexl{flex-direction:column;gap:6px;display:flex}.ltp-label.svelte-1hinexl{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:600}.ltp-hint.svelte-1hinexl{font-size:var(--text-base);color:var(--text-secondary);line-height:1.5}.ltp-hint.ltp-ok.svelte-1hinexl{color:var(--success)}.ltp-empty.svelte-1hinexl{font-size:var(--text-base);color:var(--text-secondary);opacity:.6;text-align:center;padding:8px 0}.ltp-list.svelte-1hinexl{flex-direction:column;gap:4px;list-style:none;display:flex}.ltp-item.svelte-1hinexl{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base);align-items:center;gap:6px;padding:5px 8px;display:flex}.ltp-index.svelte-1hinexl{font-size:var(--text-sm);color:var(--accent);min-width:14px;font-weight:700}.ltp-name.svelte-1hinexl{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);flex:1;overflow:hidden}.ltp-y.svelte-1hinexl{font-size:var(--text-sm);color:var(--text-secondary);flex-shrink:0;font-family:monospace}.ltp-actions.svelte-1hinexl{flex-shrink:0;gap:2px;display:flex}.ltp-btn.svelte-1hinexl{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--text-base);transition:var(--transition);background:0 0;padding:1px 5px;line-height:1.4}.ltp-btn.svelte-1hinexl:hover:not(:disabled){background:var(--bg-input);color:var(--text-primary)}.ltp-btn.svelte-1hinexl:disabled{opacity:.3;cursor:default}.ltp-btn.danger.svelte-1hinexl:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.ltp-footer.svelte-1hinexl{gap:6px;display:flex}.ltp-cancel-btn.svelte-1hinexl{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-base);flex:1;padding:6px;font-weight:600}.ltp-cancel-btn.svelte-1hinexl:hover{color:var(--text-primary);background:var(--bg-input)}.ltp-loft-btn.svelte-1hinexl{background:var(--accent-light);border:1px solid var(--accent-outline);border-radius:var(--radius);color:var(--accent);cursor:pointer;font-size:var(--text-base);transition:var(--transition);flex:2;padding:6px;font-weight:600}.ltp-loft-btn.svelte-1hinexl:hover:not(:disabled){background:var(--accent-hover-bg);border-color:var(--accent)}.ltp-loft-btn.svelte-1hinexl:disabled{opacity:.35;cursor:default}.ltp-keep-btn.svelte-1hinexl{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:var(--text-base);flex:1;padding:6px;font-weight:600}.ltp-keep-btn.svelte-1hinexl:hover{color:var(--text-primary)}.ltp-delete-btn.svelte-1hinexl{background:var(--danger-light);border:1px solid var(--danger-outline);border-radius:var(--radius);color:var(--danger);cursor:pointer;font-size:var(--text-base);transition:var(--transition);flex:1;padding:6px;font-weight:600}.ltp-delete-btn.svelte-1hinexl:hover{background:var(--danger-hover-bg);border-color:var(--danger)}.browser-overlay.svelte-1w4nl1l{z-index:10000;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.browser-popup.svelte-1w4nl1l{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:320px;box-shadow:0 4px 24px #0003}.browser-header.svelte-1w4nl1l{border-bottom:1px solid var(--border);font-size:var(--text-lg);justify-content:space-between;align-items:center;padding:10px 12px;font-weight:600;display:flex}.browser-close.svelte-1w4nl1l{font-size:var(--text-xl);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;line-height:1}.browser-close.svelte-1w4nl1l:hover{color:var(--text-primary)}.browser-body.svelte-1w4nl1l{text-align:center;padding:16px}.browser-load-btn.svelte-1w4nl1l{background:var(--accent);color:#fff;border-radius:var(--radius);font-size:var(--text-md);cursor:pointer;border:none;padding:8px 20px;font-weight:500}.browser-load-btn.svelte-1w4nl1l:hover:not(:disabled){opacity:.9}.browser-load-btn.svelte-1w4nl1l:disabled{opacity:.5;cursor:default}.browser-hint.svelte-1w4nl1l{font-size:var(--text-sm);color:var(--text-secondary);margin-top:8px}.browser-error.svelte-1w4nl1l{background:var(--danger-light);color:var(--danger);border-radius:var(--radius);font-size:var(--text-sm);margin-bottom:8px;padding:6px 8px}.loft-tool-overlay.svelte-1n46o8q{z-index:10000;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loft-tool-popup.svelte-1n46o8q{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:300px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 24px #0003}.loft-tool-header.svelte-1n46o8q{border-bottom:1px solid var(--border);font-size:var(--text-lg);justify-content:space-between;align-items:center;padding:10px 12px;font-weight:600;display:flex}.loft-tool-close.svelte-1n46o8q{font-size:var(--text-xl);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;line-height:1}.loft-tool-close.svelte-1n46o8q:hover{color:var(--text-primary)}.save-modal-overlay.svelte-1n46o8q{z-index:10000;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.save-modal-popup.svelte-1n46o8q{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:320px;box-shadow:0 4px 24px #0003}.save-modal-header.svelte-1n46o8q{border-bottom:1px solid var(--border);font-size:var(--text-lg);justify-content:space-between;align-items:center;padding:10px 12px;font-weight:600;display:flex}.save-modal-close.svelte-1n46o8q{font-size:var(--text-xl);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;line-height:1}.save-modal-close.svelte-1n46o8q:hover{color:var(--text-primary)}.save-modal-body.svelte-1n46o8q{padding:12px}.save-modal-label.svelte-1n46o8q{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:4px;display:block}.save-modal-input-row.svelte-1n46o8q{align-items:center;gap:0;display:flex}.save-modal-input.svelte-1n46o8q{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm) 0 0 var(--radius-sm);font-size:var(--text-base);color:var(--text-primary);border-right:none;outline:none;flex:1;padding:6px 8px}.save-modal-input.svelte-1n46o8q:focus{border-color:var(--accent)}.save-modal-ext.svelte-1n46o8q{background:var(--bg-secondary);border:1px solid var(--border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--text-base);color:var(--text-secondary);-webkit-user-select:none;user-select:none;padding:6px 8px}.save-modal-footer.svelte-1n46o8q{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:8px 12px;display:flex}.save-modal-btn.svelte-1n46o8q{border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;border:none;padding:6px 14px;font-weight:500}.save-modal-btn-cancel.svelte-1n46o8q{background:var(--bg-secondary);color:var(--text-primary)}.save-modal-btn-cancel.svelte-1n46o8q:hover{background:var(--border)}.save-modal-btn-save.svelte-1n46o8q{background:var(--accent);color:#fff}.save-modal-btn-save.svelte-1n46o8q:hover{opacity:.9}
