*{box-sizing:border-box;margin:0;padding:0}#root,body,html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%;max-width:100%;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9f9f9;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:16px}h1{font-size:28px}h2{font-size:24px}h3{font-size:20px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.sidebar-close-btn{display:none}@media (max-width:768px){.sidebar-close-btn{display:flex!important}.main-content{padding:8px 12px!important}.nav-link{font-size:13px!important;padding:10px 16px!important}.sidebar-title{font-size:24px!important;padding:16px 12px!important}}@media (max-width:480px){.nav-link{font-size:12px!important;padding:8px 12px!important}.sidebar-title{font-size:20px!important;padding:12px 8px!important}.main-content{padding:4px 8px!important}}.custom-dialog-overlay{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2147483647}.custom-dialog-modal{animation:fadeIn .25s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#add8e6f2,#87cefaf2);border:1px solid #ffffff4d;border-radius:20px;box-shadow:0 20px 60px #0000004d,0 0 0 1px #fff3;max-width:560px;padding:28px;width:90%}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.custom-dialog-header{color:#1a1a1a;font-size:22px;font-weight:700;line-height:1.3;margin-bottom:16px}.custom-dialog-body{background:#ffffff80;border:1px solid #ffffff59;border-radius:12px;box-shadow:inset 0 1px 3px #00000014;color:#333;font-size:16px;line-height:1.8;margin-bottom:24px;padding:16px}.custom-dialog-line{margin:0 0 8px}.custom-dialog-line:last-child{margin-bottom:0}.custom-dialog-line.small{color:#5f6368;font-size:12px;line-height:1.5}.custom-dialog-line.small-alert{background:#ffebeee6;border-left:3px solid #d32f2f;border-radius:6px;color:#8b1c1c;font-size:12px;line-height:1.5;padding:6px 8px}.custom-dialog-footer{display:flex;gap:12px;justify-content:flex-end}.custom-dialog-btn{border-radius:12px;cursor:pointer;font-size:14px;font-weight:600;min-width:96px;padding:10px 20px;transition:all .25s ease}.custom-dialog-btn.confirm{background:linear-gradient(135deg,#1976d2,#1565c0);border:none;box-shadow:0 4px 12px #1976d24d;color:#fff}.custom-dialog-btn.confirm:hover{background:linear-gradient(135deg,#1565c0,#0d47a1);transform:translateY(-1px)}.custom-dialog-btn.cancel{background:#fffc;border:1px solid #0003;color:#666}.custom-dialog-btn.cancel:hover{background:#0000000d;transform:translateY(-1px)}.about-page{margin:0 auto;max-width:900px;padding:20px}.about-content{background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;overflow:hidden}.help-section{padding:24px}.help-section h2{border-bottom:2px solid #e3f2fd;color:#1976d2;font-size:28px;font-weight:600;margin-bottom:24px;margin-top:0;padding-bottom:12px}.about-info{display:flex;flex-direction:column;gap:32px}.about-item{background:#f8f9fa;border-left:4px solid #1976d2;border-radius:8px;padding:20px}.about-item h3{color:#1976d2;font-size:20px;font-weight:600;margin-bottom:16px;margin-top:0}.about-item p{color:#333;line-height:1.6;margin-bottom:12px}.about-item ul{margin:0;padding-left:20px}.about-item li{color:#333;line-height:1.5;margin-bottom:8px}.about-item strong{color:#1976d2;font-weight:600}@media (max-width:768px){.about-item,.about-page,.help-section{padding:16px}.help-section h2{font-size:24px}.about-item h3{font-size:18px}}.context-menu{animation:contextMenuFadeIn .1s ease-out;background-color:#2a2a2a;border:1px solid #444;border-radius:8px;box-shadow:0 4px 12px #0006;color:#e0e0e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:13px;min-width:180px;padding:6px 0;position:fixed;z-index:10000}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{align-items:center;cursor:pointer;display:flex;padding:8px 12px;transition:background-color .1s}.context-menu-item:hover{background-color:#3a3a3a}.context-menu-item.disabled{color:#666;cursor:default}.context-menu-item.disabled:hover{background-color:initial}.context-menu-item.danger{color:#ff6b6b}.context-menu-item.danger:hover{background-color:#ff6b6b1a}.context-menu-icon{font-size:14px;margin-right:8px;text-align:center;width:16px}.context-menu-label{flex:1 1}.context-menu-shortcut{color:#888;font-size:11px;margin-left:12px}.context-menu-separator{background-color:#444;height:1px;margin:4px 0}.online-editor-container{background-color:#f5f5f5;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;height:100%;overflow:hidden}.editor-toolbar{-webkit-overflow-scrolling:touch;align-items:center;background-color:#fff;border-bottom:1px solid #ddd;display:flex;flex-shrink:0;gap:10px;height:50px;overflow-x:auto;padding:8px 16px;position:relative;scrollbar-width:thin;touch-action:pan-x;z-index:1100}.editor-toolbar::-webkit-scrollbar{height:6px}.editor-toolbar::-webkit-scrollbar-thumb{background-color:#ddd;border-radius:3px}.toolbar-btn{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:4px;color:#333;cursor:pointer;display:flex;flex-shrink:0;font-size:14px;gap:6px;height:32px;padding:6px 12px;transition:all .2s;white-space:nowrap}@media (max-width:1366px) and (pointer:coarse){.editor-toolbar{gap:6px;height:44px;padding:6px 8px}.toolbar-btn{font-size:12px;gap:4px;height:28px;padding:4px 8px}}.toolbar-btn:hover{background-color:#f0f0f0;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.toolbar-btn.btn-file{background-color:#e0f2f1;border-color:#b2dfdb;color:#00695c}.toolbar-btn.btn-file:hover{background-color:#b2dfdb}.toolbar-btn.btn-settings{background-color:#eceff1;border-color:#cfd8dc;color:#455a64}.toolbar-btn.btn-settings:hover{background-color:#cfd8dc}.toolbar-btn.btn-paper-settings{background-color:#eaf2ff;border-color:#c5d8f7;color:#1d4f91}.toolbar-btn.btn-paper-settings:hover{background-color:#d7e7ff}.toolbar-btn.btn-process-settings{background-color:#e9f7f2;border-color:#c8e8dc;color:#1f6b58}.toolbar-btn.btn-process-settings:hover{background-color:#d8efe5}.toolbar-btn.btn-view-settings{background-color:#f1edff;border-color:#d9d1f9;color:#5a47a8}.toolbar-btn.btn-view-settings:hover{background-color:#e4dcff}.toolbar-btn.btn-view-settings.active{background-color:#d9cfff;border-color:#c6b6ff}.toolbar-btn.btn-view{background-color:#f3e5f5;border-color:#e1bee7;color:#7b1fa2}.toolbar-btn.btn-view:hover{background-color:#e1bee7}.toolbar-btn.btn-upload{background-color:#fff8e1;border-color:#ffecb3;color:#ff8f00}.toolbar-btn.btn-upload:hover{background-color:#ffecb3}.toolbar-btn.btn-danger{background-color:#ffebee;border-color:#ffcdd2;color:#c62828}.toolbar-btn.btn-danger:hover{background-color:#ffcdd2}.toolbar-btn.btn-action{background-color:#e3f2fd;border-color:#90caf9;color:#1565c0;padding:6px 10px}.toolbar-btn.btn-action:hover{background-color:#bbdefb}.toolbar-btn.btn-action:disabled{background-color:#f5f5f5;border-color:#ddd;box-shadow:none;color:#ccc;cursor:not-allowed;transform:none}.toolbar-btn.btn-mode{background-color:#e8eaf6;border-color:#c5cae9;color:#283593}.toolbar-btn.btn-mode:hover{background-color:#c5cae9}.toolbar-btn.btn-mode.active{background-color:#283593;border-color:#1a237e;color:#fff}.context-bar{background-color:#fff;flex-shrink:0}.context-bar,.property-panels-wrapper{overflow:visible!important;position:relative;z-index:200}.property-grid{overflow:visible!important}.center-column,.editor-content{display:flex;flex:1 1;overflow:hidden}.center-column{flex-direction:column;min-width:0;position:relative}.left-panel{align-items:center;background-color:#fff;border-right:1px solid #ddd;flex-shrink:0;min-width:64px;padding:10px 0;width:64px;z-index:10}.connection-panel,.left-panel{display:flex;flex-direction:column;gap:8px}.connection-panel{background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:0;box-shadow:none;box-sizing:border-box;font-size:12px;margin:0 0 8px;max-width:100%;padding:4px;position:relative;width:100%;z-index:1000}.connection-tabs{display:flex;gap:4px;margin-bottom:4px}.tab-btn{background:#e9ecef;border:none;border-radius:4px;color:#6c757d;cursor:pointer;flex:1 1;font-size:12px;overflow:hidden;padding:6px 0;text-overflow:ellipsis;transition:all .2s;white-space:nowrap}.tab-btn.active{background:#fff;box-shadow:0 1px 2px #0000001a;color:#1976d2;font-weight:600}.connection-content{display:flex;flex-direction:column;gap:8px}.connection-row{align-items:center;display:flex;gap:4px;width:100%}.connection-input{border:1px solid #ced4da;border-radius:4px;box-sizing:border-box;font-size:12px;height:30px;padding:6px 8px;width:100%}.connect-btn{align-items:center;background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;height:32px;justify-content:center;padding:0 12px;transition:background-color .2s;white-space:nowrap;width:100%}.connect-btn:hover{background:#218838}.connect-btn.connected{background:#dc3545;display:flex!important;opacity:1!important}.connect-btn.connected:hover{background:#c82333}.connect-btn.connecting{background:#ffc107;color:#333;cursor:wait}.connection-status{align-items:center;border-top:1px solid #eee;color:#6c757d;display:flex;font-size:11px;gap:6px;height:24px;justify-content:center;overflow:hidden}.status-dot{background:#ccc;border-radius:50%;flex-shrink:0;height:8px;width:8px}.status-dot.online{background:#28a745}.status-text{line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-title{color:#999;font-size:10px;margin-bottom:5px;text-transform:uppercase}.tool-btn{align-items:center;background:#fff;border:1px solid #eee;border-radius:8px;box-shadow:0 1px 2px #0000000d;color:#555;cursor:pointer;display:flex;flex-direction:row;font-size:20px;gap:0;height:44px;justify-content:center;margin:0 auto;max-width:100%;padding:0;transition:all .2s;width:44px}.tool-btn:hover{background-color:#f5f5f5;border-color:#ddd;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.tool-btn.active{background-color:#e3f2fd;border-color:#2196f3;box-shadow:inset 0 1px 3px #0000001a;color:#1976d2}.canvas-area{-webkit-overflow-scrolling:auto;background-color:#000;display:block;flex:1 1;overflow:hidden;overscroll-behavior:none;padding:0;position:relative;touch-action:none}.canvas-wrapper{background-color:#fff;box-shadow:0 0 20px #0000001a;left:0;position:absolute;top:0;transform-origin:0 0}.svg-canvas{display:block;touch-action:none}.svg-canvas.select{cursor:default}.svg-canvas.circle,.svg-canvas.pen,.svg-canvas.rect{cursor:crosshair}.svg-canvas.text{cursor:text}.right-panel{background-color:#fff;border-left:1px solid #ddd;flex-shrink:0;gap:20px;overflow-y:auto;padding:15px;width:280px}.panel-group,.right-panel{display:flex;flex-direction:column}.panel-group{border-bottom:1px solid #eee;gap:10px;padding-bottom:15px}.panel-group:last-child{border-bottom:none}.group-header{align-items:center;color:#555;display:flex;font-size:14px;font-weight:600;justify-content:space-between;margin-bottom:5px}.header-btn{background:#f0f0f0;border:1px solid #ddd;border-radius:3px;cursor:pointer;font-size:12px;padding:2px 8px}.input-row{align-items:center;color:#666;display:flex;font-size:13px;justify-content:space-between}.input-row input{border:1px solid #ddd;border-radius:4px;padding:4px;text-align:right;width:80px}.input-row.compact input{width:60px}.layer-list{align-content:flex-start;display:flex;flex-direction:row;flex-wrap:wrap;gap:5px;max-height:150px;overflow-y:auto;padding:5px}.layer-item{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;font-size:12px;gap:5px;padding:4px 8px;transition:all .2s}.layer-item:hover{background-color:#f5f5f5;border-color:#ccc}.layer-item.active{background-color:#e3f2fd;border-color:#2196f3;color:#1565c0}.small-btn{align-items:center;background:linear-gradient(180deg,#f7fbff,#edf5ff);border:1px solid #d5e3ff;border-radius:4px;color:#24508a;cursor:pointer;display:flex;font-size:12px;justify-content:center;line-height:1.2;padding:4px 8px;transition:all .2s ease;white-space:nowrap;writing-mode:horizontal-tb}.small-btn:hover{background:linear-gradient(180deg,#eef6ff,#e4f0ff);border-color:#bdd5fb}.small-btn.active{background:linear-gradient(180deg,#dceeff,#cce5ff);border-color:#8cc1ff;color:#114a8a}.small-btn.delete-btn{background:linear-gradient(180deg,#fff5f5,#ffecec);border-color:#ffd1d1;color:#d43838}.small-btn.delete-btn:hover{background:linear-gradient(180deg,#ffeaea,#ffe1e1);border-color:#ffbdbd}.gcode-toggle-btn{background:linear-gradient(180deg,#f4f8ff,#e9f1ff);border-color:#c8d9f6;color:#1c4f92}.gcode-toggle-btn.is-active{background:linear-gradient(180deg,#d7e7ff,#c7dcff);border-color:#89b2f2;color:#0f4389}.preview-toggle-btn{background:linear-gradient(180deg,#f2f7ff,#e6f2ff);border-color:#c6daf7;color:#175a9e}.preview-toggle-btn.is-active{background:linear-gradient(180deg,#d7ebff,#c7e0ff);border-color:#78b7f6;color:#0a4f8e}.canvas-action-buttons .canvas-action-btn{border-radius:8px;border-width:1px;box-shadow:0 2px 8px #0f172a26;font-weight:600;min-width:98px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.canvas-action-buttons .canvas-action-btn:hover{box-shadow:0 4px 12px #0f172a33;transform:translateY(-1px)}.canvas-action-buttons .canvas-action-btn-fill{background:linear-gradient(180deg,#f0fbf4,#e1f7e9);border-color:#9bd9af;color:#17643a}.canvas-action-buttons .canvas-action-btn-fill.is-active{background:linear-gradient(180deg,#2f8f52,#1f7440);border-color:#1f7440;color:#fff}.canvas-action-buttons .canvas-action-btn-settings{background:linear-gradient(180deg,#fafaff,#f1f2ff);border-color:#d6d9ff;color:#404b84}.canvas-action-buttons .canvas-action-btn-gcode{background:linear-gradient(180deg,#eff6ff,#e3eeff);border-color:#bdd3ff;color:#1d4d9d}.canvas-action-buttons .canvas-action-btn-preview{background:linear-gradient(180deg,#f2f8ff,#e8f1ff);border-color:#c6daf7;color:#14528f}.canvas-action-buttons .canvas-action-btn-preview.is-active{background:linear-gradient(180deg,#1d67d9,#1458be);border-color:#104ba6;box-shadow:0 0 0 2px #1d67d938;color:#fff}.ring-pad{background:#f8f9fa;border:1px solid #dee2e6;border-radius:50%;box-shadow:0 2px 5px #0000000d;height:180px;margin:0 auto;position:relative;width:180px}.ring-bg,.ring-outer{height:100%;position:relative;width:100%}.ring-bg{isolation:isolate}.ring-bg svg{position:relative;z-index:1}.ring-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 2px 4px #0000001a;color:#555;cursor:pointer;display:flex;font-size:18px;height:45px;justify-content:center;position:absolute;transition:transform .16s ease,background .16s ease,box-shadow .16s ease,border-color .16s ease;width:45px}.ring-btn:active{background:#e9ecef;transform:scale(.95)}.ring-btn.up{top:10px}.ring-btn.down,.ring-btn.up{left:50%;transform:translateX(-50%)}.ring-btn.down{bottom:10px}.ring-btn.left{left:10px}.ring-btn.left,.ring-btn.right{top:50%;transform:translateY(-50%)}.ring-btn.right{right:10px}.center-home{align-items:center;background:#e3f2fd;border:1px solid #bbdefb;border-radius:50%;box-shadow:0 2px 4px #0000001a;color:#1976d2;cursor:pointer;display:flex;font-size:24px;height:50px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:50px}.center-home:hover{background:#bbdefb}.ring-btn.transparent{background:#0000;border-color:#0000;border-radius:50%;box-shadow:none;overflow:visible;z-index:3}.center-home.transparent{background:#0000;border-color:#0000;box-shadow:none;color:#0000}.center-home.transparent:hover{background:#ffffff1a}@media (hover:hover) and (pointer:fine){.ring-bg:after{background:conic-gradient(from 45deg,#bfdbfee6 0deg 90deg,#0000 90deg 1turn);border-radius:50%;content:"";filter:drop-shadow(0 3px 8px rgba(43,106,207,.28));height:164px;left:50%;-webkit-mask:radial-gradient(farthest-side,#0000 60%,#000 61%);mask:radial-gradient(farthest-side,#0000 60%,#000 61%);opacity:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%) scale(1);transition:transform .16s ease,opacity .16s ease;width:164px;z-index:0}.ring-pad:has(.ring-btn.transparent:hover) .ring-bg:after{opacity:1;transform:translate(-50%,-50%) scale(1.2)}.ring-pad:has(.ring-btn.transparent.up:hover) .ring-bg:after{background:conic-gradient(from 315deg,#bfdbfee6 0deg 90deg,#0000 90deg 1turn)}.ring-pad:has(.ring-btn.transparent.right:hover) .ring-bg:after{background:conic-gradient(from 45deg,#bfdbfee6 0deg 90deg,#0000 90deg 1turn)}.ring-pad:has(.ring-btn.transparent.down:hover) .ring-bg:after{background:conic-gradient(from 135deg,#bfdbfee6 0deg 90deg,#0000 90deg 1turn)}.ring-pad:has(.ring-btn.transparent.left:hover) .ring-bg:after{background:conic-gradient(from 225deg,#bfdbfee6 0deg 90deg,#0000 90deg 1turn)}}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #0003;display:flex;flex-direction:column;max-height:85vh;max-width:90%;width:500px}.modal-content.large{height:80vh;max-width:95%;width:900px}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:15px 20px}.modal-header h3{color:#333;font-size:18px;margin:0}.modal-header button{background:none;border:none;color:#999;cursor:pointer;font-size:20px}.modal-header button:hover{color:#333}.modal-body{display:flex;flex:1 1;flex-direction:column;gap:15px;overflow-y:auto;padding:20px}.modal-body.split{flex-direction:row;gap:20px}.preview-pane{display:flex;flex:1 1;flex-direction:column;height:100%;overflow:hidden}.preview-pane h4{color:#555;font-size:14px;margin-bottom:10px;margin-top:0}.gcode-viewer{background-color:#f8f9fa;color:#333;font-family:monospace;font-size:12px;padding:10px;resize:none;width:100%}.canvas-container,.gcode-viewer{border:1px solid #ddd;border-radius:4px;flex:1 1}.canvas-container{align-items:center;background-color:#f9f9f9;display:flex;justify-content:center;overflow:hidden;position:relative}#gcode-preview-canvas{background-color:#fff;box-shadow:0 0 5px #0000001a;max-height:100%;max-width:100%}.modal-footer{border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;padding:15px 20px}.op-btn{background-color:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.op-btn:hover{background-color:#f0f0f0}.op-btn.primary{background-color:#1976d2;border-color:#1976d2;color:#fff}.op-btn.primary:hover{background-color:#1565c0}.paper-presets{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);margin-bottom:20px}.preset-btn{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:5px;padding:10px;transition:all .2s}.preset-btn:hover{background-color:#f0f7ff;border-color:#1976d2}.preset-btn.active{background-color:#e3f2fd;border-color:#1976d2;color:#1976d2}.preset-name{font-size:14px;font-weight:600}.preset-dim{color:#777;font-size:12px}.custom-size-row{display:flex;gap:20px}.custom-input{display:flex;flex:1 1;flex-direction:column;gap:5px}.custom-input label{color:#666;font-size:12px}.custom-input input{border:1px solid #ddd;border-radius:4px;padding:8px}.property-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:5px}.prop-row{align-items:center;display:flex;font-size:12px;justify-content:space-between;margin-bottom:8px}.prop-row.full{grid-column:span 2}.prop-row label{color:#6b7280;font-size:11px;margin-right:3px;min-width:32px;white-space:nowrap}.prop-row input{border:1px solid #ddd;border-radius:3px;flex:1 1;font-size:12px;min-width:0;padding:3px 5px}.prop-row input[type=color]{cursor:pointer;height:24px;padding:0}.style-panel{align-items:center!important}.style-panel .prop-row{align-items:center;gap:3px;justify-content:flex-start;margin-bottom:0}.style-panel .small-btn{align-self:center}.coords-panel .prop-row{align-items:center;gap:3px;justify-content:flex-start;margin-bottom:0}.coords-panel .prop-row label,.style-panel .prop-row label{margin-right:0;min-width:auto}.coords-panel .prop-row input,.coords-panel .prop-row select,.style-panel .prop-row input,.style-panel .prop-row select{flex:0 0 auto}.ring-btn-small{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 2px 4px #0000000d;box-sizing:border-box;color:#495057;cursor:pointer;display:flex;font-size:12px;font-weight:500;height:28px;justify-content:center;line-height:1;padding:0 12px;position:absolute;transition:all .2s;width:60px;z-index:2}.ring-btn-small:hover{box-shadow:0 4px 6px #0000001a;filter:brightness(.95);transform:translateY(-2px)}.ring-btn-small.pen-up{background-color:#e3f2fd;border-color:#90caf9;color:#1565c0;left:-30px;top:-25px;transform:none}.ring-btn-small.pen-down{background-color:#e8f5e9;border-color:#a5d6a7;bottom:-25px;color:#2e7d32;left:-30px;top:auto;transform:none}.ring-btn-small.laser-on{background-color:#ffebee;border-color:#ef9a9a;color:#c62828;left:auto;right:-30px;top:-25px;transform:none}.ring-btn-small.laser-off{background-color:#f3e5f5;border-color:#ce93d8;bottom:-25px;color:#6a1b9a;left:auto;right:-30px;top:auto;transform:none}.control-grid{grid-gap:10px;background:linear-gradient(180deg,#f8fbff,#f2f7ff);border:1px solid #e0ecff;border-radius:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin-top:15px;padding:10px}.control-btn{align-items:center;border:none;border-radius:4px;box-shadow:0 2px 5px #0000001f;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;justify-content:center;padding:8px 12px;transition:background .2s,transform .1s,box-shadow .2s}.control-btn:active{box-shadow:none;transform:translateY(1px)}.control-btn.blue{background:linear-gradient(180deg,#5aa1ff,#3f85ec)}.control-btn.blue:hover{background:linear-gradient(180deg,#4f95f6,#3579de);box-shadow:0 3px 7px #3f85ec59}.control-btn.red{background:linear-gradient(180deg,#ff6b6b,#eb4a4a)}.control-btn.red:hover{background:linear-gradient(180deg,#f55e5e,#db3e3e);box-shadow:0 3px 7px #eb4a4a59}.control-btn.green{background:linear-gradient(180deg,#47ce7a,#27af5c)}.control-btn.green:hover{background:linear-gradient(180deg,#3ec171,#229f53);box-shadow:0 3px 7px #27af5c59}.print-control-btn{min-width:92px}.print-control-btn:disabled{-webkit-text-fill-color:#fff;color:#fff;opacity:1}.print-control-btn.is-printing{background:linear-gradient(180deg,#2dbb63,#1e944d)}.control-btn.orange{background:linear-gradient(180deg,#ffb547,#ee980f)}.control-btn.orange:hover{background:linear-gradient(180deg,#f7aa3e,#dd8908);box-shadow:0 3px 7px #ee980f59}.control-btn.gray{background:linear-gradient(180deg,#8992a3,#6f7787)}.control-btn.gray:hover{background:linear-gradient(180deg,#7f889a,#646c7c);box-shadow:0 3px 7px #6f778752}.control-btn.gray.btn-clear-alarm{background:linear-gradient(180deg,#ffbe55,#ea9a21)}.control-btn.gray.btn-clear-alarm:hover{background:linear-gradient(180deg,#f7b14a,#d88912);box-shadow:0 3px 7px #ea9a2159}.control-btn.gray.btn-soft-reset{background:linear-gradient(180deg,#b08cff,#8c68e6)}.control-btn.gray.btn-soft-reset:hover{background:linear-gradient(180deg,#a380f6,#7e5ad8);box-shadow:0 3px 7px #8c68e657}.control-btn.btn-motor-toggle.motor-on{background:linear-gradient(180deg,#47ce7a,#27af5c)}.control-btn.btn-motor-toggle.motor-on:hover{background:linear-gradient(180deg,#3ec171,#229f53);box-shadow:0 3px 7px #27af5c59}.control-btn.btn-motor-toggle.motor-off{background:linear-gradient(180deg,#ff6b6b,#eb4a4a)}.control-btn.btn-motor-toggle.motor-off:hover{background:linear-gradient(180deg,#f55e5e,#db3e3e);box-shadow:0 3px 7px #eb4a4a59}.control-btn.gray.btn-bounds-test{background:linear-gradient(180deg,#5fc8d8,#2ca8bf)}.control-btn.gray.btn-bounds-test:hover{background:linear-gradient(180deg,#54bfd0,#2398ad);box-shadow:0 3px 7px #2ca8bf54}.control-btn.gray.btn-set-origin{background:linear-gradient(180deg,#6f9bff,#4e79dd)}.control-btn.gray.btn-set-origin:hover{background:linear-gradient(180deg,#668ff2,#456fd0);box-shadow:0 3px 7px #4e79dd57}.floating-layer-panel{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#fffffff2;border:1px solid #ddd;border-radius:8px 0 0 8px;border-right:none;box-shadow:-2px 2px 10px #0000001a;display:flex;flex-direction:column;flex-shrink:0;pointer-events:auto;position:relative;transition:transform .3s cubic-bezier(.25,.8,.25,1);width:220px;z-index:100}.floating-panels-container{align-items:flex-end;bottom:10px;display:flex;flex-direction:column;gap:10px;padding-right:10px;pointer-events:none;position:absolute;right:0;top:60px;z-index:999}.layer-manager-panel{display:flex;flex:0 1 auto;flex-direction:column;max-height:none;min-height:100px;overflow:visible}.layout-manager-panel{flex:0 0 auto;max-height:none}.layout-grid{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(6,1fr)}.layout-icon-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:4px;color:#555;cursor:pointer;display:flex;font-size:16px;height:28px;justify-content:center;padding:0;transition:all .2s;width:28px}.layout-icon-btn:hover{background-color:#f0f0f0;border-color:#ddd;color:#333}.layout-section-title{border-bottom:1px solid #eee;color:#666;font-size:12px;font-weight:600;margin:8px 0 4px;padding-bottom:4px}.adsorbed-align-panel{border-top:1px solid #eee;margin-top:10px;padding-top:5px}.online-editor-container{max-width:100%;min-width:0;overflow-x:hidden;width:100%}:fullscreen .online-editor-container{height:100vh;width:100vw}.floating-layer-panel.collapsed{transform:translateX(100%)}.layer-panel-toggle{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:4px 0 0 4px;border-right:none;box-shadow:-2px 0 4px #0000000d;color:#666;cursor:pointer;display:flex;font-size:10px;height:32px;justify-content:center;left:-16px;position:absolute;top:10px;-webkit-user-select:none;user-select:none;width:16px;z-index:101}.layer-panel-toggle:hover{background-color:#f0f0f0}.layer-panel-content{display:flex;flex:1 1;flex-direction:column;gap:8px;min-height:0;overflow:hidden;padding:10px}.layer-list-content{display:flex;flex:1 1;flex-direction:column;gap:4px;min-height:0;overflow-y:auto;overscroll-behavior:contain}.layer-name-input{border:1px solid #1890ff;border-radius:2px;box-sizing:border-box;flex:1 1;font-size:12px;outline:none;padding:2px 4px;width:100%}.layer-name-span{cursor:text;flex:1 1;font-size:12px;overflow:hidden;padding:2px 0;text-overflow:ellipsis;white-space:nowrap}.layer-actions{display:flex;gap:2px;opacity:0;transition:opacity .2s}.layer-item:hover .layer-actions{opacity:1}.delete-btn{color:red}
/*# sourceMappingURL=main.c8988edf.css.map*/