:root{--canvas-height:600px;--text-color:#e9ecef;--text-muted:#a9b1bb;--text-muted-strong:#c4cbd3;--text-subtle:#7f8a96;--text-inverse:#f8f9fa;--text-strong:#0b0d10;--bg-color:#1b1e23;--canvas-bg:#16191e;--panel-bg:#20242a;--panel-bg-strong:#252a31;--panel-border:#303741;--panel-border-strong:#3a434f;--panel-hover:#2b3139;--panel-soft:#252a31;--button-bg:#20242a;--btn-disabled-bg:#3a4048;--btn-disabled-text:#8e98a3;--accent:#2c7da0;--accent-strong:#1d6d8d;--highlight:#2aa6b8;--highlight-strong:#1f8796;--on-highlight:#0b0d10;--focus-ring:#5aa9e6;--hover-green:#29c17e;--link-color:#2c7da0;--link-hover:#1d6d8d;--menu-bg:#1f2329;--menu-hover:#2a3038;--menu-dropdown-bg:#f4f6f8;--menu-dropdown-text:#1b1e23;--menu-dropdown-border:#d6dbe1;--menu-dropdown-hover:#e9edf2;--menu-disabled:#9aa4af;--menu-mobile-bg:#1f2329;--menu-mobile-border:#313844;--menu-mobile-hover:#2a3038;--loading-bg:#0a0c0f99;--spinner-track:#2f3640;--spinner-head:#5aa9e6;--status-processing:#f6b26b;--error-bg:#3b2025;--error-text:#f4c7cf;--error-border:#7a3a44;--error-close-hover:#fff;--info-bg:#1f3441;--info-text:#d4ecf7;--info-border:#2c7da0;--warning-bg:#3a2c1c;--warning-text:#ffe0b2;--warning-border:#c98c3d;--popup-overlay:#0a0c0fb3;--popup-bg:#f7f9fb;--popup-text:#1b1e23;--popup-heading:#2c7da0;--popup-link:#2c7da0;--popup-muted:#6b7682;--popup-bg-dark:#20242a;--popup-text-dark:#e9edf2;--popup-muted-dark:#a7b0bb;--popup-heading-dark:#9ad4e5;--popup-link-dark:#8ab4ff;--popup-shadow:#05080c59;--popup-heading-muted:#9aa4af;--popup-text-muted:#b5bdc7;--popup-close-hover:#d6dde5;--popup-button-border:#d6dbe1;--popup-button-hover:#e6eaef;--color-picker-bg:#20242a;--color-picker-shadow:#12151a80;--color-picker-actions:#9aa4af;--toggle-border:#2aa6b8;--toggle-bg-active:#2aa6b8;--toggle-select:#3c8c6b;--toggle-select-border:#2f7558;--toggle-delete:#d9534f;--toggle-delete-border:#b94440;--toggle-delete-hover:#c9403c;--preview-dark:#fff;--preview-light:#1f2329;--input-bg-light:#fff;--input-border-light:#8e98a3;--input-text-light:#1b1e23}.light-mode{--text-color:#1b1e23;--text-strong:#0b0d10;--text-muted:#6b7682;--bg-color:#f7f9fb;--panel-bg:#fff;--panel-bg-strong:#f4f6f8;--panel-border:#d6dbe1;--panel-border-strong:#c2c8d1;--panel-hover:#e9edf2;--panel-soft:#eef2f6;--button-bg:#fff;--link-hover:#1d6d8d;--popup-text:#1b1e23;--popup-muted:#6b7682;--popup-heading-muted:#1b1e23;--popup-text-muted:#6b7682;--error-bg:#fdecee;--error-text:#8a2c3a;--error-border:#f3c2c7;--info-bg:#e7f4fb;--info-text:#1f4d63;--info-border:#9cc8df;--warning-bg:#fdf3e3;--warning-text:#6e4a14;--warning-border:#e5b878;--canvas-bg:#fff;--color-picker-bg:#fff;--color-picker-shadow:#cbd3dd80;--color-picker-actions:#6b7682}.dark-mode{--popup-bg:var(--popup-bg-dark);--popup-text:var(--popup-text-dark);--popup-muted:var(--popup-muted-dark);--popup-heading:var(--popup-heading-dark);--popup-heading-muted:var(--popup-text-dark);--popup-text-muted:var(--popup-muted-dark);--popup-link:var(--popup-link-dark)}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text-color);background-color:var(--bg-color);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}.light-mode{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text-color);background-color:var(--bg-color)}.dark-mode{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text-color);background-color:var(--bg-color)}a{color:var(--link-color);-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:var(--link-hover)}body{min-width:320px;min-height:100vh;margin:0}h1{text-align:center;font-size:3.2em;line-height:1.1}h2{margin:1rem 0;font-size:1.5em}h3{color:var(--text-muted);margin:.8rem 0;font-size:1.2em}#app{max-width:1400px;min-height:100vh;margin:0 auto}button{background-color:var(--button-bg);color:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;margin:.25rem;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:var(--accent-strong)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.app-shell{background-color:var(--menu-bg);color:#fff;z-index:1000;justify-content:space-between;align-items:center;height:40px;margin-bottom:8px;padding:0 10px;display:flex;position:relative}.app-shell-left{align-items:center;display:flex}.app-shell-right{align-items:center;gap:.5rem;display:flex}.app-shell-logo{height:30px;margin-right:10px}.app-shell-hamburger{color:#fff;cursor:pointer;background:0 0;border:none;padding:0 10px;font-size:24px;display:none}.app-shell-menu{align-items:center;display:flex}.app-shell-language{border:1px solid var(--menu-mobile-border);color:#fff;cursor:pointer;opacity:.7;background:0 0;border-radius:4px;padding:3px 10px;font-family:inherit;font-size:13px}.app-shell-language:disabled{cursor:not-allowed;opacity:.4}.app-shell-theme-toggle{background:var(--menu-bg);color:#fff;cursor:pointer;border:none;border-radius:4px;align-items:center;width:38px;padding:0 10px;font-size:22px;display:flex}.app-shell-menu-backdrop{display:none}@media (width<=600px){.app-shell-hamburger{display:block}.app-shell-left{flex-grow:1}.app-shell-menu{background-color:var(--menu-mobile-bg);flex-direction:column;align-items:flex-start;width:100%;max-height:0;transition:max-height .25s;display:flex;position:absolute;top:100%;left:0;overflow:hidden;box-shadow:0 6px 18px #00000059}.app-shell-menu.open{max-height:80vh;overflow-y:auto}.app-shell-menu-backdrop{z-index:990;background-color:#0006;display:block;position:fixed;inset:40px 0 0}}.light-mode .app-shell,.light-mode .app-shell-hamburger,.light-mode .app-shell-theme-toggle{background-color:var(--menu-bg);color:#fff}.menu-item{position:relative}.menu-button{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:0;padding:5px 20px;font-family:inherit;font-size:16px}.menu-button:hover,.menu-item:hover>.menu-button{background-color:var(--menu-hover)}.dropdown-content{background-color:var(--menu-dropdown-bg);z-index:1;min-width:220px;display:none;position:absolute;box-shadow:0 8px 16px #0003}.menu-item:hover .dropdown-content{display:block}.dropdown-content a{color:var(--menu-dropdown-text);text-align:left;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;text-decoration:none;display:flex}.dropdown-content a:hover{background-color:var(--menu-dropdown-hover)}.dropdown-content a.disabled{color:var(--menu-disabled);pointer-events:none;cursor:default}.shortcut{color:var(--text-subtle);font-size:14px}.menu-separator{border-top:1px solid var(--menu-dropdown-border);margin:5px 0}.submenu-item{position:relative}.submenu-item>a{justify-content:space-between;align-items:center;display:flex}.submenu-arrow{margin-left:auto;padding-left:1rem}.submenu-content{background-color:var(--menu-dropdown-bg);z-index:1;border:1px solid var(--menu-dropdown-border);min-width:250px;display:none;position:absolute;top:-1px;left:100%;box-shadow:0 8px 16px #0003}.submenu-item:hover>.submenu-content{display:block}@media (width<=600px){.app-shell-menu.open .submenu-item>a{font-weight:700}.app-shell-menu.open .submenu-arrow{display:none}.app-shell-menu.open .submenu-content{box-shadow:none;background-color:#0000;border:none;min-width:auto;padding-left:16px;display:block;position:static}.submenu-item:hover>.submenu-content{display:none}.app-shell-menu.open .submenu-item:hover>.submenu-content{display:block}.shortcut{display:none}.menu-item{width:100%}.menu-button{text-align:left;width:99%}.dropdown-content{box-shadow:none;background-color:var(--menu-mobile-border);border-top:1px solid var(--menu-mobile-border);display:none;position:static}.menu-item:focus-within .dropdown-content{display:block}.dropdown-content a{color:#fff}.dropdown-content a:hover{background-color:var(--menu-mobile-hover)}}.light-mode .menu-item>.menu-button{background-color:var(--menu-bg);color:#fff}.light-mode .dropdown-content a:hover{color:#000}.popup-overlay{background-color:var(--popup-overlay);z-index:1000;justify-content:center;align-items:center;width:100%;height:100%;padding:1.5rem;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.popup-content{background:var(--panel-bg);color:var(--text-color);border:1px solid var(--panel-border);width:min(560px,100%);box-shadow:0 12px 40px var(--popup-shadow);border-radius:12px;padding:1.4rem 1.6rem;position:relative}.popup-content h1{color:var(--text-color);margin:0 0 .6rem;font-size:1.5rem}.popup-content h2{color:var(--text-color);margin:0 0 .7rem;font-size:1.1rem}.popup-content h3{color:var(--accent);letter-spacing:.01em;margin:1.1rem 0 .4rem;font-size:.95rem}.popup-content a{color:var(--link-color);text-decoration:none}.popup-content a:hover{text-decoration:underline}.popup-content ul{margin:.3rem 0 .6rem;padding-left:1.2rem}.popup-content ul li{margin:.25rem 0;line-height:1.45}.popup-content kbd{background:var(--panel-bg-strong);border:1px solid var(--panel-border-strong);color:var(--text-color);border-bottom-width:2px;border-radius:4px;padding:.05em .4em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em;display:inline-block}.popup-close-hint{color:var(--text-muted);text-align:center;margin-top:1rem;font-size:.85rem}.popup-text,.popup-text-scrollable{color:var(--text-color);line-height:1.5}.popup-text-scrollable{max-height:min(60vh,480px);padding-right:.4rem;overflow-y:auto}.popup-text-scrollable p{margin:.4rem 0 .7rem}.shortcuts-table{border-collapse:collapse;width:100%;margin-top:.4rem}.shortcuts-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--panel-border);padding:.4rem .6rem;font-size:.85rem;font-weight:600}.shortcuts-table td{border-bottom:1px solid var(--panel-border);color:var(--text-color);padding:.4rem .6rem;font-size:.92rem}.shortcuts-table tr:last-child td{border-bottom:none}.about-version{color:var(--text-muted);text-align:center;margin:-.2rem 0 .8rem;font-size:.8em}.popup-close-btn{cursor:pointer;color:var(--text-subtle);z-index:10;background:0 0;border:none;border-radius:6px;padding:.3rem;line-height:1;transition:color .15s,background .15s;position:absolute;top:.55rem;right:.7rem}.popup-close-btn:hover{color:var(--text-color);background:var(--panel-hover)}.popup-close-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.popup-logo{max-width:92px;height:auto;margin:0 auto .6rem;display:block}.irregular-head-editor{flex-direction:column;align-items:center;gap:1rem;padding:.4rem 0;display:flex}.irregular-head-editor .big-preview{background:var(--panel-bg-strong);border:1px solid var(--panel-border);border-radius:10px;justify-content:center;align-items:center;width:220px;height:220px;padding:.5rem;display:flex}.irregular-head-editor .big-preview svg{width:100%;height:100%}.irregular-head-editor .big-preview .attaching-edge-chevron{fill:var(--text-color)}.irregular-head-editor .controls{flex-flow:wrap;justify-content:center;gap:.5rem;display:flex}.irregular-head-editor .btn-left,.irregular-head-editor .btn-right,.irregular-head-editor .btn-flip{appearance:none;border:1px solid var(--panel-border);background:var(--panel-bg-strong);color:var(--text-color);cursor:pointer;border-radius:8px;padding:.5rem .95rem;font-family:inherit;font-size:.92rem;transition:border-color .15s,background .15s}.irregular-head-editor .btn-left:hover,.irregular-head-editor .btn-right:hover,.irregular-head-editor .btn-flip:hover{border-color:var(--accent);background:var(--panel-hover)}.irregular-head-editor .btn-left:focus-visible,.irregular-head-editor .btn-right:focus-visible,.irregular-head-editor .btn-flip:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media (width<=600px){.popup-content{border-radius:10px;padding:1.1rem}.popup-content h1{font-size:1.3rem}.popup-content h2{font-size:1.05rem}}.settings-content{max-width:640px}.settings-grid{flex-direction:column;gap:16px;margin-top:10px;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.settings-label{color:var(--popup-heading);min-width:220px;font-weight:600}.settings-control{align-items:center;gap:12px;display:flex}.settings-swatch{border:1px solid var(--popup-button-border);border-radius:6px;width:32px;height:32px;transition:transform .12s,box-shadow .12s,border-color .12s;box-shadow:inset 0 0 0 1px #00000014}.settings-swatch-button{cursor:pointer;background:0 0;border:none;padding:0}.settings-swatch-button:hover .settings-swatch{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 10px #0000002e}.settings-swatch-button:active .settings-swatch{transform:translateY(0);box-shadow:inset 0 0 0 1px #0000002e}.settings-swatch-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:8px}.settings-value{color:var(--popup-text-muted);font-family:monospace;font-size:.9em}.settings-range{width:200px;accent-color:var(--accent)}.settings-radio-group{flex-direction:row;gap:1rem;display:flex}.settings-radio-label{cursor:pointer;color:var(--popup-text);align-items:center;gap:.35em;font-size:.92em;display:inline-flex}.settings-radio-label input[type=radio]{cursor:pointer;accent-color:var(--accent)}.settings-color-picker-overlay{z-index:1100}.settings-color-picker-content{background:var(--color-picker-bg);box-shadow:0 4px 24px var(--color-picker-shadow);flex-direction:column;align-items:center;gap:1em;display:flex}@media (width<=600px){.settings-row{flex-direction:column;align-items:flex-start}.settings-label{min-width:auto}}.editor-layout{grid-template-columns:300px 1fr;align-items:start;gap:.5rem;display:grid}.canvas-container{flex-direction:column;flex-grow:1;display:flex}.editor-canvas-wrapper{flex-grow:1;width:100%;position:relative}.editor-canvas{width:100%}@media (width<=1200px){.editor-layout{grid-template-columns:240px 1fr}}.polygon-palette{border:2px solid var(--panel-border);background-color:var(--panel-bg);border-radius:12px;height:fit-content;padding:.5rem}.palette-sheet-handle{display:none}.palette-grid{grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:.4rem;margin:0 auto 1rem;display:grid}.polygon-btn{background-color:var(--panel-bg-strong);border:2px solid var(--panel-border-strong);min-height:70px;color:var(--text-muted-strong);cursor:grab;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:.5rem;transition:all .3s;display:flex}.polygon-btn:active{cursor:grabbing}body:has(.polygon-palette.is-palette-dragging){cursor:grabbing}.polygon-btn:hover{border-color:var(--accent);background-color:var(--panel-hover);color:var(--text-inverse);transform:translateY(-2px);box-shadow:0 4px 8px #646cff4d}.polygon-btn.selected{border-color:var(--accent);background-color:var(--highlight);color:var(--on-highlight);box-shadow:0 0 10px #646cff80}.polygon-btn.selected:hover{background-color:var(--highlight-strong);border-color:var(--accent-strong)}.polygon-btn .attaching-dot{display:none}.polygon-btn.selected .attaching-dot{display:inline}.polygon-label{margin-top:.5rem;font-size:.7rem;font-weight:600}.palette-section{margin-bottom:.85rem}.palette-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);margin:0 0 .4rem .2rem;font-size:.68rem;font-weight:600}.palette-queue-slot--empty{opacity:.4;cursor:default}.palette-queue-slot--empty:hover{box-shadow:none;border-color:var(--panel-border-strong);background-color:var(--panel-bg-strong);color:var(--text-muted-strong);transform:none}.regular-creator,.rhombus-creator{grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;min-height:auto;margin-bottom:.4rem;padding:.4rem .6rem;display:grid}.regular-creator .regular-preview,.rhombus-creator .rhombus-preview{justify-content:center;align-items:center;display:flex}.regular-creator .polygon-label,.rhombus-creator .polygon-label{text-align:left;margin-top:0}.regular-sides-input{width:48px}.regular-sides-wrap{align-items:center;display:inline-flex}.regular-sides-wrap .regular-sides-input{margin-top:0}.rhombus-angle-input{width:48px}.rhombus-angle-wrap{align-items:center;gap:2px;margin-top:5px;display:inline-flex}.rhombus-angle-wrap .rhombus-angle-input{margin-top:0}.rhombus-angle-suffix{color:var(--text-muted-strong);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:11px}.selected-info{background-color:var(--menu-bg);border-radius:6px;min-height:1.5rem;margin-top:.5rem;padding:.4rem}.selected-info-actions{flex-direction:column;gap:.35rem;display:flex}.selected-info-action{text-align:center;background-color:var(--panel-bg-strong);border:1px solid var(--panel-border);width:100%;color:var(--text-color);cursor:pointer;border-radius:6px;margin:0;padding:.4em .6em;font-size:.85rem}.selected-info-action:hover:not(:disabled){background-color:var(--panel-hover);border-color:var(--accent)}.selected-info-action:disabled{opacity:.5;cursor:not-allowed}.polygon-label-input{width:36px;margin-top:5px;font-size:11px}.light-mode .polygon-btn{background-color:var(--panel-bg-strong);border-color:var(--panel-border);color:var(--text-color)}.light-mode .polygon-btn:hover{background-color:var(--panel-hover);color:var(--text-strong)}.light-mode .polygon-btn.selected{border-color:var(--accent);background-color:var(--highlight);color:var(--text-inverse)}.light-mode .polygon-btn.selected:hover{background-color:var(--highlight-strong);color:var(--text-inverse)}.light-mode .polygon-label-input{background-color:var(--input-bg-light);border:1px solid var(--input-border-light);color:var(--input-text-light)}.light-mode .selected-info{background-color:var(--panel-soft)}.corner-button{margin-top:-16px;margin-left:42px}.palette-queue-slot .corner-button{background-color:var(--panel-bg);border:1px solid var(--panel-border-strong);color:var(--text-muted-strong);cursor:pointer;border-radius:4px;padding:1px 4px;font-size:14px;font-weight:700;line-height:1}.palette-queue-slot .corner-button:hover{background-color:var(--accent);color:var(--text-inverse);border-color:var(--accent)}@media (width<=600px){.polygon-palette{z-index:800;border-bottom:0;border-radius:14px 14px 0 0;flex-direction:column;height:auto;max-height:70vh;margin:0;transition:max-height .22s;display:flex;position:fixed;bottom:110px;left:0;right:0;overflow:hidden;box-shadow:0 -6px 20px #00000059}.polygon-palette.palette-sheet--peek{max-height:150px}.polygon-palette.palette-sheet--full{max-height:70vh}.palette-sheet-handle{cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:.15rem;padding:.35rem 0;display:flex}.palette-sheet-grip{background-color:var(--text-subtle);opacity:.7;border-radius:2px;width:38px;height:4px}.palette-sheet-handle-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);font-size:.7rem;font-weight:600}.polygon-palette-content{flex:auto;padding-bottom:.5rem;overflow-y:auto}}.tiling-controls{background-color:var(--menu-bg);border-radius:8px;margin-top:1.5rem;padding:1rem}.tiling-controls button{width:100%;margin:.5rem 0;padding:.5rem;font-size:.9rem;display:block}.canvas-controls{border-radius:8px;flex-direction:column;gap:10px;margin-bottom:6px;display:flex}.tool-strip{flex-flow:wrap;align-items:center;gap:.6rem;padding:.4rem .5rem;display:flex}.tool-strip-modes,.tool-strip-aux{flex-flow:wrap;align-items:center;gap:.4rem;display:flex}.tool-strip-spacer{flex:auto;min-width:1rem}.control-group{flex-wrap:wrap;gap:10px;display:flex}.visualization-controls{align-items:center;gap:10px;display:flex}.toggle-btn{border:2px solid var(--toggle-border);color:var(--toggle-border);cursor:pointer;background:0 0;border-radius:4px;flex-direction:row;align-items:center;gap:.4em;padding:6px 10px;font-family:inherit;transition:all .2s;display:inline-flex}.toggle-btn:hover{background:#646cff1a}.toggle-btn.active{background:var(--toggle-bg-active);color:#fff}.toggle-btn:disabled{opacity:.5;cursor:not-allowed}.tool-button-label{white-space:nowrap;font-size:.82rem;font-weight:500}.add-polygon-btn .tool-button-label{font-variant-numeric:tabular-nums}.toggle-btn.mode-select{background-color:var(--toggle-select);border-color:var(--toggle-select-border);color:#fff}.toggle-btn.mode-delete{background-color:var(--toggle-delete);border-color:var(--toggle-delete-border)}.toggle-btn.mode-delete:hover{background-color:var(--toggle-delete-hover)}.tiling-polygon.delete-mode{opacity:.8}.tiling-polygon.delete-mode:hover{opacity:1;filter:brightness(1.1)}.undo-button{padding:.5rem 1rem}.redo-button{margin-left:5px;padding:.5rem 1rem}.light-mode .canvas-controls,.light-mode .tiling-controls{background-color:var(--panel-soft)}.fill-swatch{border:2px solid var(--panel-border-strong);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:border-color .15s;display:inline-flex}.fill-swatch:hover{border-color:var(--accent)}.fill-swatch-chip{border:1px solid #0003;border-radius:3px;width:22px;height:22px}.mobile-bottom-toolbar-btn.fill-swatch{padding:4px}.canvas-container{border:2px solid var(--panel-border);background-color:var(--panel-bg);border-radius:12px;padding:.5rem}.node-label{pointer-events:none;-webkit-user-select:none;user-select:none}svg .node-label{opacity:.9;transition:opacity .2s}svg:hover .node-label{opacity:1}.editor-canvas{width:100%;height:var(--canvas-height);border:2px solid var(--panel-border-strong);background-color:var(--canvas-bg);cursor:grab;border-radius:8px;outline:none;display:block}.editor-canvas:active{cursor:grabbing}.editor-canvas:focus{border-color:var(--focus-ring);box-shadow:0 0 0 2px #646cff4d}.clickable-polygon,.clickable-text{cursor:pointer}.polygon-center{cursor:move}.polygon-point{cursor:crosshair}.tessellation{pointer-events:all}.tiling-polygon{cursor:pointer;transition:all .2s}.tiling-polygon:hover{fill-opacity:.6;stroke-width:2px!important}.editor-canvas.tool-add-outside .perimeter-edge-transparent{cursor:pointer}.editor-canvas.tool-add-outside .perimeter-edge-transparent:hover{filter:drop-shadow(0 0 8px #ff3d0099);stroke:var(--hover-green)!important}.editor-canvas.tool-add-inside .interior-edge-transparent{cursor:pointer}.editor-canvas.tool-add-inside .interior-edge-group:hover .interior-edge{filter:drop-shadow(0 0 8px #00c853a6);animation:1.2s ease-in-out infinite edgePulse;stroke:var(--hover-green)!important}.editor-canvas.tool-add-inside .interior-edge-transparent:hover{stroke:var(--hover-green)!important}@keyframes edgePulse{0%{stroke-width:4.5px;filter:drop-shadow(0 0 2px #00c85366)}50%{stroke-width:6.5px;filter:drop-shadow(0 0 10px #00c853e6)}to{stroke-width:4.5px;filter:drop-shadow(0 0 2px #00c85366)}}.dark-mode svg .inserter-preview-wireframe{color:var(--preview-dark);filter:drop-shadow(0 0 6px #ffffff59)}.light-mode svg .inserter-preview-wireframe{color:var(--preview-light);filter:drop-shadow(0 0 4px #00000040)}svg .failed-polygon-wireframe,svg .inserter-preview-wireframe{pointer-events:none}svg .failed-polygon-wireframe polygon,svg .inserter-preview-wireframe polygon{vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}svg .inserter-preview-wireframe polygon{filter:drop-shadow(0 0 6px #ffffff59);opacity:.9}.grid-pattern line{pointer-events:none}.status-row{background-color:var(--panel-bg);justify-content:space-between;align-items:center;height:2em;padding:.35em .8em;font-size:13px;line-height:2em;display:flex}.status-file-name{text-align:left;color:var(--text-muted-strong);white-space:nowrap;text-overflow:ellipsis;font-family:monospace;overflow:hidden}.light-mode .status-file-name{color:var(--text-color)}.status-measurement{text-align:right;color:var(--text-muted);font-family:Arial,sans-serif}.angle-toggle{cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.mode-badge{border:1px solid var(--panel-border);color:var(--text-muted-strong);cursor:pointer;-webkit-user-select:none;user-select:none;z-index:5;background-color:#0006;border-radius:12px;align-items:center;gap:.4em;padding:.3em .7em;font-family:Arial,sans-serif;font-size:12px;transition:background-color .2s,color .2s,opacity .2s;display:inline-flex;position:absolute;top:10px;left:10px}.mode-badge:hover{color:var(--text-color);background-color:#0009}.mode-badge--default{opacity:.55}.mode-badge--default:hover{opacity:1}.mode-badge-label{color:var(--text-subtle)}.mode-badge-value{font-weight:500}.light-mode .mode-badge{color:var(--text-color);background-color:#ffffffbf}.light-mode .mode-badge:hover{background-color:#fffffff2}.empty-state-card{background-color:var(--panel-bg);border:1px solid var(--panel-border);min-width:18rem;max-width:28rem;box-shadow:0 8px 24px var(--popup-shadow);text-align:center;z-index:4;border-radius:14px;flex-direction:column;align-items:center;gap:.85rem;padding:1.5rem 2rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-state-title{color:var(--text-color);margin:0;font-size:1.25rem}.empty-state-hint{color:var(--text-muted);margin:0;font-size:.95rem}.empty-state-arrow{color:var(--accent);margin-left:.2em;font-weight:600;display:inline-block}.empty-state-divider{width:100%;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5em;font-size:.8rem;display:flex}.empty-state-divider:before,.empty-state-divider:after{content:"";background-color:var(--panel-border);flex:1;height:1px}.empty-state-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.empty-state-action{border:1px solid var(--panel-border-strong);background-color:var(--button-bg);color:var(--text-color);cursor:pointer;border-radius:8px;padding:.5em 1.1em;font-size:.95rem;transition:background-color .15s,border-color .15s}.empty-state-action:hover:not(:disabled){background-color:var(--panel-hover);border-color:var(--accent)}.empty-state-action:disabled{opacity:.5;cursor:not-allowed}.empty-state-action--primary{border-color:var(--accent);color:var(--text-color)}.empty-state-action--primary:hover:not(:disabled){background-color:var(--highlight);color:var(--on-highlight);border-color:var(--accent-strong)}.mobile-bottom-toolbar{z-index:900;background-color:var(--panel-bg-strong);border-top:1px solid var(--panel-border-strong);padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom,0px));flex-direction:column;gap:.35rem;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #00000040}.mobile-bottom-toolbar-modes{scrollbar-width:thin;flex-direction:row;justify-content:space-around;align-items:center;gap:.3rem;display:flex;overflow-x:auto}.mobile-bottom-toolbar-aux{flex-direction:row;justify-content:center;align-items:center;gap:.6rem;display:flex}.mobile-bottom-toolbar-btn{min-width:44px;height:40px;color:var(--text-color);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0 .5rem;font-family:inherit;font-size:1.05rem;transition:background-color .15s,border-color .15s;display:inline-flex}.mobile-bottom-toolbar-btn:hover:not(:disabled){background:var(--panel-hover)}.mobile-bottom-toolbar-btn.active{background:var(--toggle-bg-active);border-color:var(--toggle-border);color:#fff}.mobile-bottom-toolbar-btn:disabled{opacity:.45;cursor:not-allowed}.mobile-bottom-toolbar-btn.aux{letter-spacing:.02em;font-weight:500}@media (width<=600px){.mobile-bottom-toolbar{display:flex}.canvas-controls{display:none}.editor-layout{padding-bottom:110px}}.tiling-info-panel{display:none}.tiling-info-panel--open{background-color:var(--panel-bg);border-left:1px solid var(--panel-border);z-index:6;flex-direction:column;width:260px;max-width:80%;font-size:.85rem;display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-4px 0 16px #00000040}.tiling-info-header{border-bottom:1px solid var(--panel-border);background-color:var(--panel-bg-strong);z-index:1;justify-content:space-between;align-items:center;padding:.6rem .9rem;display:flex;position:sticky;top:0}.tiling-info-title{color:var(--text-color);font-size:.95rem;font-weight:600}.tiling-info-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .5rem;font-size:1rem}.tiling-info-close:hover{background-color:var(--panel-hover);color:var(--text-color)}.tiling-info-counts{border-bottom:1px solid var(--panel-border);padding:.5rem .9rem}.tiling-info-row{justify-content:space-between;align-items:baseline;padding:.18rem 0;display:flex}.tiling-info-label{color:var(--text-muted)}.tiling-info-value{font-variant-numeric:tabular-nums;color:var(--text-color);font-weight:500}.tiling-info-vertex-types{padding:.5rem .9rem}.tiling-info-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:.35rem;font-size:.7rem;font-weight:600}.tiling-info-config{color:var(--text-color);font-family:monospace}.tiling-info-count{font-variant-numeric:tabular-nums;color:var(--text-muted)}.tiling-info-empty{color:var(--text-subtle);padding:.3rem 0;font-style:italic}@media (width<=600px){.tiling-info-panel--open{border-left:none;border-top:1px solid var(--panel-border);width:100%;max-width:100%;bottom:110px;box-shadow:0 -4px 16px #00000040}}.template-gallery{flex-direction:column;width:min(820px,92vw);max-height:80vh;display:flex}.template-gallery h2{color:var(--text-color);border-bottom:1px solid var(--panel-border);margin:0;padding:.7rem 1rem .5rem;font-size:1.05rem}.template-gallery-body{flex:auto;grid-template-columns:160px 1fr;min-height:0;display:grid}.template-gallery-sidebar{border-right:1px solid var(--panel-border);background-color:var(--panel-bg-strong);flex-direction:column;gap:.2rem;padding:.5rem;display:flex;overflow-y:auto}.template-gallery-category{text-align:left;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;margin:0;padding:.45em .7em;font-family:inherit;font-size:.9rem}.template-gallery-category:hover{background-color:var(--panel-hover);color:var(--text-color)}.template-gallery-category.active{background-color:var(--accent);border-color:var(--accent-strong);color:#fff}.template-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.7rem;padding:.7rem;display:grid;overflow-y:auto}.template-gallery-thumbnail{background-color:var(--panel-bg-strong);border:1px solid var(--panel-border);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;padding:.4rem;transition:border-color .15s,transform .15s;display:flex}.template-gallery-thumbnail:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000002e}.template-gallery-image{aspect-ratio:1;object-fit:contain;background-color:var(--canvas-bg);border:1px solid var(--panel-border);border-radius:4px;width:100%}.template-gallery-caption{text-align:center;width:100%;margin-top:.4rem}.template-gallery-name{color:var(--text-color);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:500;overflow:hidden}.template-gallery-pattern{color:var(--text-subtle);margin-top:.1rem;font-family:monospace;font-size:.72rem}@media (width<=600px){.template-gallery-body{grid-template-columns:1fr}.template-gallery-sidebar{border-right:none;border-bottom:1px solid var(--panel-border);flex-direction:row;overflow-x:auto}.template-gallery-category{flex:none}}.recent-files{flex-direction:column;width:min(560px,92vw);max-height:80vh;display:flex}.recent-files h2{color:var(--text-color);border-bottom:1px solid var(--panel-border);margin:0;padding:.7rem 1rem .5rem;font-size:1.05rem}.recent-files-body{flex-direction:column;flex:auto;gap:.4rem;padding:.7rem;display:flex;overflow-y:auto}.recent-files-row{background-color:var(--panel-bg-strong);border:1px solid var(--panel-border);cursor:pointer;border-radius:8px;align-items:center;gap:.7rem;padding:.5rem;transition:border-color .15s,transform .12s;display:flex}.recent-files-row:hover{border-color:var(--accent);transform:translateY(-1px)}.recent-files-thumb{object-fit:contain;background-color:var(--canvas-bg);border:1px solid var(--panel-border);border-radius:4px;flex-shrink:0;width:56px;height:56px}.recent-files-meta{flex-direction:column;flex:auto;min-width:0;display:flex}.recent-files-name{color:var(--text-color);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:500;overflow:hidden}.recent-files-path{color:var(--text-subtle);white-space:nowrap;text-overflow:ellipsis;margin-top:.1rem;font-family:monospace;font-size:.75rem;overflow:hidden}.recent-files-when{color:var(--text-muted);margin-top:.1rem;font-size:.75rem}.recent-files-empty{text-align:center;color:var(--text-subtle);padding:1.2rem .6rem;font-style:italic}.recent-files-footnote{border-top:1px solid var(--panel-border);color:var(--text-subtle);background-color:var(--panel-bg-strong);padding:.5rem 1rem;font-size:.75rem}@media print{.app-shell,.app-shell-menu-backdrop,.canvas-controls,.polygon-palette,.palette-sheet-handle,.mobile-bottom-toolbar,.status-row,.tiling-info-panel,.empty-state-card,.mode-badge,.zoom-rotation,.loading-indicator,.error-container,.popup-overlay{display:none!important}html,body,#app,.editor-layout,.canvas-container,.editor-canvas-wrapper{color:#000!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important}.editor-layout{display:block!important}.editor-canvas{page-break-inside:avoid;cursor:default!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:100vh!important}}.first-run-overlay{z-index:2000;background:#0000008c;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0;overflow-y:auto}.first-run-card{background:var(--panel-bg);border:1px solid var(--panel-border);text-align:center;border-radius:16px;width:min(720px,100%);padding:2rem;box-shadow:0 12px 40px #0006}.first-run-title{color:var(--text-color);margin:0 0 .5rem;font-size:1.6rem}.first-run-subtitle{color:var(--text-muted);margin:0 0 1.5rem;font-size:.95rem;line-height:1.45}.first-run-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;display:grid}.first-run-cta{background:var(--panel-bg-strong);border:1px solid var(--panel-border);color:var(--text-color);cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:.55rem;padding:1.2rem 1rem;font-family:inherit;transition:border-color .15s,transform .12s,background .15s;display:flex}.first-run-cta:hover{border-color:var(--accent);background:var(--panel-hover);transform:translateY(-2px)}.first-run-cta:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.first-run-cta-icon{width:48px;height:48px;color:var(--accent)}.first-run-cta-icon svg{width:100%;height:100%}.first-run-cta-headline{color:var(--text-color);font-size:1rem;font-weight:600}.first-run-cta-body{color:var(--text-muted);font-size:.82rem;line-height:1.35}@media (width<=600px){.first-run-card{padding:1.2rem}.first-run-title{font-size:1.3rem}.first-run-cards{grid-template-columns:1fr}}.unsaved-confirm-overlay{z-index:2100}.unsaved-confirm{max-width:460px}.unsaved-confirm-body{color:var(--popup-text-muted);margin:.4rem 0 1.2rem;font-size:.95rem;line-height:1.45}.unsaved-confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.unsaved-confirm-btn{appearance:none;border:1px solid var(--panel-border);cursor:pointer;background:var(--panel-bg-strong);color:var(--text-color);border-radius:8px;padding:.55rem 1.1rem;font-family:inherit;font-size:.9rem;transition:background .15s,border-color .15s}.unsaved-confirm-btn:hover{border-color:var(--accent)}.unsaved-confirm-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.unsaved-confirm-btn--secondary{background:0 0}.unsaved-confirm-btn--danger{color:var(--danger,#c0392b);border-color:var(--danger,#c0392b)}.unsaved-confirm-btn--danger:hover{background:#c0392b14}.unsaved-confirm-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast,#fff);font-weight:600}.unsaved-confirm-btn--primary:hover{filter:brightness(1.05)}@media (width<=600px){.unsaved-confirm-actions{justify-content:stretch}.unsaved-confirm-btn{flex:1 1 0;min-width:0}}.editor-canvas{cursor:default}.editor-canvas.tool-eraser{cursor:pointer}.editor-canvas.tool-color-picker,.editor-canvas.tool-shape-color-picker{cursor:crosshair}.editor-canvas.tool-select-by-color{cursor:pointer}.editor-canvas.tool-measurement{cursor:crosshair}.editor-canvas.tool-fan{cursor:pointer}@media (prefers-reduced-motion:reduce){.polygon-btn:hover,.template-gallery-thumbnail:hover,.first-run-cta:hover,.settings-swatch-button:hover .settings-swatch,.recent-files-row:hover{transition:none;transform:none}.polygon-btn,.template-gallery-thumbnail,.first-run-cta,.toggle-btn,.settings-swatch,.mode-badge,.app-shell-menu,.tiling-info-panel,.palette-sheet--peek,.palette-sheet--full{transition:none}}body.reduce-motion .polygon-btn:hover,body.reduce-motion .template-gallery-thumbnail:hover,body.reduce-motion .first-run-cta:hover,body.reduce-motion .settings-swatch-button:hover .settings-swatch,body.reduce-motion .recent-files-row:hover{transition:none;transform:none}body.reduce-motion .polygon-btn,body.reduce-motion .template-gallery-thumbnail,body.reduce-motion .first-run-cta,body.reduce-motion .toggle-btn,body.reduce-motion .settings-swatch,body.reduce-motion .mode-badge,body.reduce-motion .app-shell-menu,body.reduce-motion .tiling-info-panel,body.reduce-motion .palette-sheet--peek,body.reduce-motion .palette-sheet--full,body.reduce-motion .editor-toast{transition:none}body.reduce-motion .spinner{animation-duration:2.4s}body.reduce-motion .status.processing{animation:none}@media (forced-colors:active){button,.polygon-btn,.toggle-btn,.fill-swatch,.first-run-cta,.empty-state-action,.template-gallery-category,.template-gallery-thumbnail,.recent-files-row,.unsaved-confirm-btn,.settings-swatch-button,.mobile-bottom-toolbar-btn{color:buttontext;box-shadow:none;background:buttonface;border:1px solid buttontext}button:hover,.polygon-btn:hover,.toggle-btn:hover,.fill-swatch:hover,.first-run-cta:hover,.empty-state-action:hover,.template-gallery-category:hover,.template-gallery-thumbnail:hover,.recent-files-row:hover,.unsaved-confirm-btn:hover,.mobile-bottom-toolbar-btn:hover{box-shadow:none;color:buttontext;outline-offset:-1px;background:buttonface;outline:1px solid highlight;transform:none}.polygon-btn.selected,.toggle-btn.active,.template-gallery-category.active,.mobile-bottom-toolbar-btn.active{color:highlighttext;background:highlight;border-color:highlight}button:disabled,.polygon-btn.disabled,.toggle-btn:disabled,.selected-info-action:disabled,.app-shell-language:disabled{color:graytext;background:buttonface;border-color:graytext}button:focus-visible,.toggle-btn:focus-visible,.polygon-btn:focus-visible,.first-run-cta:focus-visible,.empty-state-action:focus-visible,.unsaved-confirm-btn:focus-visible,.settings-swatch-button:focus-visible,.popup-close-btn:focus-visible,.error-close:focus-visible{outline-offset:2px;outline:2px solid highlight}.fill-swatch-chip,.settings-swatch{forced-color-adjust:none}.popup-content,.first-run-card,.loading-content,.editor-toast,.error-message{box-shadow:none;border:1px solid canvastext}.editor-toast[data-severity=warning]{color:marktext;background:mark;border-color:marktext}.tiling-info-panel,.status-row,.mode-badge,.zoom-rotation,.empty-state-card,.dropdown-content,.app-shell-menu.open{border:1px solid canvastext}.popup-content a,.menu-item a,.dropdown-content a{color:linktext}.spinner{border-color:highlight buttontext buttontext}.editor-canvas,.editor-canvas *{forced-color-adjust:none}}.error-container{z-index:10;pointer-events:none;position:absolute;top:.5rem;left:.5rem;right:.5rem}.error-message{background-color:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);pointer-events:auto;word-break:break-word;border-radius:8px;align-items:flex-start;gap:.6rem;padding:.6rem .8rem;font-size:.85rem;line-height:1.4;display:flex}.error-icon{flex:none;font-size:1.1rem;line-height:1.2}.error-text{flex:auto}.error-close{color:var(--error-text);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;padding:0 .3rem;font-size:1.25rem;font-weight:700;line-height:1;transition:color .15s,background .15s}.error-close:hover{color:var(--error-close-hover);background:#ffffff14}.light-mode .error-close:hover{background:#0000000f}.error-close:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}#toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1rem;right:1rem}.editor-toast{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border);box-shadow:0 8px 24px var(--popup-shadow);white-space:pre-wrap;cursor:pointer;pointer-events:auto;opacity:0;border-radius:8px;max-width:420px;padding:.7rem .9rem;font:.9rem/1.4 inherit;transition:opacity .15s,transform .15s;transform:translateY(8px)}.editor-toast[data-severity=warning]{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.editor-toast[data-severity=error]{background:var(--error-bg);color:var(--error-text);border-color:var(--error-border)}.editor-toast:hover{filter:brightness(1.05)}@media (width<=600px){#toast-container{align-items:stretch;left:.6rem;right:.6rem}.editor-toast{max-width:none}}@media (prefers-reduced-motion:reduce){.editor-toast{transition:opacity 10ms linear;transform:none}}@media (width<=1200px){.editor-layout{grid-template-columns:1fr;gap:1rem}.polygon-palette{order:2}.canvas-container{order:1}.palette-grid{grid-template-columns:repeat(auto-fit,minmax(50px,1fr));max-width:none}.responsive-control{display:none}}@media (width<=600px){:root{--canvas-height:400px}.tiling-controls button{padding:.4rem;font-size:.8rem}}.color-picker-popup{background:var(--popup-overlay);z-index:1000;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.color-picker-popup .popup-content{background:var(--panel-bg);color:var(--text-color);border:1px solid var(--panel-border);box-shadow:0 12px 40px var(--popup-shadow);border-radius:12px;flex-direction:column;align-items:center;gap:1em;width:auto;max-width:100%;padding:1.4rem 1.6rem;display:flex}.color-picker-popup .popup-content h3{color:var(--text-color);margin:0;font-size:1rem}.popup-actions{gap:.6em;display:flex}.popup-actions button{appearance:none;border:1px solid var(--panel-border);background:var(--panel-bg-strong);color:var(--text-color);cursor:pointer;border-radius:8px;padding:.5rem 1.1rem;font-family:inherit;font-size:.92rem;transition:border-color .15s,background .15s}.popup-actions button:hover{border-color:var(--accent);background:var(--panel-hover)}.popup-actions button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.popup-actions button:last-child{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.popup-actions button:last-child:hover{filter:brightness(1.05);background:var(--accent)}ui5-slider.ui5-color-picker-alpha-slider{display:none}.loading-indicator{background-color:var(--loading-bg);z-index:1000;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.loading-content{background-color:var(--panel-bg);border:1px solid var(--panel-border);text-align:center;color:var(--text-color);box-shadow:0 12px 40px var(--popup-shadow);border-radius:12px;flex-direction:column;align-items:center;gap:.9rem;min-width:min(280px,100%);padding:1.6rem 1.8rem;display:flex}.loading-content p{color:var(--text-color);margin:0;font-size:.95rem}.spinner{border:4px solid var(--spinner-track);border-top:4px solid var(--spinner-head);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.polygon-btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}button:disabled{opacity:.5;cursor:not-allowed;background-color:var(--btn-disabled-bg);color:var(--btn-disabled-text)}.status.processing{color:var(--status-processing);animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@media (prefers-reduced-motion:reduce){.status.processing{animation:none}}.editor-canvas[style*="cursor: wait"]{cursor:wait!important}.editor-canvas[style*="pointer-events: none"] *{pointer-events:none!important}.zoom-rotation{border:1px solid var(--panel-border);color:var(--text-muted-strong);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:5;background-color:#0003;border-radius:12px;align-items:center;gap:.4em;padding:.3em .7em;font-family:Arial,sans-serif;font-size:12px;display:inline-flex;position:absolute;top:10px;right:10px}.zoom-rotation-label,.zoom-rotation-sep{color:var(--text-subtle)}.zoom-rotation-value{font-weight:500}.light-mode .zoom-rotation{color:var(--text-color);background-color:#ffffffbf}
