.file-item .file-thumb.file-thumb-illustrated {
  position: relative;
  width: 54px;
  height: 56px;
  flex: 0 0 54px;
  overflow: visible;
  border: none;
  border-radius: 0;
  background: none;
  color: var(--text2);
}
.file-thumb-illustrated > svg { width: 44px; height: 48px; }
.file-icon-paper { fill: var(--bg-card, var(--bg)); }
.file-icon-preview {
  position: absolute;
  inset: 3px;
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 6px;
}
.file-thumb-illustrated .file-format-badge {
  position: absolute;
  right: -3px;
  bottom: 0;
  z-index: 1;
  padding: 2px 4px;
  border: 1px solid var(--border2);
  border-radius: 4px;
  background: var(--bg-card, var(--bg));
  color: var(--text);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .2px;
}
.drop-zone.selection-locked {
  position: relative;
  cursor: default;
}
.drop-zone > .drop-zone-icon,
.drop-zone > .drop-zone-text,
.drop-zone > .drop-zone-buttons {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .28s ease, transform .36s cubic-bezier(.22, 1, .36, 1);
}
.drop-zone.selection-locked > .drop-zone-icon,
.drop-zone.selection-locked > .drop-zone-text,
.drop-zone.selection-locked > .drop-zone-buttons {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  transform: translateY(8px);
  transition: none;
}
.upload-selection-lock[hidden],
.upload-selection-lock button[hidden] {
  display: none;
}
.upload-selection-lock {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 28px;
  text-align: center;
  color: var(--text);
  opacity: 1;
  transform: translateY(0);
  transition: opacity .22s ease, transform .28s cubic-bezier(.22, 1, .36, 1);
}
.upload-card.is-resetting .upload-selection-lock {
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
}
.upload-selection-lock strong { font-size: 16px; }
.upload-selection-lock p {
  max-width: 34ch;
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text2);
}
.upload-lock-blocks {
  display: grid;
  grid-template-columns: repeat(2, 13px);
  gap: 6px;
  margin: 8px;
  color: var(--accent);
}
.upload-lock-blocks span {
  width: 13px;
  height: 13px;
  border: 1px solid currentColor;
  border-radius: 3px;
  background: currentColor;
}
.selection-active .upload-lock-blocks {
  animation: upload-lock-orbit 2.4s cubic-bezier(.65, 0, .35, 1) infinite;
}
.selection-active .upload-lock-blocks span {
  animation: upload-lock-pulse 2.4s ease-in-out infinite;
}
.selection-active .upload-lock-blocks span:nth-child(2) { animation-delay: .15s; }
.selection-active .upload-lock-blocks span:nth-child(4) { animation-delay: .3s; }
.selection-active .upload-lock-blocks span:nth-child(3) { animation-delay: .45s; }
@keyframes upload-lock-orbit {
  0%, 15% { transform: rotate(0deg); }
  85%, 100% { transform: rotate(180deg); }
}
@keyframes upload-lock-pulse {
  0%, 100% { transform: scale(1); opacity: .9; }
  50% { transform: scale(.65); opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
  .drop-zone > .drop-zone-icon,
  .drop-zone > .drop-zone-text,
  .drop-zone > .drop-zone-buttons,
  .upload-selection-lock { transition: none; }
  .selection-active .upload-lock-blocks,
  .selection-active .upload-lock-blocks span { animation: none; }
}
