*{margin:0;padding:0;box-sizing:border-box}body{display:flex;height:100vh;overflow:hidden;position:relative}.left-side-panel{width:250px;background-color:#fafafa;color:#000;font-size:20px;padding-left:10px;padding-right:10px;font-family:Arial;display:flex;flex-direction:column}.welcome-message{margin-top:20px;margin-right:20px;font-size:14px;color:#333;line-height:1.4;padding:10px;text-align:justify;border:1px solid rgb(255,112,112);border-radius:10px;background-color:#fbebeb}.patreon-message{margin-top:20px;margin-right:20px;font-size:14px;color:#333;line-height:1.4;padding:10px;text-align:justify;border:1px solid rgb(94,132,255);border-radius:10px;background-color:#c7c7fa}.right-side-panel{width:250px;background-color:#fafafa}#drawingArea{flex:1;background-color:#fff;cursor:crosshair;position:relative;border-left:1px solid lightgrey;border-right:1px solid lightgrey;padding:0;display:flex;flex-direction:column;min-width:0;min-height:0}svg{width:100%;height:100%}#svgCanvas svg.layout-viewport{width:auto;height:auto}#svgCanvas{flex:1 1 auto;min-height:0;display:block}.layout-vp-controls{position:absolute;top:12px;right:12px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;background:rgba(255,255,255,.92);border:1px solid #c8c8c8;border-radius:6px;box-shadow:0 2px 8px #0000001f;-webkit-user-select:none;user-select:none}.layout-vp-controls .layout-vp-row{display:flex;gap:4px}.layout-vp-controls button{width:28px;height:28px;font-size:14px;line-height:1;border:1px solid #d0d0d0;background:#f7f7f7;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#333;padding:0}.layout-vp-controls button:hover{background:#e6f0fb;border-color:#4a90d9}.layout-vp-controls button:active{background:#d6e6f7}.layout-vp-controls .layout-vp-row-print{margin-top:6px;padding-top:6px;border-top:1px solid #e0e0e0}.layout-vp-controls .layout-vp-row-print button{width:auto;min-width:96px;height:28px;padding:0 14px;font-size:12px;font-weight:600;color:#0a66c2;white-space:nowrap}.layout-vp-controls .layout-vp-row-print button:hover{background:#0a66c2;color:#fff;border-color:#0a66c2}.instruction-bar{flex:0 0 auto;width:100%;min-height:26px;padding:4px 12px;box-sizing:border-box;background:#fafafa;border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0;color:#333;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:18px;display:flex;align-items:center;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.instruction-bar:empty:before{content:"Ready.";color:#888;font-style:italic}[id$=-instructions]{display:none!important}#arc-mode-selector,#circle-mode-selector,#path-mode-selector,#polygonModePanel,#starModePanel,#freeHandModePanel,#text-mode-toggle,#add-image-mode-toggle{bottom:64px!important}#spaceTabs{flex:0 0 auto;display:flex;align-items:center;gap:0;height:28px;background:#fafafa;border-top:1px solid #d0d0d0;padding:0 6px;font-family:Arial,Helvetica,sans-serif;font-size:12px;-webkit-user-select:none;user-select:none;overflow-x:auto;overflow-y:hidden}#spaceTabs .space-tab{padding:4px 14px;margin-right:2px;background:#e8e8e8;color:#555;border:1px solid #d0d0d0;border-bottom:none;border-radius:4px 4px 0 0;cursor:pointer;white-space:nowrap;line-height:18px}#spaceTabs .space-tab:hover{background:#ddd;color:#222}#spaceTabs .space-tab.active{background:#ffffff;color:#111;font-weight:600;border-color:#b0b0b0;position:relative;z-index:1}#spaceTabs .space-tab-close{display:inline-block;margin-left:8px;width:16px;height:16px;line-height:14px;text-align:center;font-size:14px;color:#888;border-radius:50%;cursor:pointer;vertical-align:middle}#spaceTabs .space-tab-close:hover{background:#e74c3c;color:#fff}#spaceTabs .space-tab-add{margin-left:4px;width:22px;height:22px;line-height:18px;font-size:14px;font-weight:600;background:#ffffff;color:#555;border:1px solid #d0d0d0;border-radius:50%;cursor:pointer;padding:0}#spaceTabs .space-tab-add:hover{background:#e8f3ff;color:#0a66c2;border-color:#0a66c2}#spaceTabs .space-tab-action{margin-left:4px;width:22px;height:22px;line-height:18px;font-size:13px;font-weight:600;background:#ffffff;color:#555;border:1px solid #d0d0d0;border-radius:4px;cursor:pointer;padding:2px;display:inline-flex;align-items:center;justify-content:center}#spaceTabs .space-tab-action svg{display:block;width:100%;height:100%}#spaceTabs .space-tab-action:hover{background:#e8f3ff;color:#0a66c2;border-color:#0a66c2}.space-tab-menu{position:fixed;z-index:10001;background:#ffffff;border:1px solid #c8c8c8;border-radius:6px;box-shadow:0 4px 14px #0000002e;padding:4px 0;min-width:140px;font-family:Arial,Helvetica,sans-serif;font-size:12px}.space-tab-menu-item{padding:6px 14px;cursor:pointer;color:#222}.space-tab-menu-item:hover{background:#f0f6ff}.layout-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);z-index:10000;display:flex;align-items:center;justify-content:center;font-family:Arial,Helvetica,sans-serif}.layout-dialog{background:#ffffff;border-radius:8px;box-shadow:0 8px 32px #00000040;padding:22px 26px;width:380px;max-width:92vw}.layout-dialog h3{margin:0 0 16px;font-size:15px;color:#222}.layout-dialog-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.layout-dialog-row label{width:110px;font-size:12px;color:#444}.layout-dialog-row input,.layout-dialog-row select{flex:1;height:30px;border:1px solid #d0d0d0;border-radius:5px;padding:0 8px;font-size:13px;background:#f9f9f9;outline:none;box-sizing:border-box}.layout-dialog-row input[type=number]{width:80px;flex:0 0 auto}.layout-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.layout-dialog-actions button{height:30px;padding:0 14px;font-size:12px;border-radius:5px;border:1px solid #c0c0c0;background:#f5f5f5;cursor:pointer}.layout-dialog-actions button.primary{background:#0a66c2;border-color:#0a66c2;color:#fff}.layout-dialog-actions button:hover{filter:brightness(.96)}.app-branding{display:flex;align-items:flex-end;gap:8px;margin:20px 0}.app-branding .app-logo{margin:0}.app-branding .app-name{margin:0;line-height:1}.file-name-display-wrapper{margin-left:0;margin-bottom:10px;width:100%;background-color:#fafafa;border:1px solid transparent;border-radius:6px;padding:6px 0;transition:border-color .2s ease,box-shadow .2s ease}.file-controller-panel{margin-top:auto;margin-bottom:20px}.file-name-display-wrapper.active{border:1px solid #4a90e2;box-shadow:0 0 0 2px #4a90e233}.file-name-display{display:block;width:100%;cursor:text;font-size:18px;color:#333;-webkit-user-select:none;user-select:none;padding:0}.file-name-input{display:none;width:100%;border:0;outline:none;font-size:18px;color:#333;background:transparent;padding:0;box-sizing:border-box}.file-name-input::placeholder{color:#999}.file-name-display-wrapper.active .file-name-input{padding-left:10px;padding-right:10px}.info-panel{display:none;flex-direction:column;width:230px;height:220px;flex-shrink:0;flex-grow:0;margin:10px 10px 0;padding:10px;border:1px solid #d0d0d0;border-radius:6px;background-color:#fafafa;font-family:Arial,sans-serif;font-size:12px;color:#333;box-shadow:0 1px 2px #0000000d}.info-panel.is-visible{display:flex}.info-panel-title{font-size:14px;font-weight:600;margin-bottom:6px}.info-table-container{flex:1;overflow-y:auto;overflow-x:hidden;border-top:1px solid #e0e0e0;padding-top:6px;position:relative;max-height:200px}.info-table{width:100%;border-collapse:collapse}.info-table td{padding:4px 0;vertical-align:middle}.info-table td:first-child{width:40%;color:#555;padding-right:6px;font-weight:500}.info-table input[type=text],.info-table input[type=number]{width:100%;padding:4px 6px;border:1px solid #c0c0c0;border-radius:4px;font-size:12px;background-color:#fff}.info-table input[type=text]:focus,.info-table input[type=number]:focus{outline:none;border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e233}.info-panel-empty{margin-top:6px;font-size:12px;color:#888}.info-table-scroll-indicator{position:sticky;bottom:0;left:0;right:0;padding:12px 0 4px;text-align:center;font-size:11px;color:#555;background:linear-gradient(to bottom,rgba(250,250,250,0),rgba(250,250,250,.95));opacity:0;visibility:hidden;transition:opacity .2s ease;pointer-events:none}.info-table-scroll-indicator.is-visible{opacity:1;visibility:visible}.info-selected line,.info-selected rect,.info-selected circle,.info-selected ellipse,.info-selected polygon,.info-selected path,g.info-selected line,g.info-selected rect,g.info-selected circle,g.info-selected ellipse,g.info-selected polygon,g.info-selected path{stroke:#1976d2!important}.info-selected text,g.info-selected text{fill:#1976d2!important}.app-logo{width:27px;height:30px;display:inline-block;vertical-align:middle;margin-top:20px;margin-bottom:20px}h3{font-size:12px;font-weight:400;font-family:Arial;color:#000}.tool-button:after,.snap-button:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .1s ease-out 0s;margin-bottom:5px;z-index:2}.tool-button:hover:after,.snap-button:hover:after{opacity:1;transition:opacity .3s ease-in 1.5s}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.tool-button-container{display:flex;flex-direction:column;width:200px;background-color:#fafafa}.tool-button-row{display:flex;flex-wrap:wrap;gap:1px;margin-bottom:1px}.tool-button-row:last-child{margin-bottom:0}.canvas-controller-button-container{display:flex;justify-content:flex-start;flex-direction:row;flex-wrap:wrap;gap:1px;padding:0}.file-controller-button-container{display:flex;flex-direction:column;gap:1px;padding:0}.snap-button-container{display:flex;flex-direction:column;width:200px;background-color:#fafafa}.tool-button,.snap-button{padding:0;font-size:14px;border:0px solid #f0f0f0;border-radius:0;background:#ffffff;cursor:pointer;transition:background .2s;width:30px;height:30px;display:flex;align-items:center;justify-content:center;position:relative}.tool-button:disabled,.snap-button:disabled{opacity:.45;cursor:not-allowed}.tool-button:disabled img,.snap-button:disabled img{filter:grayscale(1)}.tool-button img,.snap-button img{width:20px;height:20px;object-fit:contain}.tool-button:hover,.snap-button:hover{background:#e0e0e0;border:0px solid #f0f0f0;border-radius:0}.tool-button.active,.snap-button.active{background:#0095ff;color:#fff;border-color:#0095ff;border-radius:0}.tool-button-row:first-child>.tool-button:first-child,.tool-button-row:first-child>.snap-button:first-child{border-top-left-radius:5px}.tool-button-row:first-child>.tool-button:last-child,.tool-button-row:first-child>.snap-button:last-child{border-top-right-radius:5px}.tool-button-row:last-child>.tool-button:first-child,.tool-button-row:last-child>.snap-button:first-child{border-bottom-left-radius:5px}.tool-button-row:last-child>.tool-button:last-child,.tool-button-row:last-child>.snap-button:last-child{border-bottom-right-radius:5px}.canvas-controller-button-container>.tool-button:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}.canvas-controller-button-container>.tool-button:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}.tool-button.active img,.snap-button.active img{filter:brightness(0) invert(1)}#svgCanvas line{vector-effect:non-scaling-stroke}#svgCanvas g.dimension *,#svgCanvas g.dimension-preview *,#svgCanvas g.angle-dimension *,#svgCanvas g.angle-preview *,#svgCanvas .snap-indicator *,#svgCanvas .temporary,#svgCanvas .construction,#svgCanvas .dimension-extension-line{vector-effect:non-scaling-stroke}#show-action-button,#show-snap-button,#show-stroke-button,#show-fill-button,#show-text-button,#show-scale-button,#show-arrow-button,#show-dimension-button,#show-info-button,#show-z-button,#show-ai-button{padding:8px;cursor:pointer;background-color:#fff;font-size:12px;font-weight:400;border:none;border-bottom:2px solid transparent;color:#7f7f7f;font-family:Arial;height:30px;border-radius:0}#show-action-button:hover,#show-snap-button:hover,#show-stroke-button:hover,#show-fill-button:hover,#show-text-button:hover,#show-scale-button:hover,#show-arrow-button:hover,#show-dimension-button:hover,#show-info-button:hover,#show-z-button:hover,#show-ai-button:hover{background:#ffffff}#show-action-button.active,#show-snap-button.active,#show-stroke-button.active,#show-fill-button.active,#show-text-button.active,#show-scale-button.active,#show-arrow-button.active,#show-dimension-button.active,#show-info-button.active,#show-z-button.active,#show-ai-button.active{background:#ffffff;color:#000;border-bottom-color:#000}.button-container{display:flex;flex-wrap:wrap;gap:1px}.op-content-div{display:none;padding:0;margin-left:10px;margin-top:10px;border:none;border-radius:0}.op-content-div.visible{display:block}.scale-mode-button-group{display:flex;gap:1px}.scale-mode-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;border-radius:0;background:#f1f1f1;cursor:pointer;padding:3px;transition:background-color .2s ease,border-color .2s ease}.scale-mode-button:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}.scale-mode-button:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}.scale-mode-button:hover{background:#EFF4F9}.scale-mode-button.active{background:#dcdcdc}.scale-mode-button img{width:14px;height:14px;pointer-events:none}.scale-mode-button:focus-visible{outline:2px solid #4a90e2;outline-offset:2px}.scale-settings-div{overflow-y:scroll}.fill-settings-div.op-content-div.visible,.text-settings-div.op-content-div.visible{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;max-height:calc(100vh - 360px);padding-right:6px}.constraint-input{position:absolute;width:60px;height:20px;font-size:12px;border:none;background:#f0f0f0;z-index:1000;outline:none;text-align:center;border:1px solid transparent;transform-origin:50% 50%;pointer-events:auto}.constraint-input:invalid{border-color:red;background:#ffe6e6}.constraint-input:focus{background:#ffffff;box-shadow:none}.constraint-input-field{width:100%;height:100%;border:none;background:transparent;outline:none;font-size:inherit;text-align:inherit;transform-origin:50% 50%;pointer-events:auto}input:focus,select:focus,textarea:focus{outline:none;box-shadow:none}select{box-shadow:none;background:#ffffff;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 8px}.op-content-div input:not([type=checkbox]):not([type=file]),.op-content-div select,.op-content-div textarea,.op-content-div div:has(>input[type=color]){background:#ffffff!important;background-color:#fff!important}
