:root{--bg-app:#fff;--bg-header:#f6f8fa;--bg-panel:#f6f8fa;--bg-dropdown:#fff;--bg-canvas:#fff;--glass-border:1px solid #d0d7de;--glass-border-hover:1px solid #0969da;--border-color:#d0d7de;--accent-color:#0969da;--accent-hover:#0860ca;--accent-text:#fff;--text-primary:#1f2328;--text-secondary:#57606a;--text-muted:#6e7781;--hover-bg:#eaeef2;--active-bg:#d8dee4;--input-bg:#fff;--header-height:40px;--sidebar-width:180px;--properties-width:260px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--radius-sm:3px;--radius-md:4px;--radius-lg:6px;--shadow-sm:none;--shadow-lg:none;--backdrop-blur:none;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}.app-container *{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}.app-container input,.app-container textarea,.app-container select{-webkit-user-select:text;user-select:text}.app-container{font-family:var(--font-family);background-color:var(--bg-app);color:var(--text-primary);accent-color:var(--accent-color);letter-spacing:.01em;grid-template-areas:"header header header""sidebar canvas properties";grid-template-columns:var(--sidebar-width) minmax(0, 1fr) var(--properties-width);grid-template-rows:var(--header-height) minmax(0, 1fr);border:1px solid var(--border-color);border-radius:12px;width:100%;height:100%;min-height:0;font-size:13px;display:grid;position:relative;overflow:hidden}.app-header{background-color:var(--bg-header);border-bottom:var(--glass-border);padding:0 var(--spacing-md);z-index:50;grid-area:header;justify-content:space-between;align-items:center;display:flex;overflow:visible}.header-left{align-items:center;gap:var(--spacing-lg);display:flex}.app-title{color:var(--text-primary);align-items:center;gap:var(--spacing-sm);white-space:nowrap;font-size:15px;font-weight:600;display:flex}.app-title i{color:var(--accent-color);font-size:18px}.header-controls{flex-shrink:0;align-items:center;gap:8px;display:flex}.app-menu{align-items:center;gap:4px;display:flex}.menu-dropdown{align-items:center;height:100%;display:flex;position:relative}.menu-item{color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;height:32px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .2s}.menu-dropdown.open .menu-item{background-color:var(--hover-bg);color:var(--text-primary)}@media (hover:hover){.menu-dropdown:hover .menu-item{background-color:var(--hover-bg);color:var(--text-primary)}}.dropdown-content{background-color:var(--bg-dropdown);border:var(--glass-border);border-radius:var(--radius-md);min-width:180px;margin-top:4px;padding:6px;animation:.15s ease-out slideDown;display:none;position:absolute;top:100%;left:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.menu-dropdown.open .dropdown-content{display:block}@media (hover:hover){.menu-dropdown:hover .dropdown-content{display:block}}.dropdown-content button{color:var(--text-primary);text-align:left;border-radius:var(--radius-sm);padding:8px 12px;font-size:13px}.dropdown-content button:hover{background-color:var(--hover-bg);color:var(--text-primary)}.menu-separator{background-color:var(--border-color);height:1px;margin:4px 0}.dropdown-content button.menu-item-toggle{padding-left:30px;position:relative}.dropdown-content button.menu-item-toggle:before{content:"✓";color:var(--accent-color);opacity:0;font-weight:700;transition:opacity .12s;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.dropdown-content button.menu-item-toggle.menu-item-active:before{opacity:1}.tools-sidebar{background-color:var(--bg-panel);border-right:var(--glass-border);z-index:40;scroll-behavior:smooth;flex-direction:column;grid-area:sidebar;align-content:start;gap:0;height:100%;min-height:0;max-height:100%;padding:12px 10px 30px;display:flex;overflow:hidden auto}.toolbar-section-label{background:var(--hover-bg);border:var(--glass-border);box-sizing:border-box;border-radius:8px;justify-content:center;align-items:center;width:100%;margin:8px 0 12px;padding:6px 10px;display:flex}.toolbar-section-label span{letter-spacing:1px;color:var(--text-secondary);text-transform:uppercase;text-align:center;font-size:10px;font-weight:700}.toolbar-section-label:after{display:none}.toolbar-section-label:first-child{margin-top:0}.toolbar-section-label i:first-child{color:var(--text-secondary);opacity:1;font-size:14px}.toolbar-section-label span{letter-spacing:.7px;color:var(--text-secondary);text-transform:uppercase;text-align:center;opacity:.9;flex:1;font-size:9px;font-weight:700;line-height:1.1}.section-chevron{transition:transform .3s;color:var(--text-secondary)!important;opacity:1!important;filter:none!important;font-size:10px!important}.toolbar-section-label.collapsed .section-chevron{transform:rotate(-90deg)}.toolbar-section-tools{opacity:1;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:0;transition:max-height .3s,opacity .3s,margin .3s;display:grid}.toolbar-section-tools.collapsed{opacity:0;max-height:0;margin-bottom:0;display:none}.toolbar-separator{border-bottom:var(--glass-border);background:0 0;flex-shrink:0;width:100%;height:0;margin:16px 0}.properties-panel{background-color:var(--bg-panel);border-left:var(--glass-border);scroll-behavior:smooth;z-index:40;grid-area:properties;height:100%;min-height:0;max-height:100%;display:block;overflow-y:auto}.panel-section{border-bottom:var(--glass-border);padding:var(--spacing-lg)}.panel-header{text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--spacing-md);letter-spacing:.8px;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;display:flex}.canvas-area{background-color:var(--bg-canvas);background-image:linear-gradient(#0000000d 1px,#0000 1px),linear-gradient(90deg,#0000000d 1px,#0000 1px);background-size:40px 40px;grid-area:canvas;padding-bottom:80px;display:flex;position:relative;overflow:hidden}#cadCanvas{background-color:var(--bg-canvas);display:block;position:absolute;top:0;left:0}.canvas-with-rulers{flex:auto;grid-template-rows:20px minmax(0,1fr);grid-template-columns:20px minmax(0,1fr);align-self:stretch;min-width:0;min-height:0;display:grid}.ruler-corner{background-color:var(--bg-canvas);box-shadow:inset -1px -1px 0 var(--border-color);grid-area:1/1}.ruler{box-sizing:content-box;background-color:var(--bg-canvas);display:block}.ruler-top{box-shadow:inset 0 -1px 0 var(--border-color);grid-area:1/2}.ruler-left{box-shadow:inset -1px 0 0 var(--border-color);grid-area:2/1}.canvas-stack{grid-area:2/2;min-width:0;min-height:0;position:relative;overflow:hidden}.canvas-stack canvas{box-sizing:content-box}.canvas-stack{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app-container{-webkit-tap-highlight-color:transparent}.app-container button{color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);font-family:var(--font-family);background:0 0;border:none;justify-content:center;align-items:center;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.tool-btn{width:54px;min-width:54px;height:54px;min-height:54px;color:var(--text-secondary);border:1px solid var(--border-color);background:var(--input-bg);border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;padding:5px 4px;font-size:16px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.tool-btn i{font-size:18px;line-height:1;transition:transform .2s}.tool-btn span{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;color:var(--text-secondary);font-size:8px;font-weight:600;line-height:1.1;transition:color .2s}.tool-btn:hover{background:var(--hover-bg);border-color:var(--accent-color);color:var(--text-primary)}.tool-btn:hover i{transform:scale(1.1)}.tool-btn:hover span{color:var(--text-primary)}.tool-btn.active{background:var(--active-bg);color:var(--accent-color);border:1px solid var(--accent-color)}.tool-btn.active i{color:var(--text-primary);transform:scale(1.1)}.tool-btn.active span{color:var(--text-primary);font-weight:700}.primary-tools-section{flex-direction:column;flex-shrink:0;gap:0;margin-bottom:0;padding:0;display:flex}.section-title{letter-spacing:.8px;color:var(--text-secondary);text-align:center;opacity:.7;text-transform:uppercase;margin-bottom:4px;font-size:9px;font-weight:700}.primary-tools-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.app-container .tool-btn-primary,.app-container .tool-btn-secondary{aspect-ratio:1;width:100%;height:auto;min-height:unset;background:var(--input-bg);border:var(--glass-border);cursor:pointer;box-shadow:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px 4px;transition:all .2s;display:flex}.app-container .tool-btn-primary i,.app-container .tool-btn-secondary i{color:var(--text-secondary);font-size:22px;transition:all .2s}.app-container .tool-btn-primary span,.app-container .tool-btn-secondary span{text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary);font-size:9px;font-weight:700;font-family:var(--font-family)}.app-container .tool-btn-primary:hover,.app-container .tool-btn-secondary:hover{background:var(--hover-bg);border-color:var(--accent-color)}.app-container .tool-btn-primary:hover i,.app-container .tool-btn-secondary:hover i,.app-container .tool-btn-primary:hover span,.app-container .tool-btn-secondary:hover span{color:var(--text-primary)}.app-container .tool-btn-primary.active,.app-container .tool-btn-secondary.active{border:1px solid var(--accent-color);background:#0969da14}.app-container .tool-btn-primary.active i,.app-container .tool-btn-secondary.active i,.app-container .tool-btn-primary.active span,.app-container .tool-btn-secondary.active span{color:var(--text-primary)}.app-container :focus{outline:none}.tool-btn:focus-visible{outline:2px solid var(--accent-color);outline-offset:0px}.section-button:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px;background-color:var(--hover-bg)}.menu-item:focus-visible{outline:2px solid var(--accent-color);outline-offset:-2px}.btn-standard:focus-visible{outline:2px solid var(--accent-color);outline-offset:0px}.app-container input:focus-visible,.app-container select:focus-visible,.app-container textarea:focus-visible{outline:none}.zoom-btn:focus-visible{outline:2px solid var(--accent-color);outline-offset:0px}.tool-btn:disabled,.btn-standard:disabled,.zoom-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none;filter:grayscale(.5)}.app-container .btn-standard{background-color:var(--input-bg);border:var(--glass-border);color:var(--text-primary);gap:8px;padding:6px 14px;font-size:13px}.app-container .btn-standard:hover{background-color:var(--hover-bg);border-color:#bbb}.app-container .btn-primary{background-color:var(--accent-color);color:#fff;border:none}.app-container .btn-primary:hover{background-color:var(--accent-hover)}.app-container .btn-primary:active{transform:translateY(0)}.app-container .btn-primary.export-button{background-color:#fff;border-radius:4px;padding:8px 16px;font-size:13px;font-weight:500;transition:background-color .2s;box-shadow:0 1px 2px #0000000d;color:#1d4ed8!important;border:1px solid #1d4ed8!important}.app-container .btn-primary.export-button:hover{background-color:#f0f7ff;box-shadow:0 1px 2px #0000000d;color:#1d4ed8!important}.property-row{margin-bottom:var(--spacing-lg);flex-direction:column;gap:8px;display:flex}.property-row label{color:var(--text-secondary);font-size:12px;font-weight:500}.inline-row{gap:var(--spacing-sm);display:flex}.app-container .inline-row input[type=text],.app-container .inline-row input[type=number]{text-align:center;min-width:34px;padding:8px 2px}.app-container input[type=text],.app-container input[type=number],.app-container select{background-color:var(--input-bg);border:var(--glass-border);color:var(--text-primary);border-radius:var(--radius-sm);outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:13px;transition:all .2s}.app-container input:hover,.app-container select:hover{background-color:var(--input-bg);border-color:#a8b1bb}.app-container select option{background-color:var(--bg-dropdown);color:var(--text-primary)}.app-container input:focus,.app-container select:focus{border-color:var(--accent-color);background-color:var(--input-bg);box-shadow:0 0 0 3px #0969da1f}.app-container input[type=file]::file-selector-button{color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;background-color:#1f23280f;border:none;margin-right:12px;padding:6px 12px;font-size:12px;transition:background .2s}.floating-controls{background:var(--bg-panel);border:1px solid #dcdcdc;border-bottom:none;border-radius:14px 14px 0 0;flex-direction:row;align-items:center;gap:16px;padding:12px 20px 16px;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%);z-index:9999!important}.zoom-btn{background:var(--bg-panel);border:var(--glass-border);width:36px;height:36px;color:var(--text-primary);border-radius:6px;flex-shrink:0;font-size:13px;transition:all .2s cubic-bezier(.4,0,.2,1)}.zoom-btn:hover{background:var(--hover-bg);border-color:var(--accent-color);color:var(--text-primary)}.zoom-btn.active{background:var(--active-bg);border-color:var(--accent-color);color:var(--accent-color)}.zoom-controls{flex-direction:row;align-items:center;gap:10px;display:flex}.zoom-display{text-align:center;min-width:56px;color:var(--text-primary);background:var(--bg-panel);border:var(--glass-border);border-radius:6px;padding:8px 12px;font-size:12px;font-weight:700}.control-separator{background:linear-gradient(#0000,#1f232840,#0000);width:1px;height:32px}.tool-status{background:var(--bg-panel);border:var(--glass-border);text-align:center;border-radius:8px;flex-direction:row;align-items:center;gap:10px;padding:8px 14px;display:flex}.tool-status i{color:var(--text-secondary);font-size:16px}.tool-status span{color:var(--text-primary);white-space:nowrap;font-size:12px;font-weight:600}.info-icon{color:var(--text-secondary);cursor:help;font-size:14px;transition:color .2s}.info-icon:hover{color:var(--accent-color)}.info-image-popover{background:var(--bg-dropdown);width:240px;-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;padding:8px;animation:.2s ease-out fadeIn;display:none;position:absolute;top:0;right:32px}.info-icon:hover .info-image-popover{display:block}.info-image-popover img{border-radius:var(--radius-sm);border:1px solid #1f232826;width:100%}#variantImage,.variant-image{object-fit:contain;opacity:.9;width:auto;max-width:100%;height:auto;max-height:35px;transition:opacity .2s}#variantImage:hover,.variant-image:hover{opacity:1}#arcInputs{gap:var(--spacing-sm);flex-direction:column;animation:.3s fadeIn}.collapsible-section{border-bottom:var(--glass-border);overflow:hidden}.app-container .section-button{cursor:pointer;width:100%;color:var(--text-primary);background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;padding:14px 20px;transition:all .2s;display:flex}.app-container .section-button:hover{background-color:var(--hover-bg)}.app-container button:not(:disabled):hover{filter:none}.app-container .section-button:active,.app-container .btn-standard:active,.app-container .menu-item:active{transform:none}.app-container .section-button.active{background-color:#0000}.app-container .section-button.active:hover{background-color:var(--hover-bg)}.button-content{align-items:center;gap:0;display:flex}.section-icon{width:60px;height:60px;color:var(--text-secondary);filter:brightness(0)saturate(0%)invert(35%)grayscale();opacity:.9;border-right:1px solid var(--border-color);flex-shrink:0;margin-right:12px;padding-right:12px;transition:opacity .2s}.app-container .section-button:hover .section-icon{opacity:1;filter:brightness(0)saturate(0%)invert(15%)grayscale()}.button-content span{color:var(--text-primary);font-size:13px;font-weight:500}.toggle-arrow{color:var(--text-secondary);font-size:12px;transition:transform .3s;opacity:1!important;visibility:visible!important}.app-container .section-button.active .toggle-arrow{transform:rotate(180deg)}.section-content{max-height:0;transition:max-height .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.section-content.collapsed{max-height:0}.content-inner{background-color:#1f232808;padding:16px 20px 24px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#1f232840;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#1f232866}.header-controls{--cad-ctl-h:min(30px, calc(var(--header-height) - 6px));gap:6px}.header-divider{background:var(--border-color);flex-shrink:0;width:1px;height:18px;margin:0 4px}.app-container .header-controls .btn-standard{height:var(--cad-ctl-h);border:1px solid var(--border-color);color:var(--text-primary);white-space:nowrap;background-color:#fff;border-radius:6px;gap:6px;padding:0 12px;font-size:12.5px;font-weight:500;line-height:1;box-shadow:0 1px #1f23280a}.app-container .header-controls .btn-standard i{font-size:13px}.app-container .header-controls .btn-standard:hover{background-color:var(--hover-bg);border-color:#afb8c1}.app-container .header-controls .btn-icon{width:var(--cad-ctl-h);color:var(--text-secondary);padding:0}.app-container .header-controls .btn-icon:hover{color:var(--text-primary)}.app-container .header-controls .btn-primary.export-button{background-color:var(--accent-color);border-radius:6px;padding:0 14px;font-size:12.5px;font-weight:600;box-shadow:0 1px 2px #0969da40;border:1px solid var(--accent-color)!important;color:#fff!important}.app-container .header-controls .btn-primary.export-button:hover{background-color:var(--accent-hover);box-shadow:0 1px 2px #0969da40;border-color:var(--accent-hover)!important;color:#fff!important}.app-menu{gap:2px}.menu-item{height:min(28px, calc(var(--header-height) - 4px));border-radius:6px;padding:0 11px;font-size:13px}.dropdown-content{border-radius:8px;min-width:190px;margin-top:4px;padding:4px;box-shadow:0 8px 24px #1f232824,0 1px 3px #1f232814}.dropdown-content:before{content:"";height:6px;position:absolute;top:-6px;left:0;right:0}.dropdown-content button{border-radius:5px}.tools-sidebar{padding:12px 12px 16px}.primary-tools-grid,.toolbar-section-tools{gap:8px}.app-container .tools-sidebar .tool-btn{aspect-ratio:auto;border-radius:8px;gap:5px;width:100%;min-width:0;height:56px;min-height:0;padding:6px 4px;box-shadow:0 1px #1f23280a}.app-container .tools-sidebar .tool-btn i{font-size:20px}.app-container .tools-sidebar .tool-btn span{letter-spacing:.05em;font-size:9px}.app-container .tools-sidebar .tool-btn:hover{background:#fff;border-color:#8c959f;box-shadow:0 1px 3px #1f23281a}.app-container .tools-sidebar .tool-btn:hover i{transform:none}.app-container .tools-sidebar .tool-btn.active,.app-container .tools-sidebar .tool-btn.active:hover{border-color:var(--accent-color);box-shadow:0 0 0 1px var(--accent-color) inset;background:#0969da14}.panel-section{padding:14px 16px 16px}.panel-header{letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px;font-size:10.5px;font-weight:700}.properties-panel .property-row{gap:6px;margin-bottom:12px}.properties-panel .property-row:last-child{margin-bottom:0}.properties-panel .property-row label{color:var(--text-secondary);font-size:12px;font-weight:500}.properties-panel input[type=text],.properties-panel input[type=number],.properties-panel select{border-radius:6px;height:34px;padding:0 10px}.properties-panel .inline-row input[type=text],.properties-panel .inline-row input[type=number]{padding:0 2px}.properties-panel input[type=file]{width:100%;color:var(--text-muted);cursor:pointer;background:#fff;border:1px dashed #afb8c1;border-radius:6px;padding:5px;font-family:inherit;font-size:12px}.properties-panel input[type=file]:hover{border-color:var(--accent-color)}.app-container input[type=file]::file-selector-button{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background-color:#f6f8fa;border-radius:5px;margin-right:10px;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:500;transition:background-color .15s}.app-container input[type=file]::file-selector-button:hover{background-color:var(--hover-bg)}.properties-panel .btn-standard{border-radius:6px;height:32px;padding:0 12px;font-size:12.5px;font-weight:500}.properties-panel .btn-standard.btn-primary{border:1px solid var(--accent-color);color:#fff;font-weight:600}.app-container .section-button{padding:8px 16px}.section-icon{object-fit:contain;border-right:none;width:44px;height:32px;margin-right:12px;padding:0}.button-content span{font-size:13px;font-weight:600}.toggle-arrow{color:var(--text-muted);font-size:11px}.content-inner{border-top:1px solid var(--border-color);background-color:#1f232806;padding:14px 16px 18px}.floating-controls{border:var(--glass-border);border:none;border-top:var(--glass-border);background:#fff;background:var(--bg-panel);width:auto;box-shadow:0 4px 16px #1f23281f,0 1px 3px #1f23280f;box-shadow:none;border-radius:0;justify-content:center;gap:8px;padding:6px 12px;bottom:0;left:0;right:0;transform:none}.canvas-area{padding-bottom:52px}.floating-controls .control-separator{background:var(--border-color);height:22px}.floating-controls .zoom-controls{gap:4px}.floating-controls .tool-status{background:0 0;border:none;justify-content:flex-start;gap:8px;width:150px;padding:0 10px}.floating-controls .tool-status i{text-align:center;width:16px;font-size:14px}.floating-controls .tool-status span{text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.app-container .floating-controls .zoom-btn{width:32px;min-width:32px;height:32px;min-height:32px;color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:8px;padding:0;font-size:14px}.app-container .floating-controls .zoom-btn:hover{background:var(--hover-bg);color:var(--text-primary);border-color:#0000}.app-container .floating-controls .zoom-btn.active,.app-container .floating-controls .zoom-btn.active:hover{color:var(--accent-color);background:#0969da1a;border-color:#0969da59}.app-container .floating-controls .zoom-btn.active i{color:var(--accent-color)}.selection-hint{color:var(--text-muted);font-size:12px;line-height:1.5}.selection-type{color:var(--accent-color);letter-spacing:.02em;background:#0969da1a;border-radius:999px;align-items:center;margin-bottom:10px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.text-size-chips{flex-wrap:wrap;gap:6px;display:flex}.app-container .text-size-chip{border:1px solid var(--border-color);min-width:38px;height:28px;color:var(--text-primary);font-variant-numeric:tabular-nums;background:#fff;border-radius:6px;padding:0 8px;font-size:12px;font-weight:500}.app-container .text-size-chip:hover{background:var(--hover-bg);border-color:#afb8c1}.app-container .text-size-chip.active{border-color:var(--accent-color);color:var(--accent-color);background:#0969da1a;font-weight:600}.selection-readout{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.floating-controls .zoom-display{background:var(--hover-bg);font-variant-numeric:tabular-nums;border:none;min-width:56px;padding:6px 8px;font-size:12px}.keyboard-toast{color:var(--text-primary);opacity:0;pointer-events:none;z-index:9999;letter-spacing:.3px;background:#fff;border:1px solid #d0d7de;border-radius:999px;padding:8px 18px;font-size:13px;font-weight:600;transition:all .3s cubic-bezier(.16,1,.3,1);position:fixed;top:80px;left:50%;transform:translate(-50%)translateY(-20px);box-shadow:0 4px 16px #1f23281f}.keyboard-toast.show{opacity:1;transform:translate(-50%)translateY(0)}.loading-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;background:#0f1012e6;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.spinner{border:4px solid #3b82f633;border-top-color:var(--accent-color);border-radius:50%;width:50px;height:50px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay p{color:var(--text-primary);margin-top:20px;font-size:14px;font-weight:500}#toastContainer{z-index:500;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.toast{width:fit-content;max-width:440px;color:var(--text-primary);opacity:0;pointer-events:auto;white-space:nowrap;background:#fff;border:1px solid #d0d7de;border-radius:999px;align-items:center;gap:10px;padding:8px 16px 8px 12px;font-size:13px;font-weight:500;transition:opacity .25s,transform .25s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(-8px);box-shadow:0 4px 16px #1f23281f}.toast.show{opacity:1;transform:translateY(0)}.toast-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:flex}.toast-content{flex:1;min-width:0}.toast-message{text-overflow:ellipsis;line-height:1.4;display:block;overflow:hidden}.toast-success .toast-icon{color:#1a7f37;background:#1a7f371f}.toast-error .toast-icon{color:#d1242f;background:#d1242f1f}.toast-warning .toast-icon{color:#9a6700;background:#9a67001f}.toast-info .toast-icon{color:#0969da;background:#0969da1f}#loadingOverlay{-webkit-backdrop-filter:blur(8px);z-index:9999;background:#0f1012d9;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:none;position:fixed;inset:0}#loadingText{color:var(--text-primary);letter-spacing:.5px;font-size:16px;font-weight:500}.loading-spinner{border:4px solid #3b82f633;border-top-color:var(--accent-color);border-radius:50%;width:50px;height:50px;animation:.8s linear infinite spin}.three-d-modal{z-index:1000;background:#000000f2;flex-direction:column;animation:.3s ease-out fadeIn3D;display:flex;position:fixed;inset:0}@keyframes fadeIn3D{0%{opacity:0}to{opacity:1}}.three-d-header{background:var(--bg-header);border-bottom:var(--glass-border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.three-d-header h3{color:var(--text-primary);align-items:center;gap:10px;margin:0;font-size:16px;font-weight:600;display:flex}.three-d-header h3 i{color:#3b82f6;font-size:20px}.three-d-controls{align-items:center;gap:12px;display:flex}.three-d-controls label{color:var(--text-secondary);font-size:13px;font-weight:500}.three-d-controls input[type=range]{background:var(--input-bg);appearance:none;cursor:pointer;border-radius:3px;outline:none;width:120px;height:6px}.three-d-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-color);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .2s}.three-d-controls input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.three-d-controls span#depthValue{color:var(--accent-color);text-align:center;min-width:30px;font-weight:600}.btn-close-3d{width:36px;height:36px;color:var(--text-primary);cursor:pointer;background:#1f23280f;border:1px solid #1f232833;border-radius:6px;justify-content:center;align-items:center;margin-left:12px;font-size:16px;transition:all .2s;display:flex}.btn-close-3d:hover{background:#ef4444;border-color:#ef4444;transform:scale(1.05)}#threeDContainer{background:linear-gradient(135deg,#f6f8fa 0%,#eaeef2 50%,#e1e7ee 100%);flex:1;width:100%;position:relative;overflow:hidden}#threeDContainer canvas{width:100%!important;height:100%!important}.three-d-instructions{background:var(--bg-header);border-top:var(--glass-border);justify-content:center;gap:30px;padding:10px 20px;display:flex}.three-d-instructions span{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.three-d-instructions span i{color:var(--accent-color);font-size:14px}.btn-3d{background:linear-gradient(135deg, var(--accent-color) 0%, #1d4ed8 100%);color:#fff;font-weight:600;position:relative;overflow:hidden}.btn-3d:before{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn-3d:hover:before{left:100%}.btn-3d:hover{background:linear-gradient(135deg,#2f81f7 0%,#0969da 100%);transform:translateY(-1px);box-shadow:0 4px 12px #0969da4d}.btn-3d i{font-size:14px}@media (max-width:768px){.three-d-controls{gap:8px}.three-d-controls input[type=range]{width:80px}.three-d-controls label{display:none}.three-d-instructions{flex-wrap:wrap;gap:15px;padding:8px 12px}.three-d-instructions span{font-size:11px}}.shape-dropdown-container{flex-direction:column;display:flex;position:relative}.shape-dropdown-container .tool-btn-primary{width:100%}.shape-dropdown{z-index:200;background:var(--bg-dropdown,#1e1e2e);border:1px solid var(--border-color,#3b3b4f);border-radius:8px;min-width:130px;margin-top:4px;padding:6px;animation:.15s ease-out slideDown;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.shape-dropdown button{width:100%;color:var(--text-secondary,#888);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;transition:all .2s;display:flex}.shape-dropdown button:hover{background:var(--hover-bg,#eaeef2);color:var(--text-primary,#1f2328)}.shape-dropdown button i{text-align:center;width:16px;color:var(--accent-blue,#3b82f6);font-size:12px}.snap-toggle{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:flex}.snap-toggle input[type=checkbox]{cursor:pointer;width:14px;height:14px}@media screen and (max-height:760px){:root{--header-height:36px}.tools-sidebar{padding:8px 8px 20px}.tool-btn-primary,.tool-btn-secondary{font-size:20px}.app-container .tool-btn-primary i,.app-container .tool-btn-secondary i{font-size:19px}.toolbar-section-label{margin:6px 0 8px;padding:4px 8px}.app-container .section-button{padding:10px 16px}.section-icon{width:48px;height:48px}.panel-section{padding:12px 16px}}@media screen and (max-height:640px){:root{--header-height:32px}.app-title{font-size:13px}.tool-btn-primary span,.tool-btn-secondary span{display:none}.app-container .tool-btn-primary,.app-container .tool-btn-secondary{aspect-ratio:auto;height:40px;min-height:40px}.toolbar-section-tools{gap:6px}.app-container .section-button{padding:8px 14px}.section-icon{width:40px;height:40px;margin-right:8px;padding-right:8px}.content-inner{padding:12px 16px 16px}.app-container input[type=text],.app-container input[type=number],.app-container select{padding:7px 10px}}.toolbar-section-label span{font-size:clamp(8px,.7vw,10px)}.panel-header,.panel-section h3{font-size:clamp(12px,.85vw,14px)}.introjs-tooltip{font-family:var(--font-family);color:var(--text-primary);border-radius:10px;min-width:280px;max-width:360px}.introjs-tooltip-title{font-size:15px;font-weight:600}.introjs-tooltiptext{-webkit-user-select:text;user-select:text;font-size:13px;line-height:1.5}.introjs-nextbutton,.introjs-donebutton{background:var(--accent-color);color:var(--accent-text);border:1px solid var(--accent-color);text-shadow:none;border-radius:6px;font-weight:600}.introjs-nextbutton:hover,.introjs-donebutton:hover,.introjs-nextbutton:focus,.introjs-donebutton:focus{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-text)}.introjs-prevbutton{background:var(--bg-panel);color:var(--text-secondary);border:1px solid var(--border-color);text-shadow:none;border-radius:6px}.introjs-progressbar{background-color:var(--accent-color)}#cadTourFullscreenBtn{background:var(--accent-color);color:var(--accent-text);border:1px solid var(--accent-color);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:12px;font-weight:600}#cadTourFullscreenBtn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}@keyframes cadTourFade{0%{opacity:0}to{opacity:1}}@keyframes cadTourPulse{0%,to{outline-color:#0969daf2}50%{outline-color:#0969da40}}.introjs-tooltip{border:1px solid var(--border-color);transition:opacity .2s ease-out;box-shadow:0 14px 44px #1f23284d}.app-container.cad-tour-gliding .introjs-tooltip{transition:none;opacity:0!important}@media (prefers-reduced-motion:reduce){.introjs-tour,.introjs-helperLayer,.introjs-tooltipReferenceLayer,.introjs-tooltip{transition:none!important;animation:none!important}}.introjs-tooltip:before{content:"";background:var(--accent-color);border-radius:10px 10px 0 0;height:4px;display:block}.introjs-tooltip-title{letter-spacing:-.01em;font-size:16px;font-weight:700}.introjs-tooltiptext p{margin:0 0 10px;line-height:1.5}.introjs-helperLayer{outline-offset:2px;border-radius:8px;outline:2px solid #0969daf2;animation:1.8s ease-in-out infinite cadTourPulse;box-shadow:0 0 0 5000px #f6f8fac7!important}.introjs-helperNumberLayer{color:var(--text-muted);text-shadow:none;background:0 0;border:0;padding:2px 0 8px;font-size:12px;font-weight:600}.introjs-tooltipReferenceLayer i.fas,.introjs-tooltipReferenceLayer i.far{font-family:var(--_fa-family)}.cad-tour-welcome{min-width:420px;max-width:440px}.cad-tour-hero{border:1px solid var(--border-color);background:#f6f8fa;border-radius:10px;margin:0 0 12px;overflow:hidden}.cad-tour-hero svg{width:100%;height:auto;display:block}.cad-tour-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.cad-tour-list li{align-items:flex-start;gap:10px;line-height:1.45;display:flex}.cad-tour-list li>i{height:28px;color:var(--accent-color);background:#0969da1a;border-radius:8px;flex:0 0 28px;justify-content:center;align-items:center;font-size:13px;display:flex}.introjs-tooltiptext kbd{color:var(--text-primary);background:#f6f8fa;border:1px solid #d0d7de;border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:600}.cad-tour-keys{grid-template-columns:1fr 1fr;gap:8px 12px;display:grid}.cad-tour-keys span{white-space:nowrap;align-items:center;gap:6px;display:flex}.cad-tour-shortcuts{grid-template-columns:auto 1fr;align-items:center;gap:10px 12px;display:grid}.cad-tour-shortcuts .cad-tour-shortcut-keys{white-space:nowrap;align-items:center;gap:4px;display:flex}.cad-tour-dots{flex-wrap:wrap;gap:6px 14px;display:flex}.cad-tour-dots span{align-items:center;gap:6px;font-size:12px;display:inline-flex}.cad-tour-dots i{border-radius:50%;width:10px;height:10px;display:inline-block}.cad-tour-hint{color:var(--text-secondary);font-size:12px}.app-container[data-tier=l]{--sidebar-width:168px;--properties-width:232px}.app-container[data-tier=l] .app-title span{display:none}.app-container[data-tier=m],.app-container[data-tier=s]{--properties-width:0px}.app-container[data-tier=m] .app-title span,.app-container[data-tier=s] .app-title span,.app-container[data-tier=m] .header-controls .btn-label,.app-container[data-tier=s] .header-controls .btn-label{display:none}.app-container[data-tier=m] .app-title,.app-container[data-tier=s] .app-title{justify-content:center;min-width:32px;min-height:32px}.app-container[data-tier=m],.app-container[data-tier=s]{overflow:clip}.app-container[data-tier=m] .header-controls,.app-container[data-tier=s] .header-controls{--cad-ctl-h:32px;gap:4px}.app-container[data-tier=m] .header-left{gap:8px}.app-container[data-tier=m] .header-controls .btn-standard,.app-container[data-tier=s] .header-controls .btn-standard{width:var(--cad-ctl-h);gap:0;padding:0}.app-container[data-tier=m] #btnToggleProperties,.app-container[data-tier=s] #btnToggleProperties{display:flex!important}.app-container[data-tier=m] .menu-item,.app-container[data-tier=s] .menu-item{padding:0 9px}.app-container[data-tier=m] .properties-panel,.app-container[data-tier=s] .properties-panel{z-index:10000;visibility:hidden;grid-area:auto;width:min(340px,92%);height:auto;max-height:none;transition:transform .25s,visibility 0s linear .25s;position:absolute;top:0;bottom:0;right:0;transform:translate(105%);box-shadow:-8px 0 24px #1f23282e}.app-container[data-tier=m] .properties-panel.show,.app-container[data-tier=s] .properties-panel.show{visibility:visible;transition:transform .25s,visibility;transform:translate(0)}.drawer-header{display:none}.app-container[data-tier=m] .drawer-header,.app-container[data-tier=s] .drawer-header{z-index:2;background:var(--bg-panel);border-bottom:var(--glass-border);color:var(--text-primary);justify-content:space-between;align-items:center;padding:6px 8px 6px 16px;font-size:13px;font-weight:600;display:flex;position:sticky;top:0}.app-container .drawer-header button{width:36px;height:36px;color:var(--text-secondary);border-radius:8px}.app-container .drawer-header button:hover{background:var(--hover-bg);color:var(--text-primary)}.app-container[data-tier=m] .floating-controls,.app-container[data-tier=s] .floating-controls{scrollbar-width:none;flex-wrap:nowrap;justify-content:safe center;overflow:auto hidden}.app-container[data-tier=m] .floating-controls>*,.app-container[data-tier=s] .floating-controls>*{flex-shrink:0}.app-container[data-tier=m] .floating-controls .tool-status,.app-container[data-tier=s] .floating-controls .tool-status{width:auto;padding:0 6px}.app-container[data-tier=m] .floating-controls .tool-status span,.app-container[data-tier=s] .floating-controls .tool-status span{display:none}.app-container[data-tier=m]{--sidebar-width:64px}.app-container[data-tier=m] .tools-sidebar{padding:8px 6px 12px}.app-container[data-tier=m] .toolbar-section-label{display:none}.app-container[data-tier=m] .toolbar-separator{margin:8px 4px;display:block}.app-container[data-tier=m] .primary-tools-grid,.app-container[data-tier=m] .toolbar-section-tools{grid-template-columns:1fr;gap:6px}.app-container[data-tier=m] .tools-sidebar .tool-btn{height:46px}.app-container[data-tier=m] .tools-sidebar .tool-btn span{display:none}.app-container[data-tier=s]{grid-template:"header""canvas"minmax(0,1fr)"sidebar"62px/minmax(0,1fr)}.app-container[data-tier=s] .app-header{flex-wrap:wrap;row-gap:4px;padding:4px 8px}.app-container[data-tier=s] .header-left{flex:100%;gap:8px;min-width:0}.app-container[data-tier=s] .header-controls{scrollbar-width:none;flex:100%;justify-content:flex-start;min-width:0;overflow-x:auto}.app-container[data-tier=s] .header-controls>*{flex-shrink:0}.app-container[data-tier=s] .header-left,.app-container[data-tier=s] .app-menu{flex-wrap:wrap}.app-container[data-tier=s] .app-title{display:none!important}.app-container[data-tier=s] .app-header{position:relative}.app-container[data-tier=s] .menu-dropdown{position:static}.app-container[data-tier=s] .dropdown-content{min-width:0;margin-top:2px;top:100%;left:8px;right:8px}.app-container[data-tier=s] .tools-sidebar{border-right:none;border-top:var(--glass-border);flex-direction:row;align-items:center;gap:6px;height:100%;padding:6px 8px;overflow:auto hidden}.app-container[data-tier=s] .primary-tools-section,.app-container[data-tier=s] .primary-tools-grid,.app-container[data-tier=s] .toolbar-section-tools{display:contents}.app-container[data-tier=s] .toolbar-section-label{display:none}.app-container[data-tier=s] .toolbar-separator{background:var(--border-color);border:0;flex:0 0 1px;width:1px;height:28px;margin:0 4px;display:block}.app-container[data-tier=s] .tools-sidebar .tool-btn{flex:none;width:46px;min-width:46px;height:46px}.app-container[data-tier=s] .tools-sidebar .tool-btn span{display:none}@media (pointer:coarse){.app-container{--header-height:52px}.app-container[data-tier] .header-controls{--cad-ctl-h:40px}.app-container .header-divider{height:22px}.app-container[data-tier] .app-title{justify-content:center;min-width:40px;min-height:40px}.menu-item{height:40px;padding:0 12px}.dropdown-content button{min-height:44px}.canvas-area{padding-bottom:64px}.app-container .floating-controls .zoom-btn{width:44px;min-width:44px;height:44px;min-height:44px}.app-container .tools-sidebar .tool-btn{min-height:48px}.app-container[data-tier=s] .tools-sidebar .tool-btn{width:48px;min-width:48px;height:48px}.app-container .section-button{min-height:52px}.app-container .properties-panel input[type=text],.app-container .properties-panel input[type=number],.app-container .properties-panel select,.properties-panel .btn-standard{height:42px}.app-container .text-size-chip{min-width:46px;height:38px}.app-container .drawer-header button{width:44px;height:44px}}.app-container[data-tier=s] .introjs-tooltip,.app-container[data-tier=s] .introjs-tooltip.cad-tour-welcome{width:max-content;min-width:0;max-width:min(270px,100vw - 110px)}.app-container[data-tier=s] .cad-tour-hero svg{max-width:100%;height:auto}.app-container[data-tier=m] .floating-controls,.app-container[data-tier=s] .floating-controls,.app-container[data-tier=s] .tools-sidebar{padding-right:68px}.quick-edit{z-index:10001;border:1px solid var(--border-color);width:236px;color:var(--text-primary);background:#fff;border-radius:10px;padding:10px 12px 12px;font-size:13px;position:absolute;box-shadow:0 8px 24px #1f23282e,0 1px 3px #1f232814}.quick-edit-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.quick-edit-head span{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.app-container .quick-edit-head button{width:28px;height:28px;color:var(--text-secondary);border-radius:6px;font-size:12px}.app-container .quick-edit-head button:hover{background:var(--hover-bg);color:var(--text-primary)}.quick-edit .selection-type{margin-bottom:8px}.quick-edit .property-row{gap:4px;margin-bottom:10px}.quick-edit .property-row:last-child{margin-bottom:0}.app-container .quick-edit input[type=text],.app-container .quick-edit select{border-radius:6px;height:32px;padding:0 10px}@media (pointer:coarse){.app-container .quick-edit input[type=text],.app-container .quick-edit select{height:42px}.app-container .quick-edit-head button{width:40px;height:40px}}.app-container .floating-controls .zoom-display{cursor:pointer;gap:5px;min-width:68px;padding:6px 8px 6px 12px}.floating-controls .zoom-display:after{content:"";border:4px solid #0000;border-top-color:var(--text-muted);border-bottom-width:0;margin-top:1px}.app-container .floating-controls .zoom-display:hover,.app-container .floating-controls .zoom-display[aria-expanded=true]{background:var(--active-bg)}.zoom-menu{z-index:10002;border:1px solid var(--border-color);background:#fff;border-radius:10px;min-width:200px;padding:4px;position:absolute;box-shadow:0 8px 24px #1f23282e,0 1px 3px #1f232814}.app-container .zoom-menu-item{width:100%;height:34px;color:var(--text-primary);text-align:left;border-radius:6px;justify-content:space-between;align-items:center;gap:16px;padding:0 10px;font-size:13px;display:flex}.app-container .zoom-menu-item:hover,.app-container .zoom-menu-item:focus-visible{background:var(--hover-bg);outline:none}.zoom-menu-label:before{content:"";width:18px;color:var(--accent-color);font-weight:700;display:inline-block}.zoom-menu-item.current .zoom-menu-label:before{content:"✓"}.zoom-menu-hint{color:var(--text-muted);font-size:11px}.zoom-menu-sep{background:var(--border-color);height:1px;margin:4px 2px}@media (pointer:coarse){.app-container .zoom-menu-item{height:44px}}.app-container[data-tier=s] .floating-controls .zoom-controls{order:-1}.app-container[data-tier=s] .floating-controls .tool-status{display:none}.app-container .floating-controls .zoom-display{min-height:32px}@media (pointer:coarse){.app-container .floating-controls .zoom-display{min-height:44px}}
