.upload-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.upload-slot[data-type="sampleCreators"] { grid-column: 1 / -1; }

.upload-slot {
  min-height: 158px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  grid-template-areas: "number copy action" "number file file";
  align-items: center;
  column-gap: 12px;
  row-gap: 12px;
  padding: 18px;
  border: 1.5px dashed #f59e69;
  border-radius: 16px;
  background: linear-gradient(145deg, #fffdfb, #fff6ee);
  cursor: pointer;
  transition: .18s ease;
  position: relative;
  overflow: hidden;
}

.upload-slot::after {
  content: "";
  position: absolute;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  right: -48px;
  top: -48px;
  background: #ffedd5;
  pointer-events: none;
}

.upload-slot:hover,
.upload-slot:focus,
.upload-slot.dragging {
  border-color: #ff5a00;
  background: #fff1e7;
  box-shadow: 0 0 0 3px #ffedd5;
  transform: translateY(-1px);
  outline: none;
}

.upload-slot.has-file {
  border-style: solid;
  border-color: #22c55e;
  background: linear-gradient(145deg, #f7fff9, #ecfdf3);
}

.upload-slot input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.slot-number {
  grid-area: number;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #ff5a00;
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  box-shadow: 0 7px 18px #ff5a0026;
}

.has-file .slot-number { background: #16a34a; }
.slot-copy { grid-area: copy; display: flex !important; flex-direction: column; gap: 5px; min-width: 0; }
.slot-copy b { color: #2c180e; font-size: 13px; }
.slot-copy small { color: #8a7265; font-size: 10px; line-height: 1.45; }
.slot-action { grid-area: action; padding: 8px 10px; border: 1px solid #fdba74; border-radius: 9px; background: #fff; color: #e84c00 !important; font-size: 10px !important; font-weight: 800 !important; white-space: nowrap; position: relative; z-index: 1; }
.upload-slot:hover .slot-action { background: #ff5a00; border-color: #ff5a00; color: #fff !important; }
.has-file .slot-action { border-color: #86efac; color: #15803d !important; }
.slot-file { grid-area: file; min-width: 0; padding: 8px 10px; border-radius: 9px; background: #ffffffc7; color: #91796b; font-size: 10px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.has-file .slot-file { background: #fff; color: #15803d; font-weight: 700; }
.upload-hint { margin: -2px 0 0; color: #8a7569; text-align: center; font-size: 10px; line-height: 1.5; }

@media (max-width: 760px) {
  .upload-grid { grid-template-columns: 1fr; }
  .upload-slot[data-type="sampleCreators"] { grid-column: auto; }
  .upload-slot { min-height: 132px; }
}

@media (max-width: 480px) {
  .upload-slot { grid-template-columns: 38px 1fr; grid-template-areas: "number copy" "action action" "file file"; }
  .slot-number { width: 38px; height: 38px; }
  .slot-action { text-align: center; }
}
