.detail { min-height: 100vh; background: #f5f5f5; padding-bottom: 80px; } .loading { display: flex; align-items: center; justify-content: center; min-height: 100vh; color: #999; } .content { padding: 12px; } .statusCard { margin-bottom: 12px; } .statusHeader { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #f0f0f0; } .title { font-size: 18px; font-weight: 600; color: #333; } .statusInfo { display: flex; flex-direction: column; gap: 8px; } .infoItem { display: flex; font-size: 14px; } .label { color: #666; width: 80px; flex-shrink: 0; } .value { color: #333; flex: 1; } .section { margin-bottom: 12px; } .approverItem { padding: 8px 0; border-bottom: 1px solid #f0f0f0; } .approverItem:last-child { border-bottom: none; } .approverName { font-size: 15px; color: #333; margin-bottom: 4px; } .approverType { font-size: 13px; color: #999; } .formData { display: flex; flex-direction: column; gap: 8px; } .formRow { display: flex; font-size: 14px; line-height: 1.6; } .formLabel { color: #666; width: 100px; flex-shrink: 0; } .formValue { color: #333; flex: 1; word-break: break-all; } .flowNodes { display: flex; flex-direction: column; gap: 16px; } .flowNode { display: flex; align-items: flex-start; gap: 12px; position: relative; } .flowNodeDot { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; flex-shrink: 0; } .flowNode.pending .flowNodeDot { background: #e8e8e8; color: #999; } .flowNode.done .flowNodeDot { background: #52c41a; color: #fff; } .flowNode.current .flowNodeDot { background: #1890ff; color: #fff; box-shadow: 0 0 0 4px rgba(24, 144, 255, 0.2); } .flowNodeContent { flex: 1; padding-top: 2px; } .flowNodeName { font-size: 15px; color: #333; font-weight: 500; margin-bottom: 4px; } .flowNodeType { font-size: 13px; color: #999; } .timeline { display: flex; flex-direction: column; gap: 16px; } .timelineItem { display: flex; align-items: flex-start; gap: 12px; } .timelineDot { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .timelineDotIcon { font-size: 14px; } .timelineContent { flex: 1; } .timelineTitle { font-size: 15px; color: #333; margin-bottom: 4px; } .timelineName { color: #666; font-size: 14px; margin-left: 8px; } .timelineTime { font-size: 13px; color: #999; margin-bottom: 4px; } .timelineComment { font-size: 14px; color: #666; background: #f5f5f5; padding: 8px 12px; border-radius: 4px; margin-top: 4px; } .empty { text-align: center; color: #999; padding: 20px 0; font-size: 14px; } .footer { position: fixed; bottom: 0; left: 0; right: 0; padding: 12px 16px; background: #fff; border-top: 1px solid #f0f0f0; display: flex; gap: 12px; box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.05); } .footer button { flex: 1; } .commentBox { padding: 8px 0; }