:root{--bg-primary: #0a0a14;--bg-secondary: #101020;--bg-surface: #151528;--bg-elevated: #1a1a35;--bg-hover: #20204a;--bg-active: #252560;--accent: #00d4ff;--accent-dim: rgba(0, 212, 255, .15);--accent-glow: rgba(0, 212, 255, .3);--text-primary: #e0e4f0;--text-secondary: #8890a8;--text-dim: #555a70;--border: #1e2040;--border-bright: #2a2d55;--danger: #ff4466;--toolbar-h: 48px;--statusbar-h: 28px;--sidebar-w: 280px;--radius: 6px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Outfit,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden;height:100vh;width:100vw;-webkit-user-select:none;user-select:none}#app{display:flex;flex-direction:column;height:100vh}.toolbar{height:var(--toolbar-h);background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 12px;gap:6px;flex-shrink:0;z-index:3000}.tool-group{display:flex;align-items:center;gap:4px}.toolbar-sep{width:1px;height:28px;background:var(--border-bright);margin:0 8px}.tool-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:42px;height:36px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;position:relative;font-family:Outfit,sans-serif}.tool-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-bright)}.tool-btn.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow),inset 0 0 8px #00d4ff0d}.tool-icon{font-size:16px;line-height:1}.tool-label{font-size:9px;font-weight:500;letter-spacing:.5px;margin-top:1px;opacity:.6}.tool-btn.active .tool-label{opacity:1}.tool-btn-container{display:flex;flex-direction:column;align-items:center;position:relative}.tool-mode-indicator{position:absolute;top:100%;left:50%;transform:translate(-50%);background:#16162dbf;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:6px 8px;font-size:10px;color:var(--text-secondary);white-space:nowrap;pointer-events:auto;z-index:20;margin-top:4px;box-shadow:0 8px 32px #00000080,0 0 10px #00d4ff0d;display:flex;flex-direction:column;gap:2px}.tool-mode-indicator .mode-line{display:block;padding:4px 8px;border-radius:3px;cursor:pointer;transition:all .1s;-webkit-user-select:none;user-select:none}.tool-mode-indicator .mode-line:hover{background:var(--bg-hover);color:var(--text-primary)}.tool-mode-indicator .mode-line.active{background:var(--accent-dim);color:var(--accent);font-weight:600;border:1px solid var(--accent)}.tool-mode-indicator .mode-title{font-weight:700;color:var(--text-dim);padding:2px 8px;margin-bottom:2px;border-bottom:1px solid var(--border);font-size:9px;text-transform:uppercase}.icon-btn{width:30px;height:28px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:14px;font-family:Outfit,sans-serif;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--accent)}.control-label{font-size:12px;color:var(--text-secondary);font-weight:500;margin-right:6px}.grid-input{width:80px;height:28px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:12px;padding:0 8px;outline:none;transition:border-color .15s}.grid-input:focus{border-color:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.unit-label{font-size:11px;color:var(--text-dim);margin-left:4px;font-family:JetBrains Mono,monospace}.zoom-label{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-secondary);min-width:50px;text-align:center}#main-content{display:flex;flex:1;overflow:hidden}#canvas-container{flex:1;position:relative;overflow:hidden;background:var(--bg-primary)}#canvas{display:block;width:100%;height:100%}.sidebar{width:var(--sidebar-w);background:var(--bg-secondary);border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;border-bottom:1px solid var(--border)}.sidebar-title{font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary)}.sidebar-close-btn{display:none}.add-layer-btn{width:26px;height:26px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--accent);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.add-layer-btn:hover{background:var(--accent-dim);border-color:var(--accent)}.layer-list{max-height:300px;overflow-y:auto;border-bottom:1px solid var(--border)}.layer-item{display:flex;align-items:center;padding:8px 12px;gap:8px;cursor:pointer;transition:background .1s;border-left:3px solid transparent}.layer-item:hover{background:var(--bg-hover)}.layer-item.active{background:var(--accent-dim);border-left-color:var(--accent)}.vis-btn{width:22px;height:22px;background:transparent;border:none;cursor:pointer;font-size:13px;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all .1s;flex-shrink:0}.vis-btn:hover{background:var(--bg-surface)}.vis-btn.off{opacity:.3;font-size:18px}.layer-swatch{width:14px;height:14px;border-radius:3px;flex-shrink:0;border:1px solid rgba(255,255,255,.1)}.layer-name{font-size:13px;font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lock-btn{width:22px;height:22px;background:transparent;border:none;cursor:pointer;font-size:11px;color:var(--text-dim);display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all .1s;flex-shrink:0}.lock-btn:hover{background:var(--bg-surface)}.lock-btn.locked{color:var(--danger)}.del-layer-btn{width:20px;height:20px;background:transparent;border:none;cursor:pointer;font-size:14px;color:var(--text-dim);display:flex;align-items:center;justify-content:center;border-radius:3px;opacity:0;transition:all .1s;flex-shrink:0}.layer-item:hover .del-layer-btn{opacity:1}.del-layer-btn:hover{color:var(--danger);background:#ff44661a}.layer-properties{padding:14px 16px;flex:1}.props-title{font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:14px}.prop-row{display:flex;align-items:center;margin-bottom:10px;gap:8px}.prop-label{font-size:12px;color:var(--text-secondary);min-width:80px;flex-shrink:0}.prop-input{flex:1;height:28px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:Outfit,sans-serif;font-size:12px;padding:0 8px;outline:none;transition:border-color .15s}.prop-input:focus{border-color:var(--accent)}.prop-input.small{width:60px;flex:0}.prop-color{width:40px;height:28px;padding:2px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s}.prop-color:hover{border-color:var(--accent)}.prop-select{width:fit-content;min-width:130px;max-width:300px;height:28px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:JetBrains Mono,Consolas,monospace;font-size:11px;padding:0 8px;outline:none;cursor:pointer;transition:all .15s}.prop-select:focus{border-color:var(--accent)}.prop-select option{background:var(--bg-secondary);color:var(--text-primary)}.statusbar{height:var(--statusbar-h);background:var(--bg-secondary);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:24px;flex-shrink:0}.status-item{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-secondary)}.coord-display{color:var(--accent);font-weight:500;min-width:260px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}:focus-visible{outline:1px solid var(--accent);outline-offset:2px}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.context-menu{position:fixed;z-index:1000;background:#16162dbf;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);padding:10px 14px;box-shadow:0 12px 48px #00000080,0 0 20px #00d4ff14;min-width:260px;max-width:600px;width:fit-content}.context-menu-title{font-size:12px;font-weight:600;color:var(--accent);letter-spacing:.3px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border);cursor:move;-webkit-user-select:none;user-select:none}.layer-item.dragging{opacity:.5;background:var(--bg-hover)!important}.layer-item.drag-over{border-top:2px solid var(--accent)!important}.context-menu-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;width:100%}.context-label{font-size:12px;color:var(--text-secondary);min-width:70px;flex-shrink:0}.context-input{width:70px;height:26px;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:11px;padding:0 6px;outline:none;transition:border-color .15s}.context-input:focus{border-color:var(--accent)}.context-sep{color:var(--text-dim);font-size:12px}.context-apply-btn,.context-clear-btn,.context-use-btn,.context-delete-btn{height:28px;border:1px solid var(--border);border-radius:4px;font-family:Outfit,sans-serif;font-size:12px;font-weight:500;cursor:pointer;padding:0 14px;transition:all .15s}.context-use-btn{background:var(--bg-surface);color:var(--text-secondary)}.context-use-btn:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--accent)}.context-apply-btn{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.context-apply-btn:hover{background:#00d4ff40;box-shadow:0 0 8px var(--accent-glow)}.context-clear-btn{background:transparent;color:var(--text-secondary)}.context-clear-btn:hover{color:var(--danger);border-color:var(--danger);background:#ff44661a}.context-highlight-gold{border:1px solid #FFD700!important;box-shadow:0 0 4px #ffd70033}.context-highlight-gold:hover{background:#ffd7001a!important;box-shadow:0 0 8px #ffd70066!important}.active-alignment{background:#ff880026!important;color:#f80!important;border-color:#f80!important;box-shadow:0 0 10px #f803}.snap-label{font-size:11px;margin-left:2px}.snap-status{color:#f80;font-weight:600;letter-spacing:.5px}.dim-title{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.context-menu-info{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-secondary);padding:4px 0}.context-menu-sep{height:1px;background:var(--border);margin:8px 0}.context-menu-subtitle{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:8px}.context-menu-btnrow{display:flex;gap:6px;margin-top:8px}.context-action-row{display:flex;gap:8px;margin-top:12px}.context-action-row button{flex:1}.context-delete-btn{height:28px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-family:Outfit,sans-serif;font-size:12px;font-weight:500;cursor:pointer;padding:0 14px;transition:all .15s}.context-delete-btn:hover{color:var(--danger);border-color:var(--danger);background:#ff44661a}.context-menu-item{font-size:11px;color:var(--text-secondary);padding:6px 8px;cursor:pointer;border-radius:4px;transition:all .1s}.context-menu-item:hover{background:var(--bg-hover);color:var(--accent)}.context-menu-item.context-delete:hover{color:var(--danger);background:#ff44661a}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#04040a99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:5000}.modal-content{background:#16162dcc;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:16px 20px;width:320px;box-shadow:0 24px 64px #0009,0 0 24px #00d4ff14;animation:modalScaleIn .2s cubic-bezier(.16,1,.3,1)}@keyframes modalScaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.modal-content h3{font-size:15px;font-weight:700;color:var(--accent);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border);text-align:left;letter-spacing:.5px}.modal-btn-row,.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:12px;border-top:1px solid var(--border)}.btn-primary,.btn-secondary,.action-btn{height:32px;padding:0 18px;border-radius:6px;font-family:Outfit,sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}.btn-primary,.primary-btn{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent)}.btn-primary:hover,.primary-btn:hover{background:#00d4ff40;box-shadow:0 0 12px var(--accent-glow)}.btn-secondary,.secondary-btn{background:var(--bg-surface);border:1px solid var(--border-bright);color:var(--text-secondary)}.btn-secondary:hover,.secondary-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--text-dim)}.modal-item-btn{width:100%;height:36px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-family:Outfit,sans-serif;font-size:13px;cursor:pointer;padding:0 12px;text-align:left;transition:all .15s;display:flex;align-items:center}.modal-item-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.modal-item-btn:focus{outline:none;border-color:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.modal-section{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.modal-section h4{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-dim);letter-spacing:.5px;margin-bottom:12px}.checkbox-row{display:flex;align-items:center;gap:10px;padding:6px 0;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:color .1s}.checkbox-row:hover{color:var(--text-primary)}.checkbox-row input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.lang-select{height:28px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:Outfit,sans-serif;font-size:12px;padding:0 8px;cursor:pointer;outline:none;transition:border-color .15s;-moz-appearance:none;appearance:none;-webkit-appearance:none;min-width:90px}.lang-select:hover{border-color:var(--accent)}.lang-select:focus{border-color:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.lang-select option{background:var(--bg-secondary);color:var(--text-primary)}.context-confirm-btn{display:block;width:100%;height:32px;background:linear-gradient(135deg,#00b45033,#00dc6426);border:1px solid rgba(0,200,90,.5);border-radius:4px;color:#0d6;font-family:Outfit,sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.5px}.context-confirm-btn:hover{background:linear-gradient(135deg,#00b45059,#00dc644d);box-shadow:0 0 12px #00dc6440;border-color:#0d6}.context-confirm-btn:active{transform:scale(.98)}.context-layer-select{width:100%;height:28px;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-family:Outfit,sans-serif;font-size:12px;padding:0 8px;cursor:pointer;outline:none;transition:border-color .15s}.context-layer-select:hover{border-color:var(--accent)}.layer-swatch{width:14px;height:14px;flex-shrink:0;border-radius:2px;border:1px solid rgba(255,255,255,.4);display:inline-block;vertical-align:middle;box-shadow:0 0 4px #00000080}.context-layer-select:focus{border-color:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.alignment-dialog{position:fixed;top:64px;left:50%;transform:translate(-50%);background:#16162dd1;backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:16px;box-shadow:0 20px 60px #0009,0 0 30px var(--accent-glow);z-index:1000;min-width:320px;display:flex;flex-direction:column;gap:16px;animation:slideDown .2s cubic-bezier(.16,1,.3,1)}@keyframes slideDown{0%{transform:translate(-50%,-10px);opacity:0}to{transform:translate(-50%);opacity:1}}.alignment-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:10px}.alignment-title{font-size:14px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:1px}.alignment-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:18px;transition:color .15s}.alignment-close:hover{color:var(--danger)}.alignment-section{display:flex;flex-direction:column;gap:10px}.alignment-section-title{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.alignment-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.alignment-btn{width:100%;aspect-ratio:1;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;position:relative}.alignment-btn svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5}.alignment-btn:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.alignment-btn:active{transform:translateY(0)}.alignment-btn.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.alignment-status{background:#ff88001a;border:1px dashed #ff8800;border-radius:4px;padding:8px 12px;font-size:12px;color:#f80;font-weight:500;display:flex;align-items:center;gap:8px}.alignment-status.success{background:#00ff881a;border-color:#0f8;color:#0f8}.picking-pulse{animation:pulseCyan 1.5s infinite}@keyframes pulseCyan{0%{box-shadow:0 0 #00d4ff66}70%{box-shadow:0 0 10px 10px #00d4ff00}to{box-shadow:0 0 #00d4ff00}}.distribution-controls{display:flex;align-items:center;gap:12px;margin-top:4px}.dist-mode-btn{flex:1;height:32px;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;font-size:11px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.dist-mode-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.dist-mode-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.virtual-modifiers{position:fixed;bottom:80px;right:20px;display:flex;flex-direction:column;gap:12px;z-index:5000}.modifier-btn{width:54px;height:54px;border-radius:50%;background:var(--bg-elevated);border:2px solid var(--border-bright);color:var(--text-secondary);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0006;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;touch-action:manipulation}.modifier-btn.active{background:var(--accent);color:var(--bg-primary);border-color:#fff;box-shadow:0 0 20px var(--accent-glow);transform:scale(1.1)}.radial-menu-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:6000;background:#0003;display:flex;align-items:center;justify-content:center}.radial-menu{position:absolute;width:220px;height:220px;border-radius:50%;background:#141428e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--accent-glow);box-shadow:0 0 40px #0009;display:flex;align-items:center;justify-content:center;animation:radial-pop .2s cubic-bezier(.175,.885,.32,1.275)}@keyframes radial-pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.radial-item{position:absolute;width:50px;height:50px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border-bright);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-primary);transition:all .2s;cursor:pointer}.radial-item:hover,.radial-item.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);transform:scale(1.2)}.radial-item .tool-icon{font-size:18px}.radial-center{width:60px;height:60px;border-radius:50%;background:var(--bg-elevated);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--accent);font-size:12px;z-index:2}@media(max-width:768px){.toolbar,.statusbar,.virtual-modifiers,.radial-menu-overlay,.sidebar-toggle.legacy{display:none!important}#main-content{flex-direction:column}.sidebar{position:fixed;top:0;right:0;left:25%;bottom:0;width:auto;height:100dvh;z-index:6500;border-left:1px solid var(--border-bright);border-radius:0;transform:translate(100%);transition:transform .3s cubic-bezier(.2,0,.2,1);background:var(--bg-elevated);box-shadow:-12px 0 48px #00000080;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden}.sidebar.open{transform:translate(0)}.sidebar-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 12px;height:auto;min-height:48px;display:flex;align-items:center}.sidebar-title{font-size:14px;font-weight:600;margin:0;flex:1}.sidebar-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ffffff1a;border:none;border-radius:50%;color:var(--text-primary);font-size:18px;cursor:pointer;margin-left:8px}.layer-list{flex:1;overflow-y:auto;background:#0003;border-bottom:1px solid var(--accent-dim)}.layer-properties{flex-shrink:0;max-height:65dvh;overflow-y:auto;background:var(--bg-secondary);margin-top:0;padding-bottom:env(safe-area-inset-bottom,12px);border-top:2px solid var(--accent)}.prop-container{padding:12px 15px;margin:0}.mobile-ui-root{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:5000}.mobile-ui-root *{pointer-events:auto}.mobile-btn{width:48px;height:48px;border-radius:50%;background:#101020b3;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid rgba(255,255,255,.1);color:var(--text-primary);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0000004d,inset 0 1px 1px #ffffff1a;cursor:pointer;transition:all .25s cubic-bezier(.19,1,.22,1);-webkit-tap-highlight-color:transparent;padding:0;overflow:visible}.mobile-btn:active{transform:scale(.85);background:var(--accent-dim);border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow)}.mobile-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg-primary);box-shadow:0 0 25px var(--accent-glow)}.mobile-btn svg{width:22px;height:22px;stroke-width:2.5;pointer-events:none}.mobile-group-draw,.mobile-group-edit{position:fixed;bottom:calc(75px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);pointer-events:none;z-index:9500}.mobile-group{position:fixed;z-index:5500;pointer-events:none;display:none;transition:all .3s cubic-bezier(.19,1,.22,1)}.mobile-group-draw{bottom:calc(75px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%)}.mobile-sub-btns{position:relative;width:0;height:0}.mobile-sub-btn{position:absolute;width:50px;height:50px;left:-25px;top:-25px;border-radius:50%;background:#1e1e32d9;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(255,255,255,.15);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 32px #00000080;opacity:0;transform:translate(0) scale(.4);transition:all .4s cubic-bezier(.19,1,.22,1);pointer-events:none;color:var(--text-primary)}.mobile-group.expanded .mobile-sub-btn{opacity:1;transform:translate(var(--dx),var(--dy)) scale(1);pointer-events:auto}.mobile-sub-btn:active{transform:translate(var(--dx),var(--dy)) scale(.85);background:var(--accent);color:var(--bg-primary)}.mobile-sub-btn .btn-text{font-size:8px;margin-top:3px;color:var(--text-secondary);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.mobile-sub-indicator{position:absolute;bottom:-8px;right:-8px;width:36px;height:36px;background:var(--bg-elevated);border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:20;pointer-events:none;box-shadow:0 4px 15px #000000b3;overflow:hidden}.mobile-sub-indicator svg{width:22px!important;height:22px!important;stroke-width:2.2!important;color:var(--accent)}.mobile-top-bar{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-around;gap:8px}.mobile-top-bar .mobile-btn{width:42px;height:42px}.mobile-delete-btn{color:var(--danger)!important;border-color:#ff44664d!important}.mobile-delete-btn:active{background:#f463!important;border-color:var(--danger)!important;box-shadow:0 0 15px #f466!important}.mobile-status-pill{position:fixed;top:env(safe-area-inset-top,20px);left:50%;transform:translate(-50%);background:#0a0a14cc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);padding:6px 16px;border-radius:20px;display:flex;align-items:center;gap:12px;box-shadow:0 8px 32px #0006;z-index:6000;pointer-events:none;transition:all .3s ease}.mobile-coord-text{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--accent);font-weight:600;letter-spacing:.5px}.mobile-tool-hint{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;border-left:1px solid var(--border-bright);padding-left:12px}.mobile-floating-nav{position:fixed;top:calc(70px + env(safe-area-inset-top,0px));right:16px;display:flex;flex-direction:column;gap:12px;z-index:5500}.mobile-undo-redo{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom,0px));right:16px;display:flex;flex-direction:column;gap:12px;z-index:5500}.mobile-tab-bar{position:fixed;bottom:0;left:0;width:100vw;height:calc(70px + env(safe-area-inset-bottom,0px));background:#101020d9;backdrop-filter:blur(20px) saturate(200%);-webkit-backdrop-filter:blur(200px) saturate(200%);border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:repeat(5,1fr);align-items:center;padding:0 5px;z-index:6000;pointer-events:auto}.mobile-tab-item{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-secondary);text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.5px;transition:all .2s;width:60px}.mobile-tab-item.active{color:var(--accent)}.mobile-tab-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:all .2s}.mobile-tab-icon-wrapper{position:relative;display:inline-flex}.mobile-tab-overlay-icon{position:absolute;bottom:-6px;right:-6px;width:24px;height:24px;background:var(--bg-surface);border:1px solid var(--accent);border-radius:6px;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--accent);box-shadow:0 4px 12px #0009,0 0 8px var(--accent-glow);z-index:10}.mobile-tab-overlay-icon svg{width:16px;height:16px}.mobile-tab-item.active .mobile-tab-icon{background:var(--accent-dim);box-shadow:0 0 12px var(--accent-glow)}.mobile-property-sheet{position:fixed;bottom:0;left:0;width:100vw;background:var(--bg-elevated);border-top:1px solid var(--accent);border-top-left-radius:20px;border-top-right-radius:20px;z-index:7000;transform:translateY(100%);transition:transform .4s cubic-bezier(.19,1,.22,1);padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 40px #0009}.mobile-property-sheet.open{transform:translateY(0)}.mobile-top-bar{position:fixed;top:calc(85px + env(safe-area-inset-top,0px));left:16px;right:auto;transform:none;background:#101020d9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:12px 8px;display:none;flex-direction:column;align-items:center;gap:12px;box-shadow:0 4px 16px #00000080;z-index:10000;pointer-events:auto;max-height:60vh;overflow-y:auto;overflow-x:hidden}.context-bar-group{display:flex;flex-direction:column;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.context-bar-group:last-child{border-bottom:none;padding-bottom:0}.context-btn{min-width:36px;height:36px;padding:0 8px;border-radius:8px;background:#ffffff0d;border:1px solid transparent;color:var(--text-secondary);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center}.context-btn.finish-btn{background:#1ec86433;color:#4ade80;border-color:#4ade804d}.context-btn.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.context-btn:active{transform:scale(.9)}.context-input-wrap{display:flex;flex-direction:column;align-items:center;background:#0000004d;border-radius:6px;padding:4px;border:1px solid rgba(255,255,255,.1);gap:4px}.context-input-wrap label{font-size:10px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.context-input{width:45px;background:transparent;border:none;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700;outline:none;padding:0}.sheet-handle{width:40px;height:4px;background:var(--border-bright);border-radius:2px;margin:-10px auto 15px}.mobile-confirm-btn{position:fixed;width:54px;height:54px;background:#00c864d9;border:2px solid #fff;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #00000080;z-index:7000;pointer-events:auto;transition:transform .1s,opacity .2s;-webkit-user-select:none;user-select:none;touch-action:none}.mobile-confirm-btn svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.mobile-confirm-btn:active{transform:scale(.85);background:#00dc6e}.mobile-menu-overlay{animation:menu-fade-in .3s cubic-bezier(.19,1,.22,1)}.mobile-menu-item{transition:all .2s;-webkit-tap-highlight-color:transparent}.mobile-menu-item:active{transform:scale(.95);background:var(--accent-dim)!important}@keyframes menu-fade-in{0%{opacity:0;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.mobile-confirm-btn.long-pressing{animation:confirm-pulse .6s infinite alternate;box-shadow:0 0 25px #00ff7fcc}@keyframes confirm-pulse{0%{transform:scale(1);border-color:#fff}to{transform:scale(1.15);border-color:#00ff7f}}.help-mobile-section{margin-top:15px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.2)}.help-mobile-section h4{color:var(--accent);font-size:13px;margin-bottom:8px}.help-mobile-item{font-size:12px;margin-bottom:4px;display:flex;gap:8px}.help-mobile-label{font-weight:700;color:#9ab;white-space:nowrap}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center}.modal-content{background:var(--bg-elevated);border:1px solid var(--border-bright);border-radius:12px;padding:24px;width:90vw;max-width:450px;max-height:85vh;overflow-y:auto;box-shadow:0 10px 40px #0009;color:#fff}.modal-content h3{margin-top:0;margin-bottom:20px;color:var(--accent);font-size:18px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:10px}.modal-section{margin-bottom:20px;padding:12px;background:#ffffff08;border-radius:8px}.modal-section h4{margin:0 0 12px;font-size:14px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.checkbox-row{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.05)}.checkbox-row:last-child{border-bottom:none}.checkbox-row input[type=checkbox]{width:18px;height:18px;cursor:pointer}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:10px}.action-btn{padding:10px 20px;border-radius:6px;border:none;font-weight:600;cursor:pointer;transition:all .2s}.primary-btn{background:var(--accent);color:#fff}.secondary-btn{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border)}.sidebar-toggle{display:none}.mobile-floating-nav{position:fixed;right:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:7000;pointer-events:auto}.mobile-undo-redo{position:fixed;right:16px;bottom:90px;display:flex;flex-direction:column;gap:12px;z-index:7000;pointer-events:auto}.mobile-btn{width:44px;height:44px;background:var(--bg-elevated);border:1px solid var(--border-bright);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--text-primary);font-size:20px;box-shadow:0 4px 12px #0000004d;transition:all .2s}.mobile-btn:active{transform:scale(.9);background:var(--accent-dim);border-color:var(--accent)}.mobile-delete-btn{background:#ff444426;border-color:#ff44444d;color:#f44}.mobile-delete-btn:active{background:#f44;color:#fff}.mobile-confirm-btn{position:fixed;width:60px;height:60px;background:var(--accent);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #00d4ff80;z-index:8000;pointer-events:auto;font-size:24px;transition:transform .1s cubic-bezier(.2,0,.2,1)}.mobile-confirm-btn svg{width:32px;height:32px;stroke:currentColor;stroke-width:3;fill:none}.mobile-confirm-btn:active{transform:scale(.9);background:#fff}.mobile-draw-status{position:fixed;top:130px;left:50%;transform:translate(-50%);background:#00d4ffe6;color:#000;padding:6px 16px;border-radius:20px;font-size:13px;font-weight:700;letter-spacing:.5px;box-shadow:0 4px 15px #00d4ff66;pointer-events:none;z-index:5500;white-space:nowrap;display:none}.mobile-draw-status.flash{display:block;animation:statusFlash 1s ease-out forwards}@keyframes statusFlash{0%{transform:translate(-50%) scale(.8);opacity:0}20%{transform:translate(-50%) scale(1.1);opacity:1}80%{transform:translate(-50%) scale(1);opacity:1}to{transform:translate(-50%) scale(1.05);opacity:0}}}.cs-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5000;display:flex;align-items:center;justify-content:center}.cs-container{width:90vw;height:85vh;background:var(--bg-surface);border:1px solid var(--border-bright);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #000c}.cs-header{height:50px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.cs-tabs{display:flex;gap:10px}.cs-tab{padding:6px 16px;border-radius:6px;background:transparent;border:1px solid transparent;color:var(--text-secondary);font-weight:600;cursor:pointer;transition:all .2s}.cs-tab.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.cs-content{flex:1;position:relative;background:#050510;overflow:hidden}.cs-view-canvas{width:100%;height:100%;display:block}.cs-footer{height:50px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);background:var(--bg-secondary)}.cs-info{font-size:12px;color:var(--text-dim);font-family:JetBrains Mono,monospace}.cs-close-btn{padding:6px 20px;border-radius:6px;background:var(--danger);color:#fff;border:none;font-weight:600;cursor:pointer}
