.run-plan .plan-place { touch-action: pan-x pan-y; }
.plan-move-controls { grid-column: 1; grid-row: 5; position: sticky; left: 0; width: min(100%, calc(100vw - var(--size-gutter) - var(--size-gutter)), calc(var(--size-desktop-max) - var(--size-gutter) - var(--size-gutter))); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); }
.plan-move-controls button { min-width: var(--size-touch-min); min-height: var(--size-touch-min); padding: var(--space-xs) var(--space-sm); border: var(--size-line-width) solid var(--color-line); border-radius: var(--size-radius-field); background: var(--color-surface); color: var(--color-text); font: inherit; font-size: var(--font-size-label); }
.plan-move-controls button:focus-visible { outline: var(--size-border-selected) solid var(--color-accent); }
.plan-move-controls button:disabled { opacity: 0.5; }
.plan-move-controls [data-plan-drag-handle] { touch-action: none; cursor: grab; }
.plan-move-controls small { width: 100%; color: var(--color-text-muted); font-size: var(--font-size-caption); }

@media (hover: hover) and (pointer: fine) {
  .run-plan .plan-place { cursor: grab; }
}

.run-plan .plan-place.plan-drag-placeholder {
  z-index: 2;
  border: var(--pattern-remainder-border);
  outline: none;
  background: transparent;
}
.run-plan .plan-place.plan-drag-placeholder > * { visibility: hidden; }
.run-plan .plan-place.plan-drag-placeholder::after {
  position: absolute;
  inset: var(--space-xs);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: var(--color-text-muted);
  content: "Место свободно";
  font-size: var(--font-size-caption);
  line-height: 1.2;
  text-align: center;
}

.plan-place.plan-drag-lift {
  position: fixed;
  z-index: 100;
  box-sizing: border-box;
  max-width: none;
  min-width: 0;
  overflow: hidden;
  pointer-events: none;
  cursor: grabbing;
}
.plan-place.plan-drag-lift.selected {
  border-color: var(--color-accent);
  outline: var(--size-border-selected) solid var(--color-accent);
  outline-offset: calc(-1 * var(--size-border-selected));
}

.plan-drag-seam {
  position: absolute;
  z-index: 3;
  width: var(--size-border-selected);
  margin-left: calc(-1 * var(--size-border-selected) / 2);
  background: var(--color-accent);
  pointer-events: none;
}
.plan-drag-seam[hidden] { display: none; }

.plan-drag-hint {
  position: fixed;
  z-index: 100;
  left: 50%;
  width: min(
    calc(100vw - var(--size-gutter) - var(--size-gutter)),
    calc(var(--size-desktop-max) - var(--size-gutter) - var(--size-gutter))
  );
  transform: translateX(-50%);
  bottom: var(--space-lg);
  box-sizing: border-box;
  padding: var(--space-sm) var(--space-md);
  border: var(--size-line-width) solid var(--color-line);
  border-radius: var(--size-radius-field);
  background: var(--color-surface);
  color: var(--color-text);
  font-family: var(--font-family);
  font-size: var(--font-size-label);
  line-height: 1.25;
  pointer-events: none;
}
