/* VibeGDS layout edit mode — direct manipulation on the layout canvas (see layoutedit.js) */
.viewer-tools .le-only { display: none; }
.viewer.editing .viewer-tools .le-only { display: inline-flex; align-items: center; }
.viewer-tools .le-sep { width: 1px; height: 16px; background: var(--line); margin: 0 2px; }
.viewer-tools .le-hint { font-family: var(--mono); font-size: 11px; color: var(--muted); white-space: nowrap; margin-left: 4px; }
.viewer-tools .le-hint b { color: var(--accent); font-weight: 500; }
.viewer-tools .le-hint .dirty { color: var(--warn); }
#btn-edit.toggled { background: rgba(100, 210, 255, .12); }
#btn-apply { background: var(--accent); color: #05131a; border-color: transparent; font-weight: 600; }
#btn-apply:hover { background: #82dcff; }
#btn-apply:disabled { background: var(--bg-3); color: var(--muted); }

/* cursors while editing: app.js's grab cursor gives way to what is under the pointer */
#canvas.le-editing { cursor: default; }
#canvas.le-editing.le-move { cursor: move; }
#canvas.le-editing.le-ns { cursor: ns-resize; }
#canvas.le-editing.le-ew { cursor: ew-resize; }
#canvas.le-editing.le-pt { cursor: pointer; }
#canvas.le-editing.le-pan { cursor: grabbing; }

/* rebuild error, floated over the canvas below the tool strip */
.viewer .le-error {
  position: absolute; z-index: 3; top: 48px; left: 10px; right: 10px; max-height: 40%;
  border: 1px solid #5a2626; border-radius: 8px; box-shadow: 0 6px 24px rgba(0, 0, 0, .45);
}
.viewer .le-error .le-error-close {
  float: right; background: transparent; border: 1px solid #5a2626; color: #ffd0d0; border-radius: 6px;
  padding: 1px 7px; font-size: 11px; cursor: pointer; margin-left: 8px;
}
@media (max-width: 720px) { .viewer-tools .le-hint { display: none !important; } }
