body.app-body {
  background: linear-gradient(180deg, #f4f6f8 0%, #eef3ff 100%);
  min-height: 100vh;
}

.pdf-stage {
  position: relative;
  border: 1px solid #d4d9de;
  background: #fff;
  overflow: auto;
  max-width: 100%;
  max-height: 86vh;
}

#pdfCanvas {
  display: block;
}

.selection-layer {
  position: absolute;
  top: 0;
  left: 0;
  cursor: crosshair;
  z-index: 5;
}

.selection-rect {
  position: absolute;
  border: 2px dashed #d9534f;
  background: rgba(217, 83, 79, 0.12);
  pointer-events: none;
  z-index: 6;
}

.positions-container {
  max-height: 50vh;
  overflow-y: auto;
  padding-right: 4px;
}

.position-card {
  border: 1px solid #dbe1e8;
  border-radius: 10px;
  padding: 10px;
  margin-bottom: 10px;
  background: #fff;
}

.preview-thumb {
  width: 100%;
  height: auto;
  max-height: 120px;
  object-fit: contain;
  background: #fff;
}

.spec-list {
  max-height: 135px;
  overflow-y: auto;
  border: 1px solid #edf1f5;
  border-radius: 8px;
  padding: 8px;
  background: #fafcff;
}

.auto-crop-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.auto-crop-thumb {
  width: 100%;
  max-height: 90px;
  object-fit: contain;
  background: #fff;
}

.raw-block {
  max-height: 140px;
  overflow-y: auto;
  background: #f6f8fb;
  border: 1px solid #e5ebf2;
  border-radius: 8px;
  padding: 8px;
  font-size: 12px;
}

@media (max-width: 1199px) {
  .positions-container {
    max-height: none;
  }

  .pdf-stage {
    max-height: 70vh;
  }
}
