body {
  font-family: 'Montserrat', sans-serif;
  background: linear-gradient(135deg, #f5f7fa 0%, #eaeef5 100%);
  min-height: 100vh;

  background-size: 300% 300%;
  animation: bodybackground 30s infinite linear;
}

@keyframes bodybackground {
  0% {
    background-position: 100% 100%;
  }

  33% {
    background-position: 0% 300%;
  }

  66% {
    background-position: 300% 0%;
  }

  100% {
    background-position: 300% 300%;
  }
}

.textarea-container {
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.textarea-container:hover {
  transform: translateY(-5px);
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15);
}

.auto-resize-textarea {
  resize: none;
  min-height: 120px;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.auto-resize-textarea:focus {
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.3);
  animation: textareaGlow 2s infinite alternate;
}

@keyframes textareaGlow {
  from {
    box-shadow: 0 0 10px rgba(66, 10, 24, 0.5);
  }

  to {
    box-shadow: 0 0 20px rgba(99, 102, 241, 0.8);
  }
}

.tag {
  display: inline-flex;
  align-items: center;
  background-color: #e0e7ff;
  color: #4f46e5;
  padding: 4px 12px;
  border-radius: 9999px;
  margin-right: 8px;
  margin-bottom: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.tag:hover {
  background-color: #c7d2fe;
}

.tag.active {
  background-color: #4f46e5;
  color: white;
}

.tag-close {
  margin-left: 6px;
  font-size: 12px;
}

.glow {
  animation: glow 2s infinite alternate;
}

@keyframes glow {
  from {
    box-shadow: 0 0 10px rgba(66, 10, 24, 0.5);
  }
  to {
    box-shadow: 0 0 20px rgba(99, 102, 241, 0.8);
  }
}

#resultContent p {
  text-indent: 2em;
  /* 首行缩进 */
  margin-bottom: 1em;
  /* 段间距 */
  line-height: 1.6;
  /* 行间距 */
}

#resultContent p:last-child {
  margin-bottom: 0;
  /* 最后一个段落不需要下边距 */
}

#resultContent br {
  line-height: 1.6;
  /* 行间距 */
}

@keyframes ellipsis {
  0% {
    content: '';
  }
  25% {
    content: '.';
  }
  50% {
    content: '..';
  }
  75% {
    content: '...';
  }
  100% {
    content: '';
  }
}

.ellipsis::after {
  animation: ellipsis 1.5s infinite;
  content: '';
}

.modal-table {
  display: table;
  width: 100%;
  height: 100%;
}

.modal-cell {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}

.modal-content {
  display: inline-block;
  text-align: left;
}

/* 为所有模态框添加相同的样式 */
.modal-table .modal-cell .modal-content {
  max-height: 90vh;
  overflow-y: auto;
}
