/*
 * Copyright (c) 2026, Salesforce, Inc.,
 * All rights reserved.
 * For full license text, see the LICENSE.txt file
 */

/**
 * Creates a drop-zone component for screen building
 */
.slds-drop-zone {
  position: relative;
}

.slds-drop-zone::after {
  content: '';
  position: absolute;
  top: 0;
  inset-inline-start: 0;
  bottom: 0;
  inset-inline-end: 0;
  border: var(--slds-g-sizing-border-1) dotted var(--slds-g-color-border-1);
  outline: var(--slds-g-sizing-border-1) dotted var(--slds-g-color-surface-container-1);
}

/**
  * Modifier used to indicate that component may be dropped in a container
  */
.slds-drop-zone.slds-drop-zone_drag::after {
  border: var(--slds-g-sizing-border-1) solid var(--slds-g-color-border-success-1);
  outline: 0;
}

/**
  * Top label of drop zone
  */
.slds-drop-zone__label {
  color: var(--slds-g-color-on-accent-1);
  background: var(--slds-g-color-border-success-1);
  border-radius: var(--slds-g-radius-border-2) var(--slds-g-radius-border-2) 0 0;
  padding: var(--slds-g-spacing-1) var(--slds-g-spacing-2);
  position: absolute;
  top: 0;

  /* RTL: physical — centering paired with translate */
  left: 50%;
  transform: translate(-50%, -100%);
}

/**
  * Top of populated label of drop zone
  */
.slds-drop-zone__label.slds-drop-zone__label_container {
  opacity: 0;
  background: var(--slds-g-color-accent-container-1);
}

/* Fix IE11 bug */
.slds-drop-zone__label .slds-media__body {
  flex-basis: auto;
}

/**
  * Button within drop zone label
  */
.slds-drop-zone__label_button {
  /* to prevent travis error */
  border-radius: 0;
}

.slds-drop-zone__label_button:hover,
.slds-drop-zone__label_button:focus {
  text-decoration: underline;
  outline: none;
}

/**
  * Insertion point of drop zone
  */
.slds-drop-zone_drag__slot {
  border: var(--slds-g-sizing-border-1) solid var(--slds-g-color-neutral-base-100);
  border-inline-start-width: var(--slds-g-sizing-border-2);
  border-inline-end-width: var(--slds-g-sizing-border-2);
  background: var(--slds-g-color-success-1);
  width: 100%;
  height: var(--slds-g-sizing-2);
}

/**
  * Populated region within drop zone
  */
.slds-drop-zone__container {
  position: relative;
  z-index: 8000;
}

/**
  * Hover state for a component within a drop zone
  */
.slds-drop-zone__container::after {
  content: '';
  position: absolute;
  top: 0;
  inset-inline-start: 0;
  bottom: 0;
  inset-inline-end: 0;
}

/**
  * Hover state for a component within a drop zone
  */
.slds-drop-zone__container.slds-is-hovered .slds-drop-zone__label_container,
.slds-drop-zone__container.slds-is-hovered .slds-drop-zone__actions,
.slds-drop-zone__container:hover .slds-drop-zone__label_container,
.slds-drop-zone__container:hover .slds-drop-zone__actions {
  opacity: 1;
  z-index: 8000;
}

.slds-drop-zone__container.slds-is-hovered::after,
.slds-drop-zone__container:hover::after {
  border: var(--slds-g-sizing-border-1) solid var(--slds-g-color-border-accent-1);
}

.slds-drop-zone__container:active::after {
  border: var(--slds-g-sizing-border-2) solid var(--slds-g-color-surface-inverse-1);
}

.slds-drop-zone__container:active .slds-drop-zone__label {
  background-color: var(--slds-g-color-surface-inverse-1);
}

.slds-drop-zone__container:focus-within {
  outline: none;
}

.slds-drop-zone__container:focus-within .slds-drop-zone__label_container,
.slds-drop-zone__container:focus-within .slds-drop-zone__actions {
  opacity: 1;
  z-index: 8000;
}

.slds-drop-zone__container:focus-within::after {
  box-shadow: var(--slds-g-shadow-inset-focus-1);
  border-color: transparent;
}

.slds-drop-zone__container:focus-within .slds-drop-zone__label {
  background-color: var(--slds-g-color-accent-container-3);
}

/**
  * Action buttons within drop zone
  */
.slds-drop-zone__actions {
  opacity: 0;
  background: var(--slds-g-color-accent-container-1);
  position: absolute;
  inset-inline-end: 0;
  top: 0;
}
