.explorer-gestures { min-height: 130px; touch-action: pan-y pinch-zoom; }
/* Armed between taps, before the next contact snapshots touch-action. */
#files.explorer-touch-prearmed,
.explorer-gestures.explorer-touch-prearmed { touch-action: none; }
.explorer-gestures [data-explorer-drag-handle],
.explorer-gestures .file-preview { touch-action: none; -webkit-user-drag: none; }
.explorer-gesture-active { user-select: none; -webkit-user-select: none; }
.explorer-gesture-active * { cursor: grabbing !important; }
.explorer-marquee {
  position: fixed; left: 0; top: 0; z-index: 1100; pointer-events: none;
  contain: layout style; will-change: transform, width, height;
}
.explorer-marquee svg { display: block; width: 100%; height: 100%; overflow: visible; }
.explorer-marquee path {
  fill: rgb(90 195 123 / 16%); stroke: #4eae6c; stroke-width: 1.5;
  stroke-dasharray: 6 4; stroke-linecap: butt; stroke-linejoin: bevel;
  vector-effect: non-scaling-stroke; animation: explorer-dash-drift 1.3s linear infinite;
}
@keyframes explorer-dash-drift { to { stroke-dashoffset: -20; } }
.explorer-drag-ghost {
  position: fixed; top: 0; left: 0; z-index: 1101; pointer-events: none;
  max-width: min(260px, 70vw); padding: 10px 15px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-family: inherit; font-size: 12px; font-weight: 650; line-height: 1.3;
  color: #265a36; background: #e6f8ec;
  border: 1px solid #6ebd87; border-radius: 9px;
  box-shadow: 0 8px 28px #335e4026; will-change: transform;
}
[data-folder-destination].explorer-drop-target {
  outline: 2px dashed #56ad72 !important; outline-offset: -3px;
  background-color: #d5f3df !important; border-color: #56ad72 !important;
}
@media (prefers-reduced-motion: reduce) {
  .explorer-marquee path { animation: none; }
  .explorer-drag-ghost, [data-folder-destination].explorer-drop-target { transition: none; }
}
