.node-label[data-zone], .node-label[data-gate] { cursor: grab; touch-action: none; user-select: none; }
.node-label[data-gate].dragging { color: #fff; outline: 1px solid #c9bef277; outline-offset: 4px; }
#viewport.dragging-node, #viewport.dragging-node * { cursor: grabbing !important; }
.node-move-controls { margin: 20px 0; padding-top: 15px; border-top: 1px solid var(--line); }
.node-move-controls label { display: flex; justify-content: space-between; color: #b8b0c6; font-size: 11px; }
.node-move-controls output { color: #d2c0eb; font: 11px var(--mono); }
.node-move-controls input { width: 100%; margin: 12px 0 0; accent-color: #bea4df; cursor: ew-resize; }
.node-move-controls input:disabled { opacity: .3; cursor: not-allowed; }
.node-move-controls p, .layout-note { color: #8e879c; font-size: 10px; line-height: 1.6; margin: 8px 0; }
.reset-layout { width: 100%; padding: 10px; margin: 7px 0; color: #d7c9ea; font-size: 11px; }
.warpplex-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 20px 0; padding: 12px 14px; min-height: 44px; border: 1px solid #696086; border-radius: 8px; background: linear-gradient(110deg, #292437, #1a2024); color: #e7dcfa; text-decoration: none; font-size: 11px; line-height: 1.45; }
.warpplex-link:hover { border-color: #b9a0de; background: #302a40; }
.warpplex-link span { flex: none; color: #c8f16a; font-size: 15px; }
@media (max-width: 1200px) { .gesture-hint { display: none; } }

.demon-names-link { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:9px 20px 0; padding:12px 14px; min-height:46px; border:1px solid #718958; border-radius:8px; background:linear-gradient(110deg,#2b3424,#1a2024); color:#e4f1ce; text-decoration:none; font-size:12px; font-weight:650; line-height:1.45; }
.demon-names-link:hover { border-color:#c7e08c; background:#2a3424; }
.demon-names-link span { flex:none; color:#c7e08c; font-size:16px; }
