/* ====== 全局样式 ====== */
* { box-sizing: border-box; }

/* 卡片悬停 */
.task-card {
  transition: all 0.2s ease;
}
.task-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

/* 状态标签 */
.status-badge {
  @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
}
.status-pending { background: #FEF3C7; color: #92400E; }
.status-parsing { background: #DBEAFE; color: #1E40AF; }
.status-awaiting_confirm { background: #E0E7FF; color: #3730A3; }
.status-generating_code, .status-generating_paper,
.status-modifying_code, .status-modifying_paper { background: #F3E8FF; color: #6B21A8; }
.status-code_generated { background: #D1FAE5; color: #065F46; }
.status-completed { background: #D1FAE5; color: #065F46; }
.status-failed { background: #FEE2E2; color: #991B1B; }
.status-cancelled { background: #F3F4F6; color: #6B7280; }

/* 进度条动画 */
.progress-bar-fill {
  transition: width 0.5s ease;
}

/* 拖拽上传区 */
.drop-zone {
  border: 2px dashed #d1d5db;
  transition: all 0.2s;
}
.drop-zone.drag-over {
  border-color: #3b82f6;
  background: #eff6ff;
}

/* 上传区域 */
.upload-area {
  transition: all 0.2s ease;
}
.upload-area.drag-over {
  border-color: #3b82f6 !important;
  background: #eff6ff !important;
}

/* Toast动画 */
@keyframes slideIn {
  from { transform: translateX(100%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}
.toast-enter {
  animation: slideIn 0.3s ease;
}

/* 旋转加载 */
@keyframes spin {
  to { transform: rotate(360deg); }
}
.spinner {
  animation: spin 0.8s linear infinite;
}

/* 版本标签 */
.version-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
}
.version-draft { background: #FEF3C7; color: #92400E; }
.version-v { background: #DBEAFE; color: #1E40AF; }

/* 滚动条美化 */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* 输入框聚焦 */
input:focus, textarea:focus, select:focus {
  outline: none;
  ring: 2px solid #3b82f6;
}

/* 响应式 */
@media (max-width: 640px) {
  .task-grid { grid-template-columns: 1fr; }
}
