/* File-drop component — shared drop zone.
   Consumed via templates/macros/file_drop.html.
   Site tokens required: --color-primary, --color-border, --color-surface,
   --color-text, --color-text-muted, --color-danger. */

.file-drop {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  padding: 2rem 1rem;
  border: 1px dashed var(--color-text-muted);
  border-radius: 8px;
  background: var(--color-surface);
  color: var(--color-text-muted);
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
}

.file-drop:hover,
.file-drop:focus-visible {
  background: #f5f5f5;
  border-color: var(--color-text);
  color: var(--color-text);
  outline: none;
}

.file-drop[data-state="dragging"] {
  border-style: solid;
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 6%, var(--color-surface));
  color: var(--color-primary);
}

.file-drop[data-state="error"] {
  border-color: var(--color-danger);
  color: var(--color-danger);
}

.file-drop-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
  pointer-events: none;
}

.file-drop-icon {
  opacity: 0.75;
}

.file-drop-prompt strong {
  display: block;
  color: var(--color-text);
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 0.15rem;
}

.file-drop-prompt span {
  font-size: 0.85rem;
  color: var(--color-text-muted);
}

.file-drop-meta {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  opacity: 0.85;
}

@media (prefers-reduced-motion: reduce) {
  .file-drop { transition: none; }
}
