.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--border-color-dark);border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}.status-bar{display:flex;align-items:center;justify-content:space-between;height:var(--status-bar-height);padding:0 16px;background-color:var(--bg-tertiary);border-top:1px solid var(--border-color);font-size:12px;color:var(--text-secondary)}.status-left,.status-right{display:flex;align-items:center;gap:12px}.status-right .separator{color:var(--border-color-dark)}@keyframes shapeChange{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.xml-node.shape-changed .node-shape,.xml-node.shape-changed .node-shape-group{animation:.3s shapeChange}@keyframes contextMenuFadeIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (max-width:1200px){:root{--panel-width:240px}.panel-left,.panel-right{width:240px}}@media (max-width:900px){.panel-left,.panel-resizer-left{display:none}.toolbar-center{gap:4px}.toolbar-btn .btn-label{display:none}.toolbar-btn{padding:8px}.menu-bar-menus{font-size:12px}.menu-label{padding:6px 8px}}@media (max-width:600px){.menu-bar-left .app-logo{height:18px}.menu-bar-left .app-title{font-size:12px}.menu-label{padding:4px 6px;font-size:11px}}.mobile-warning-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#1e293b 0,#0f172a 100%);z-index:99999;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-warning-content{max-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;text-align:center;color:#f1f5f9}.mobile-warning-logo{width:80px;height:80px;margin-bottom:12px;border-radius:16px;box-shadow:0 8px 32px rgba(59,130,246,.3)}.mobile-warning-content h1{font-size:28px;font-weight:700;color:#f8fafc;margin:0 0 24px;letter-spacing:-.5px}.mobile-warning-icon{width:64px;height:64px;margin-bottom:20px;color:#f97316;animation:2s ease-in-out infinite gentle-pulse}.mobile-warning-icon svg{width:100%;height:100%}@keyframes gentle-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}.mobile-warning-content h2{font-size:24px;font-weight:600;color:#f8fafc;margin:0 0 16px}.mobile-warning-content p{font-size:16px;line-height:1.6;color:#94a3b8;margin:0 0 12px;max-width:320px}.mobile-warning-hint{font-size:14px!important;color:#64748b!important;margin-top:8px!important}.mobile-warning-features{display:flex;flex-direction:column;gap:12px;margin-top:32px;padding:24px;background-color:rgba(255,255,255,.05);border-radius:12px;border:1px solid rgba(255,255,255,.1)}.feature-item{display:flex;align-items:center;gap:12px;color:#cbd5e1;font-size:14px}.feature-item svg{width:20px;height:20px;color:#3b82f6;flex-shrink:0}@media screen and (max-width:768px){.mobile-warning-overlay{display:block}.app-container{display:none!important}}@media screen and (max-width:1024px) and (hover:none) and (pointer:coarse){.mobile-warning-overlay{display:block}.app-container{display:none!important}}@media screen and (max-height:500px) and (max-width:900px){.mobile-warning-content{max-height:100%;padding:20px;justify-content:flex-start}.mobile-warning-logo{width:48px;height:48px;margin-bottom:8px}.mobile-warning-content h1{font-size:20px;margin-bottom:12px}.mobile-warning-icon{width:40px;height:40px;margin-bottom:12px}.mobile-warning-content h2{font-size:18px;margin-bottom:8px}.mobile-warning-content p{font-size:14px;margin-bottom:8px}.mobile-warning-features{margin-top:16px;padding:16px}}.xml-node .node-shape{transition:all var(--transition-fast);cursor:pointer;pointer-events:all}.xml-node .node-shape-group{cursor:pointer;pointer-events:all}.xml-node .node-shape-group ellipse,.xml-node .node-shape-group path,.xml-node .node-shape-group polygon,.xml-node .node-shape-group rect{transition:all var(--transition-fast)}.xml-node:hover .node-shape,.xml-node:hover .node-shape-group ellipse,.xml-node:hover .node-shape-group path,.xml-node:hover .node-shape-group polygon,.xml-node:hover .node-shape-group rect{fill:var(--node-hover)}.xml-node.selected .node-shape,.xml-node.selected .node-shape-group ellipse:last-child,.xml-node.selected .node-shape-group path,.xml-node.selected .node-shape-group rect:last-child{stroke-width:2.5;filter:drop-shadow(0 2px 4px rgba(0, 0, 0, .15))}.xml-node .node-hit-area{cursor:pointer}.connection-line.connection-dashed{stroke-dasharray:6,4;stroke:var(--shape-condition)}.connection-line.connection-bold{stroke-width:2.5;stroke:var(--shape-data)}